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.
Valid JSON is not enough
Most structured data that fails does not fail because of a syntax error. It parses fine and Google still ignores it, because a property the rich result needs is missing - an Article without a headline or image, a Product without an offer, an Event without a start date. This validator does both checks: first it parses the JSON-LD and reports anything malformed, then it checks each item against the required and recommended properties in Google's structured data documentation for that type. Missing required properties are errors; missing recommended ones are warnings.
Paste markup or check a live URL
Paste a JSON-LD block (with or without its <script> tag) to test it before it goes live, or enter a URL to check what a published page actually serves. The URL check is the one to trust after a deploy: a CMS plugin, a theme and your own code can all add markup, and pages often end up with two conflicting Organization or Article blocks.
What happened to Google's Structured Data Testing Tool?
Google retired it. The general schema.org checks moved to the Schema Markup Validator at schema.org, and Google's own Rich Results Test now covers only the types that can earn a rich result. This tool checks the common types - Article, BlogPosting, Product, FAQPage, BreadcrumbList, Organization, LocalBusiness, Event, Recipe, VideoObject, JobPosting and more - against Google's requirements in one pass.
Common mistakes
- Relative URLs in
url,imageorlogo- use absolute https:// addresses. - Dates without a time zone; use ISO 8601, such as
2026-11-08T09:00:00+00:00. - Markup that describes content not visible on the page, which Google treats as spam.
- FAQ markup on pages that are not really FAQs; Google now shows FAQ rich results only for a narrow set of sites.
Checking the rest of a page's SEO? Run it through the SEO checker, and confirm crawlers can reach it with the robots.txt validator.

