A schema markup validator checks the structured data on a page the way a search engine reads it: not just whether the JSON parses, but whether each entity carries the properties Google requires before it will show a rich result. Paste the markup - a bare object, an array, or the whole <script type="application/ld+json">tag - or give it a URL and it pulls the structured data out of the page for you. Everything is checked against Google’s documented requirements, and nothing you paste is stored.
Google retired the Structured Data Testing Tool. This is the gap it left
For years the answer to “how do I check my schema markup” was Google’s Structured Data Testing Tool, which validated any schema.org type and accepted pasted code. Google retired it and pointed people at two replacements that each do less:
- The Rich Results Test only reports types that can earn a Google rich result. Markup that is correct but not rich-result-eligible -
Organization,WebSite,Person- comes back as “no items detected”, which reads like an error and is not one. - The Schema Markup Validator at validator.schema.org checks the markup against schema.org itself, deliberately without Google’s rules. It will happily pass an
Articlewith noheadline- valid schema.org, and ineligible for the rich result you wanted it for.
This tool does both halves at once: it validates the structure, and it applies Google’s per-type requirements on top. That is the check most people were actually running on the old tool.
What it catches
- Errors - malformed JSON, a missing
@contextor@type, and required properties that are absent: anArticlewithout a headline, aLocalBusinesswithout an address, aProductwith no offer, aRecipewith no ingredients. - Format problems - dates that are not machine-readable ISO 8601, relative URLs where an absolute one is required, breadcrumb positions numbered out of order or starting from zero.
- Recommendations - the properties Google lists as recommended rather than required. They will not stop a rich result, but they usually decide how much of one you get.
- Notes - types that are valid to publish but earn no special treatment in search, so you know when a clean result still means nothing will change.
Identical problems are grouped rather than listed once per entity. A page that nests the same type forty times produces one line with a count, not forty lines to scroll past.
Validation is not a promise of a rich result
Valid markup makes a page eligible. Google still decides per page and per query, and eligibility is lost for reasons no validator can see - marking up content a visitor cannot find on the page, thin or duplicated content, or a manual action. Anyone selling you a validator as a ranking tool is overselling it. What it genuinely does is stop you losing a rich result to a typo.
Where to put the markup
JSON-LD in a <script> tag is what Google recommends, and it is the only format this tool reads. Microdata and RDFa still work, but they interleave markup with your HTML, which makes both harder to change. If you are starting now, use JSON-LD; it can sit in the head, the body, or be injected by JavaScript, as long as it is in the rendered page.

