Validators
Which search features your structured data qualifies for
Valid structured data and eligible structured data are different things. Your JSON-LD can be perfectly well-formed and still qualify for nothing, because each rich result type has its own required properties - a Product without an `offers` block, an Article without a `datePublished`, a FAQPage whose questions have no `acceptedAnswer`.
This checks the entity types you declare against what each search feature requires, and tells you which ones you currently qualify for and what is missing from the ones you nearly do. That second part is the useful half: 'you are two properties away from a Product card' is actionable in a way that 'valid' is not.
Eligibility is not a guarantee. Search engines decide independently whether to show a rich result, and correct markup is a precondition rather than a promise - anything claiming otherwise is selling you something.
Why this matters
You added structured data, or a plugin added it for you, and nothing changed. No price, no rating stars, no difference at all — and no error anywhere telling you why. Structured data fails quietly: a block can be valid JSON, sit in the page exactly where you put it, and still mean nothing to the machine reading it.
A block with a missing or mistyped @context still parses cleanly, so your editor and any JSON linter show green. Expand it the way a consumer does and every property except @type is dropped — the product name, price and rating were never really there.
Search Console reports enhancements only for the types it tracks, so markup outside that list produces no report at all: not a warning, just nothing. You are left unable to tell "wrong" apart from "not supported", which are very different problems with very different fixes.
On most small sites the JSON-LD is generated by a theme, a plugin or a tag manager, and rewritten on every update. An entity type or a required property can disappear in a release nobody read the notes for, and the first sign is a rich result vanishing weeks later.
Before any entity check runs, each JSON-LD block is expanded so every term resolves to a full schema.org IRI — aliased terms, custom vocabulary prefixes, an @type written as an array and entities nested inside @graph all match the same rule. Blocks that fail to expand fall back to their literal @type, so broken markup is still reported rather than skipped.
120 structured-data rules cover 70 schema.org entity types — Dataset, ClaimReview, Menu, Vehicle, TouristAttraction and the rest — plus 30 property checks, so types that no search feature currently rewards are still detected and shown. Detection is informational: a page that is not a recipe is never marked down for having no Recipe markup.
This page runs the 120 structured-data rules on their own; the same engine runs the other 866 when you scan the whole site, so nothing changes shape between the two. Every finding carries the standard behind it, with a link and the date that reference was last verified.
This check runs on its own here, and as part of the full audit alongside the other 985 rules. Either way the findings carry their evidence and their citation, and the report is never published or kept.
Valid structured data makes you eligible for a rich result. It does not guarantee one — eligibility is the part you control, so make it unambiguous.
Pick the result type you want and mark up exactly that entity — FAQ, HowTo, Product, Recipe, Event or Breadcrumb.
Supply every required property for that type, and as many recommended ones as are genuinely true of the page.
Ensure everything in the markup is visible on the page to an ordinary visitor. Hidden structured data is the most common cause of a manual action.
Add BreadcrumbList so the result shows a readable hierarchy instead of a bare URL.
Confirm the page is indexable — no noindex, not blocked in robots.txt, and canonical to itself.
Just the domain is enough — example.com, with or without the https. No account, no card, no crawl of your whole site.
Your page opens in a real browser and JavaScript runs to completion, so what gets audited is the page a person actually sees — not the raw HTML your server sent. A screenshot comes back with the report as evidence of exactly what we measured.
Up to 986 checks run against that rendered page. Each finding names the rule, quotes the evidence found on your page, cites the public specification behind it, and says what to change. Nothing is a judgement call — run it twice on an unchanged page and the score is identical.
Named because provenance is the product. Every finding in your report says which of these produced it, so you can check the reasoning rather than take a score on faith.
This page answers these searches too — they are the same job, so they share one page rather than being split across near-identical ones:
No signup, no credit card. Quick answers in seconds; a full audit takes about a minute.
Run a free scanNo signup. No credit card. Nothing stored but the result.