In beta, with limited placesOpen to everyone in Q1 2027

↑↓ to move · Enter to open · Esc to close

Measurement and verification

What is a schema validator and what does it check?

A schema validator, like the Schema Markup Validator, is a tool that reads the markup of a page or a snippet of code and checks that it is well formed and that it uses the Schema.org vocabulary correctly. The reference one is validator.schema.org, heir to Google's old tool, and it does not evaluate Google's own rich result requirements.

Written by
Reviewed by
Published 7 min read
Takeaway:

Key takeaways

  • A schema validator checks the syntax of the markup and its use of the Schema.org vocabulary, whatever the type.
  • The Schema Markup Validator was born in 2021 from Google's old Structured Data Testing Tool, when that tool stopped checking Google's own types.
  • Schema.org is flexible by design: many unexpected uses are not errors, and a validator is not obliged to treat them as such.
  • Google's requirements, like the required properties of a merchant listing, are checked with the Rich Results Test.
  • No validator checks that the markup describes what the page shows: that part of Google's guidelines cannot be tested with an automated tool.

A schema validator is the tool you use to check a page's Schema.org markup, what the industry calls schema markup. When someone says "run it through the validator" they usually mean the Schema Markup Validator, at validator.schema.org.⁠[1]Schema.org. Schema Markup Validator It matters because it is the neutral tool: it does not tell you whether Google will show your product page with rich results, like the price or the stars, but whether your markup is well written and uses a vocabulary that does not belong to Google alone. Schema.org was founded in 2011 by Microsoft, Yahoo!, Google and Yandex, with what their search engines could make use of in mind.⁠[2]Schema.org. Data model

Where it comes from

Until 2020, the validator everyone used was Google's structured data testing tool. On December 15, 2020, Google announced it was repurposing it: it would move to a new domain in service of the Schema.org community, its main purpose would be checking the syntax and the conformance of markup with Schema.org standards, and it would stop checking the rich result types of Google Search. For that it pointed to the Rich Results Test.⁠[3]Google Search Central Blog (December 15, 2020, with 2021 updates). An update on the Structured Data Testing Tool

On May 11, 2021, Schema.org announced the tool's new home, already under the name Schema Markup Validator, and on August 9, 2021, with the validator stabilized, Google began redirecting the old tool to a page for choosing which one to use.⁠[3]Google Search Central Blog (December 15, 2020, with 2021 updates). An update on the Structured Data Testing Tool Today Google sums it up this way: start with the Rich Results Test to see which Google rich results your page can generate, and use the Schema Markup Validator to validate any type of Schema.org markup without the warnings specific to Google features.⁠[4]Google Search Central. Test your structured data

What it checks, layer by layer

Markup can fail on four different layers, and each tool reaches one of them. Separating them is the most useful way to read a validator.

1. Syntax. The code has to be a valid document: in JSON-LD, commas, quotes, braces and brackets in their place. It is the layer the two tools share. Google's, for example, lists errors of this kind that stop parsing before it even knows what type the item is: invalid JSON document, a missing comma or closing brace, an incorrect escape sequence, a single property defined twice.⁠[5]Search Console Help. Rich Results Test

2. Vocabulary. The types and properties have to exist in Schema.org and be used with reasonable values. This is the validator's own ground: Google gives it as an example of its use, for anyone who only wants to make sure they use valid Schema.org properties or to validate a type Google does not consume.⁠[3]Google Search Central Blog (December 15, 2020, with 2021 updates). An update on the Structured Data Testing Tool Here it helps to know something about how Schema.org is designed: it is flexible on purpose. Its data model accepts that text may arrive where a person or an organization is expected, that one description may combine properties from several types (something can be a book and a product at once), and it says validators may warn about what turns out ambiguous but are not obliged to treat an unexpected structure as an error.⁠[2]Schema.org. Data model That is why a validator gives so many warnings and so few errors.

3. Google's requirements. For a product page to qualify for merchant listings, Google requires a name, an image and an offer with a price greater than zero and its currency on the product.⁠[6]Google Search Central. Merchant listing (Product, Offer) structured data Schema.org requires none of that: a product with no image is a perfectly valid product in its vocabulary. Only the Rich Results Test looks at this layer.⁠[4]Google Search Central. Test your structured data

