Scanverra
Back to Articles
Website Audit

Schema Markup Testing: A Practical Guide to Validating Structured Data

·8 min read

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 Article blocks, or an Organization block 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.

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.

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