Schema markup generator
The Schema Markup Generator builds FAQPage, LocalBusiness and Article JSON-LD from details you copy off your page, checks the format of URLs, dates and hours, and gives you a ready-to-paste script tag. It runs in your browser. Mark up only what the page visibly shows.
- Types
- FAQPage, LocalBusiness, Article
- Runs
- in your browser
- Cost
- free, no signup
Properties in your schema
Open any property for why it matters and what to enter
-
Not runQuestions and answers—
Why it mattersEach pair becomes a Question with an acceptedAnswer. A lower count than you expected usually means a missing A: line or no blank line between pairs.
How to fixWrite Q: and the question, then A: and the answer on the next line, with a blank line before the next Q:. Use the page's exact wording.
-
Not runFAQ rich results—
Why it mattersSince August 2023 Google has shown FAQ rich results only for well-known, authoritative government and health websites. Most business sites will not get them, whatever the markup says.
How to fixUse FAQPage only where the questions and answers are visible, as description rather than a route to a search feature.
-
Not runBusiness name—
Why it mattersThe name is required. It should match the page, your signage and your Google Business Profile, so the listing, site and markup are easy to connect.
How to fixUse the trading name exactly as customers see it, with no added keywords, city names or taglines.
-
Not runAddress (street and city)—
Why it mattersA LocalBusiness describes a physical place, so street and city are required. Region, postcode and country code are added when filled in.
How to fixCopy the address shown on the page, in the same format as your other listings, with a two-letter country code such as IN or GB.
-
Not runPage URL—
Why it mattersFor LocalBusiness this becomes url; for Article it becomes mainEntityOfPage, which ties the markup to the page it describes.
How to fixUse the full canonical address, starting with https://. For a branch, use its location page rather than the homepage.
-
Not runTelephone—
Why it mattersThe phone is part of the name, address and phone set that should be identical wherever the business is listed.
How to fixEnter the number shown on the page, ideally with the country code, such as +91-22-0000-0000, and check it with the NAP Consistency Checker.
-
Not runCoordinates—
Why it mattersGeoCoordinates pin the exact location. They are optional and added only when the format is right.
How to fixEnter latitude, a comma, then longitude in decimal degrees, for example 19.0554, 72.8523, taken from your map pin.
-
Not runOpening hours—
Why it mattersEach line becomes an OpeningHoursSpecification. Hours that disagree with the page or your business profile send mixed signals.
How to fixOne line per range, such as Mo-Fr 09:00-18:00, with Mo to Su and 24-hour times. Update the markup when your hours change.
-
Not runHeadline—
Why it mattersThe headline is the one required Article field. Over 110 characters gets a warning, as long headlines may be cut where shown.
How to fixCopy the visible headline. Do not write a different, keyword-heavy title for the markup.
-
Not rundatePublished—
Why it mattersDates help machines tell how old an article is and when it last changed. Both must be ISO 8601.
How to fixUse 2026-11-09, or add a time and timezone such as 2026-11-09T09:30:00+05:30. Match the page, and change dateModified only for real updates.
-
Not runAuthor—
Why it mattersThe author becomes a Person with a name and, optionally, a profile URL, so readers and machines can see who wrote the piece.
How to fixUse the byline name and add the author's profile page URL. For a fuller author entity, use the Person and Organization Schema Generator.
-
Not runImage—
Why it mattersFor LocalBusiness it is a photo of the place; for Article it is the lead image, added as a one-item list.
How to fixUse the full https:// URL of a crawlable image that appears on the page, not a logo or icon.
Your JSON-LD
A script tag ready to paste into the page, plus links to validate it
Nothing to show yet. After you generate, the JSON-LD appears here wrapped in a <script type="application/ld+json"> tag, with copy and download buttons and links to validate it.
What each result means
The generator does not score your page. The number at the top is how many of the listed properties are set, and each row has a status.
| Status | Meaning | Example |
|---|---|---|
| Pass | The property is set and in the output. | Headline, Business name, a counted Q and A pair. |
| Needs work | A recommended property is empty, or something was skipped. | No telephone or image; a headline over 110 characters. |
| Found | Information rather than a problem. | The FAQ rich results note, an empty sameAs list, no publisher, no dateModified. |
| Stopped | A required field is missing or a value is in the wrong format, so no JSON-LD is built. | No headline; a date like 09/11/2026; an hours line like Monday 9am-6pm. |
The generator checks format only. It cannot see your page, so it cannot tell whether a fact is true or visible there. All passes means well formed, not eligible for a rich result.
How to generate schema markup that matches the page
Structured data describes what is already on the page. Start from the visible content, not the other way round.
-
Step 1
Pick the type that matches the page
FAQPage for a page showing questions with their answers, LocalBusiness for the page of one physical location, Article for a single article, blog post or news story. The form shows only that type's fields.
-
Step 2
Copy facts from the visible page
Paste the details exactly as they appear on the page. Leave a field empty rather than guess; empty optional fields are left out.
-
Step 3
Generate the JSON-LD
The generator checks the format of URLs, dates, coordinates and hours, stops with a plain message if one is wrong, and builds a
<script type="application/ld+json">tag in your browser. -
Step 4
Paste it into the page it describes
Copy the tag or download it as an .html file, and add it to that page's head or body, or your CMS's custom code field.
-
Step 5
Validate the live page
Publish, then test the URL with the Schema Markup Validator and Google's Rich Results Test. Look for syntax errors and duplicate markup from a theme or plugin.
What the generator outputs
The output is a single JSON-LD object using the schema.org FAQPage, LocalBusiness or Article type. Google's documentation recommends JSON-LD as the format for structured data. Each form field maps to one property:
| Field | Property | Rule |
|---|---|---|
| Questions and answers | mainEntity of Question and acceptedAnswer | Q: then A:, pairs separated by a blank line. At least one pair. |
| Business type | @type | LocalBusiness or one of nine subtypes, such as Dentist, Store or LegalService. |
| Address fields | address (PostalAddress) | Street and city required; region, postcode and country added if set. |
| Coordinates | geo (GeoCoordinates) | Latitude, comma, longitude in decimal degrees. |
| Opening hours | openingHoursSpecification | One line per range, such as Mo-Fr 09:00-18:00. |
| sameAs profile URLs | sameAs | Lines that are not http(s) URLs are dropped. |
| Page URL | url (LocalBusiness) or mainEntityOfPage (Article) | Must start with http:// or https://. |
| Image URL | image | A single URL for LocalBusiness, a one-item list for Article. |
| Dates | datePublished, dateModified | ISO 8601 date, or date and time with timezone. |
| Short description | description | Article only, cut to 300 characters. |
What the generator does
- Builds FAQPage, LocalBusiness or Article JSON-LD from your inputs
- Checks the format of URLs, ISO 8601 dates, coordinates and hours, and stops with a clear message if one is wrong
- Gives you a script tag to copy or download, and links to validate it
- Runs entirely in your browser; nothing is sent to MoxSEO
What it does not do
- Read your page or check that the facts are visible on it
- Add reviews, ratings or other properties; add those by hand if the page supports them
- Detect duplicate markup from your theme or SEO plugin
- Guarantee any rich result
Why schema markup helps, and where it stops
Structured data gives search engines and other machines an explicit description of a page: this is an article by this author published on this date, or this is a dentist at this address with these hours. Google explains how it uses it in its introduction to structured data.
FAQ markup is the type most often oversold. Since August 2023 Google has shown FAQ rich results only for well-known, authoritative government and health websites. Other sites can still use FAQPage to describe real questions and answers, but should not expect or promise the rich result.
Local business markup should repeat what your page, Google Business Profile and listings already say. If the name, address or phone differ, fix that first with the NAP Consistency Checker; markup adds another version of a conflict, it does not settle it.
Important limitation: Google's guidelines say structured data should describe content that is visible to users. Do not mark up hidden questions, hours you do not keep, or an author who did not write the piece. Valid syntax does not make misleading markup eligible.
Not sure which schema your templates already output?
Themes and SEO plugins often add their own Article or LocalBusiness markup. We can check before you paste in more.
Questions about schema markup
Short, standalone answers. Email editorial@moxseo.com if any of them is wrong.
What does the Schema Markup Generator create?
It creates JSON-LD for one of three schema.org types, FAQPage, LocalBusiness or Article, wrapped in a script tag you can paste into a page. It also checks that URLs, ISO 8601 dates, coordinates and opening hours are in a valid format before building the output.
Will FAQ schema get my page FAQ rich results?
Almost certainly not. Since August 2023 Google has shown FAQ rich results only for well-known, authoritative government and health websites. For other sites, FAQPage markup can still describe the question and answer structure to machines, but we do not promise any search benefit from it.
How do I enter questions and answers?
Start each question with Q: and put its answer on the next line, starting with A:. Leave a blank line between pairs. Any block that does not have both a Q: and an A: is skipped, and the results tell you how many were skipped.
How should I write opening hours?
One line per range, such as Mo-Fr 09:00-18:00 or Sa 10:00-14:00, using two-letter day codes and 24-hour times. A range must run forwards within one week, so Sa-Su works but Su-Sa does not. Leave closed days out.
Which fields are required?
For FAQPage, at least one complete question and answer pair. For LocalBusiness, the business name plus a street address and city. For Article, the headline. Everything else is optional; empty fields are left out and recommended ones are flagged.
Is anything I type sent to MoxSEO?
No. The generator runs entirely in your browser. Your questions, business details and article details are not sent to MoxSEO's server.
Does valid schema guarantee a rich result?
No. Google decides whether to show any rich result, and it can ignore markup that does not match the visible page.
Run the next check
All 23 free tools- Schema Markup ValidatorCheck the JSON-LD once it is live on the page.
- Person and Organization Schema GeneratorBuild the author or publisher entity your articles point to.
- NAP Consistency CheckerMake sure your business details match before you mark them up.
- AI Answer Extractability CheckerSee whether AI systems can quote and attribute the page.
- Hreflang Tag GeneratorWrite hreflang tags for pages that exist in several languages.
Clean markup gets the page described.
Good pages get it chosen.
Schema problems rarely sit on one page: they live in templates, plugins and duplicate graphs, which is why we handle them as part of technical SEO rather than as a one-off fix. If your markup is mainly about locations and opening hours, see our local SEO services. Or book a free 30-minute call with Sakshi Kumari or Ashish Khan.
A call is not an engagement. We never guarantee rankings or AI citations.