4. What no tool sees. Google asks you not to mark up content the reader of the page cannot see, for the markup to truly represent the main content and not be misleading, and warns that an automated tool cannot easily check these quality guidelines.⁠[7]Google Search Central. General structured data guidelines

In a store

The same product, marked up four ways, in a fictional example store. The first version is the correct one:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "6-cup stovetop espresso maker",
  "image": "https://example-store.com/img/moka-6.jpg",
  "offers": { "@type": "Offer", "price": 39.9, "priceCurrency": "USD" }
}

And this is how each of the other three would fail:

Version (fictional example) What changes in the code Layer that fails Who is built to see it
A The comma after "name" is missing Syntax Both tools
B The property is written "cost" instead of "price" Vocabulary The schema validator
C There is no "image" Google requirement Only the Rich Results Test
D The price in the markup is not the one the page shows None of the three None: you have to look at the page

Row B has a practical consequence: a vocabulary validator detects that cost is not a Schema.org property, but for Google that offer also has no price, so the product page stops being eligible. One failure can show up on two layers at once, which is why it pays to run both tools. Row D is the one that costs a store the most and the one no markup tool detects: it is the job of publication verification.

Warning:

What people often confuse

Reading "no errors in the validator" as "eligible for Google". The validator checks Schema.org syntax and vocabulary; Google's rich result requirements are not its job, and Google separated them on purpose when it moved the tool.⁠[3]Google Search Central Blog (December 15, 2020, with 2021 updates). An update on the Structured Data Testing Tool A product page with no image passes the validator clean and is not eligible for merchant listings.⁠[6]Google Search Central. Merchant listing (Product, Offer) structured data And the other way around: a validator warning about an unexpected value type is not always a problem, because Schema.org accepts those uses.⁠[2]Schema.org. Data model

How to check it

  1. Open validator.schema.org and paste the URL of a published product page or the block of markup you want to review.⁠[1]Schema.org. Schema Markup Validator
  2. Fix the syntax errors first: while the document cannot be read, no other check is worth anything.⁠[5]Search Console Help. Rich Results Test
  3. Read the vocabulary warnings one by one. A misspelled property gets fixed; text where an object was expected can stay, depending on what you need.⁠[2]Schema.org. Data model
  4. Run the same URL through the Rich Results Test for Google's layer, the one with each result's required properties.⁠[4]Google Search Central. Test your structured data
  5. Compare two or three values in the markup by hand with what the page shows: price, availability, name. Nobody validates that layer for you.⁠[7]Google Search Central. General structured data guidelines

The Rich Results Test is Google's tool: it checks only the types Search uses and applies Google's requirements to them, and it shows a preview of the result. A schema validator checks any Schema.org type, without Google's rules.⁠[4]Google Search Central. Test your structured data They do not replace each other: they chain. First the validator or the test for syntax, then Google's test for its layer, and last the published page for what neither of them sees. Catalog data coverage is the next step: not whether one product page's markup is right, but how many product pages in the catalog have the data that markup needs.

To keep going, the comparison validating markup vs verifying publication separates the two questions, and the measurement and verification reading path orders the rest of the terms.

Synonyms

English
Schema Markup Validator, schema validator
Español
validador de marcado Schema.org

Sources

  1. [1] Schema.org. Schema Markup Validator. Accessed . ↑ ↑
  2. [2] Schema.org. Data model. Accessed . ↑ ↑ ↑ ↑
  3. [3] Google Search Central Blog (December 15, 2020, with 2021 updates). An update on the Structured Data Testing Tool. Accessed . ↑ ↑ ↑ ↑
  4. [4] Google Search Central. Test your structured data. Accessed . ↑ ↑ ↑ ↑
  5. [5] Search Console Help. Rich Results Test. Accessed . ↑ ↑
  6. [6] Google Search Central. Merchant listing (Product, Offer) structured data. Accessed . ↑ ↑
  7. [7] Google Search Central. General structured data guidelines. Accessed . ↑ ↑

Change history

  • First English version.

This definition is published under CC BY 4.0. Reuse this definition freely, crediting Clione with a link to this page.

Make your catalog easy for bots to read

Clione fills every product page with what bots read best: the JSON-LD graph with its structured data, the meta description and the FAQs. You review and press Push; then we check your live store so it all stays published.