Free tool · Schema Validator

Find the schema errors Search Console will.

Structured data either parses or it silently does nothing. This checks your JSON-LD the way a search engine does, every block, every node, every required property, and tells you exactly which ones break, in plain language. It catches the common killers: unparseable JSON, a missing @context, a Review with no itemReviewed, an AggregateRating with no count, dates that are not ISO 8601, and references to an @id that nothing defines. Runs entirely in your browser, no API key, nothing sent to us.

Validate your markup

Every error, and the fix.

Paste your JSON-LD directly, or paste a whole page’s HTML and every <script type="application/ld+json"> block will be pulled out and checked. Already generated your markup? Use the Schema & llms.txt Generator to write it, then bring it back here to check it.

Parsed entirely in your browser, nothing is uploaded, logged, or stored. Valid markup makes a rich result possible; Google still decides whether to show one, and no tool can promise otherwise. Want this fixed and monitored? Talk to us.

FAQ

Questions, answered.

The generator WRITES new markup from a short form. This validator CHECKS markup that already exists on a page and tells you what is broken. Most people need both: generate it once, then validate it after every template change.

No. Valid markup makes a rich result possible; Google still decides whether to show one based on page quality, policy, and its own index. Any tool promising guaranteed rich results is overselling. What this does guarantee is that your markup parses and has the properties Google documents as required.

Unparseable JSON (a trailing comma or a smart quote kills the whole block silently), a missing @context, a Review with no itemReviewed, an AggregateRating with neither reviewCount nor ratingCount, dates that are not ISO 8601, relative image URLs, and references to an @id that nothing in the graph defines.

Yes. Paste the full HTML and every <script type="application/ld+json"> block is extracted and checked separately, so you see which block has the problem.

No. Everything is parsed in your browser with the built-in JSON parser. Nothing is uploaded, logged, or stored.

Want your structured data right across every page?