← Free tools

Schema Markup Validator

The Schema Markup Validator reads the JSON-LD blocks on a page and checks them. It reports blocks that are not valid JSON, lists each type it finds, and shows which required properties are missing for types like Organization, Product, Article and FAQPage. You get a pass or fail per type plus a warning if the page has no FAQPage block.

Updated

Free, no account needed.

How to read the validator result

The result lists every JSON-LD block on the page by type, with how many required properties it has and which ones are missing. Types the validator has no rules for are counted but not checked.

A type passes when every property on its list is present. Google decides separately whether to show a rich result for it.

What the validator reads

It reads JSON-LD, the script tags with the type application/ld+json. Microdata and RDFa are ignored, so a page that marks up its content with either of those shows no structured data here, even if the markup is fine.

If a block uses @graph or an array, each item inside it is checked as its own block.

Errors and warnings

A fail is something to fix. That means a block with invalid JSON, a type with a required property missing or empty, or a page with no JSON-LD at all. A block with invalid JSON is skipped entirely, so nothing inside it gets checked.

A warning is a suggestion. The only one is a page with no FAQPage block.

  1. Fix any invalid JSON first, since those blocks are not checked at all.
  2. Add the missing properties listed for each type.
  3. Publish the change and run the page again.

Required properties by type

These are the properties the validator checks. A property that is missing, empty or null counts as missing. The list does not cover everything Google documents for each type.

TypeRequired properties
Article, BlogPosting, NewsArticleheadline, image, datePublished
Productname, image, offers
Organizationname, url
LocalBusinessname, address, telephone
FAQPagemainEntity
HowToname, step
Recipename, image, recipeIngredient, recipeInstructions
Eventname, startDate, location
BreadcrumbListitemListElement
VideoObjectname, thumbnailUrl, uploadDate
SoftwareApplicationname, offers, applicationCategory
Personname
WebSitename, url

Checking FAQPage markup

FAQPage needs a mainEntity list of questions and answers. Every question and answer in the markup has to appear as visible text on the page. Markup for content a visitor cannot see can be ignored.

In 2023 Google limited FAQ rich results to well-known government and health sites, so most sites no longer get the expandable FAQ in search results.

The validator only checks that mainEntity is there, so compare the markup with the visible text yourself. The schema generator builds the block from questions and answers you paste in.

When to use the Rich Results Test

Google's Structured Data Testing Tool moved to schema.org in 2021 and became the Schema Markup Validator (validator.schema.org). For whether a page qualifies for Google rich results, use Google's Rich Results Test. This structured data validator checks JSON-LD syntax and a fixed list of properties across many types. Google's Rich Results Test shows whether a page is eligible for a specific rich result, with Google's own errors and warnings. Use the validator for a quick check, then run the Rich Results Test on any page where you want a rich result.

Common questions

This validator partly replaces Google's old Structured Data Testing Tool. Google's Structured Data Testing Tool moved to schema.org in 2021 and became the Schema Markup Validator (validator.schema.org). For whether a page qualifies for Google rich results, use Google's Rich Results Test. This tool validates the structured data on a page by reading the JSON-LD and checking required properties for a fixed list of types. For a rich result verdict from Google, use the Rich Results Test.
Google has said structured data is not a ranking factor. It helps Google understand a page and can make the page eligible for rich results, which changes how the listing looks.
Whether ChatGPT reads schema markup isn't clearly documented, so treat it as unknown. Schema helps search engines understand a page, and the visible text is the part every crawler can read, so keep both clear and make sure they agree.
The structured data validator can find nothing on a page with schema when the page uses microdata or RDFa, which it doesn't read. The schema may also be added by JavaScript after the page loads, so it is not in the HTML the validator fetches.
A JSON-LD block is invalid when the JSON inside the script tag can't be parsed. Common causes are a trailing comma, a missing quote and a template that left a placeholder in the markup. Paste the block into a JSON linter, fix it and run the page again.

Related guide: The GEO guide covers how to optimize your pages for language models.

Related study: What Do the Pages ChatGPT Cites on Specific Questions Look Like?

Track your AI visibility every week

Peak Answer runs checks like these every week, then writes the content and gets the placements.

Start 7 day trial