Validators
Rich Results Test
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`.
- Free, no signupNo account, no card
- No AI in the score986 deterministic rules
- Nothing publishedYour scans stay yours
- Answers in secondsQuick scan, no browser
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
The markup looks fine. Nothing shows up in search.
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.
What it costs you when this is wrong
Valid JSON that means nothing
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.
Silence instead of an error
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.
A plugin update quietly rewrites it
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.
Why run it here
Matched on meaning, not on strings
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.
The whole vocabulary, not one feature list
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.
The same rules, inside a fuller audit
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.
How to qualify for rich results
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.
What happens when you run it
Enter your address
Just the domain is enough — example.com, with or without the https. No account, no card, no crawl of your whole site.
We render it like a visitor
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.
You get findings you can act on
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.
What runs this check
- JSON-LD expansion
- schema.org vocabulary
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.
Questions
- Does passing here guarantee a rich result in Google?
- No. Correct markup makes you eligible; whether the feature is shown is Google's decision and depends on query, quality and competition. Any tool promising a guaranteed rich result is misrepresenting how search works.
- How is this different from the schema markup validator?
- The schema validator asks whether your markup is valid. This asks whether it is sufficient for a specific search feature. A page can pass the first completely and qualify for nothing.
Also checks
This page answers these searches too — they are the same job, so they share one page rather than being split across near-identical ones:
- rich snippets test
- google rich results
- structured data test
- rich result eligibility
Other checkers
- HTML ValidatorW3C markup conformance, checked by a real parser
- CSS ValidatorStylesheets parsed and checked against the W3C property grammars
- Schema Markup ValidatorJSON-LD parsed, expanded to real schema.org IRIs, and checked
- Website Scam DetectorThe trust signals people and payment processors check before believing a site
- AI ValidatorWhether AI models can find, read, quote and operate your site
- Broken Link CheckerEvery link on the page requested, with blocked and broken told apart
- SEO CheckerTitles, meta, canonicals, indexability and internal linking
- Accessibility CheckerTwo WCAG engines — one in a real browser, one on your markup
- Security Headers CheckerResponse headers, CSP quality, and the TLS certificate underneath
- Core Web Vitals CheckerMeasured for real, plus the page-weight causes behind the numbers
- AI Agent Readiness CheckerCan an agent find your buttons, read your labels and finish the task
- W3C ValidatorMarkup and stylesheet conformance in one pass
- Answer Engine CheckerWhether AI answer engines can quote you, and attribute it
- AI Crawler CheckerWhich AI crawlers your robots.txt actually lets in
- SSL Certificate CheckerA real handshake: certificate, expiry, protocol and cipher
- robots.txt CheckerWhat your robots.txt actually allows, group by group
- Meta Tag CheckerTitles, descriptions, canonicals and robots directives
- Open Graph CheckerHow your link looks when someone shares it
- Image SEO CheckerAlt text, dimensions, formats and lazy loading
- Mobile-Friendly TestViewport, tap targets and responsive behaviour
- Website CheckerEvery module, one scan, one prioritised fix list
Run the rich results test now
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.