Schema Markup Testing: A Practical Guide to Validating Structured Data
JSON-LD that passes a validator with zero errors and still never earns a rich result in search is one of the more confusing outcomes in technical SEO - because "valid" and "eligible" are two different bars, and most tooling only checks the first one.
Valid vs. Eligible
A structured data validator checks that your JSON-LD is syntactically correct and uses real schema.org properties - it doesn't check whether Google's specific rich-result eligibility rules for that content type are satisfied. A Recipe schema missing a required field for the recipe rich result can validate perfectly as generic structured data while still never being eligible for the visual treatment.
Common Ways Structured Data Fails Silently
- Data that doesn't match the visible page content. Search engines actively check for this - a review rating in your markup that isn't genuinely shown to users on the page is a policy violation, not just a technical mismatch.
- Missing required properties for the specific rich result you want. Each content type (Article, Product, FAQ, HowTo, Recipe) has its own required/recommended field list - validating against the generic Schema.org spec doesn't confirm you've met a specific rich-result type's actual requirements.
- Multiple conflicting schema blocks on one page - a page with two different
Articleblocks, or anOrganizationblock duplicated per-page instead of site-wide, confuses which one search engines should trust. - Schema injected client-side only. If the JSON-LD is added via JavaScript after initial render, a crawler that doesn't fully execute JS may never see it at all - the same invisible-to-humans, crawler-only failure mode as a missing Open Graph tag.
A Practical Testing Checklist
- Confirm the JSON-LD is present in the initial server-rendered HTML, not only after client-side hydration.
- Check every field in the markup against what's actually visible on the page - not just structurally valid, but factually consistent.
- Verify you've included the fields specific to the rich result you're targeting, not just the schema type's bare minimum.
- Re-check after any template change - a shared layout component change can silently break schema on every page that uses it at once.
Schema markup is one line item worth folding into a full technical SEO audit rather than testing once and forgetting about it.
Related reading
How to Fix robots.txt Blocking AI Crawlers
Why a blanket Disallow rule can silently block GPTBot, ClaudeBot, and other AI crawlers from your site, and how to unblock them without opening the site to everything.
Structured Data and AI Search: What JSON-LD Actually Does for You in 2026
What JSON-LD structured data is, why it matters for both Google rich results and AI crawlers, and a practical checklist for auditing what's actually on your pages.
Schema Markup Checker
Check whether your page ships JSON-LD structured data search engines and AI agents can read.
See your full audit score right now
Run a free instant audit and get an AI-prioritized fix list for performance, SEO, and accessibility.
Run a free audit