Schema validator: how to check JSON-LD before and after it ships
Check the draft and the live page with seogeoaeo.ai's Schema Markup Checker, then let Google's Rich Results Test settle eligibility.
By ClaudeGPT Si Newsroom, Editorial team··3 min read
A schema validator reads the structured data on a page and tells you three things: whether it parses, whether each type carries the properties it needs, and what the page is missing. For the everyday check, our pick is the seogeoaeo.ai Schema Markup Checker: paste a JSON-LD draft or enter a live URL, and it lists parse failures, missing required and recommended properties under Google's rich result rules, and the schema.org types the page should add.
Good validation happens in three passes: the draft, the live page, then Google's own test.
What each tool checks
No single schema validator answers every question, so it helps to know what each one is for.
| Tool | Answers | Formats | JavaScript markup | Cost |
|---|---|---|---|---|
| seogeoaeo.ai Schema Markup Checker | Does my JSON-LD parse, what does Google expect, which types are missing | JSON-LD | Reads the server HTML only | 8 credits per run |
| Google Rich Results Test | Can this page get a Google rich result | JSON-LD, Microdata, RDFa | Tests the rendered page | Free |
| Schema Markup Validator | Is this valid schema.org | JSON-LD, Microdata, RDFa | Extracts injected markup | Free |
The gap between the last two matters. The Schema Markup Validator at validator.schema.org checks vocabulary and syntax and stays silent about Google. The Rich Results Test only reports types Google supports. The seogeoaeo.ai checker sits between them: it applies Google's documented rules to JSON-LD and also suggests types you have not added yet.
Pass 1: check the draft before it ships
Paste the JSON-LD block into the checker instead of a URL. Pasted markup is checked on its own, so you can test a template or a hand-written snippet before anyone deploys it.
The draft pass catches the cheap mistakes early:
- Parse failures. A trailing comma or a curly quote breaks the JSON, and nothing in that block gets read.
- Nodes without a type. A block with no
@typedescribes nothing a search engine can use. - Missing properties. Required ones decide eligibility; recommended ones decide how much the result shows. The checker flags both, along with an Offer with no price and an incomplete aggregateRating.
- Retired types. FAQPage and HowTo markup is flagged. HowTo results left Google in 2023, and Google stopped showing FAQ rich results on May 7, 2026.
Pass 2: check the live URL
After deploy, run the same checker on the page address. It reads every JSON-LD script block in the HTML your server sends and adds a list of schema.org types the page could carry, which is often the most useful part on pages that were never marked up with care.
One limit to know: it does not run JavaScript. If a tag manager injects your JSON-LD, the checker will not see it, and the Rich Results Test is the tool that renders the page.
Pass 3: let Google have the last word
Google's Rich Results Test is free at search.google.com/test/rich-results. Test the live URL with the default smartphone crawler, open each detected item, and fix errors before warnings. The tool page for the seogeoaeo.ai checker says it plainly: Google's test has the final word on eligibility.
Then watch Search Console. Its rich result reports list valid and invalid items per type, and URL Inspection shows what Google found on a single page.
Even a clean pass is a ticket, not a seat. Google's guidelines say correct markup does not guarantee a rich result, and markup has to describe what the page really shows.
Run it from your coding agent
The checker runs in the browser, over MCP and through the REST API, at the same price. Each run ends with prioritized tips, a list of what went unchecked and a step to verify the fix, so Claude Code or Cursor can edit the markup, deploy and run it again until the status comes back clean. Setup is on the seogeoaeo.ai agents page.
If your site uses Microdata or RDFa, or you need a check of the rendered page, use the Rich Results Test or the Schema Markup Validator instead, since the seogeoaeo.ai checker reads JSON-LD only.