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

Choose a type, then fill in what is on your page. Nothing you type leaves this page.

Schema type
Q: then A: on the next line. Leave a blank line between pairs.
Required. Use the name shown on the page and your signage, with no added keywords.
Street and city are both required.
Days as Mo, Tu, We, Th, Fr, Sa, Su; times as 24-hour HH:MM. Leave closed days out.
Only profiles that belong to this business. Lines that are not http(s) URLs are dropped.
Required. Match the visible headline. Over 110 characters gets a warning.
Must start with http:// or https://.
ISO 8601: a date, or a date and time such as 2026-11-09T09:30:00+05:30.
Cut to 300 characters.

The JSON-LD is built in your browser. Paste it into the page it describes, then validate it.

Properties in your schema

Open any property for why it matters and what to enter

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

Statuses in the results list
StatusMeaningExample
PassThe property is set and in the output.Headline, Business name, a counted Q and A pair.
Needs workA recommended property is empty, or something was skipped.No telephone or image; a headline over 110 characters.
FoundInformation rather than a problem.The FAQ rich results note, an empty sameAs list, no publisher, no dateModified.
StoppedA 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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:

Form fields and the JSON-LD properties they produce
FieldPropertyRule
Questions and answersmainEntity of Question and acceptedAnswerQ: then A:, pairs separated by a blank line. At least one pair.
Business type@typeLocalBusiness or one of nine subtypes, such as Dentist, Store or LegalService.
Address fieldsaddress (PostalAddress)Street and city required; region, postcode and country added if set.
Coordinatesgeo (GeoCoordinates)Latitude, comma, longitude in decimal degrees.
Opening hoursopeningHoursSpecificationOne line per range, such as Mo-Fr 09:00-18:00.
sameAs profile URLssameAsLines that are not http(s) URLs are dropped.
Page URLurl (LocalBusiness) or mainEntityOfPage (Article)Must start with http:// or https://.
Image URLimageA single URL for LocalBusiness, a one-item list for Article.
DatesdatePublished, dateModifiedISO 8601 date, or date and time with timezone.
Short descriptiondescriptionArticle 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.

All 23 free tools

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.