Structured Data Validator
Check JSON-LD for the errors that make search engines discard it silently.
What you provide
How this calculation works
Paste a script tag or the JSON inside one. It is parsed first — a block that does not parse is discarded by search engines silently, with no console warning and no report, so invalid JSON is markup that was simply never read. Then every node is walked: each needs a type, the document needs a context, and each type is checked against the properties it requires. Type names are checked for case too, since schema.org is case-sensitive and "localBusiness" is ignored rather than rejected.
What the results mean
- Missing required property
- The markup is valid JSON and will be ignored for rich results. There is no warning anywhere except a validator.
- No @type
- A node without a type describes nothing. Common when nested objects are written as plain JSON rather than typed entities.
- Case-sensitive types
- "LocalBusiness" works and "localBusiness" does not. It fails silently, which makes it worth checking explicitly.
- Types found
- Every type in the document, including nested ones. A quick check that the block describes what you meant it to.
Common problems and fixes
- It says the JSON is invalid but it looks fine
- Trailing commas and typographic quotes are the usual causes — both are introduced by word processors and both are valid nowhere. A code editor shows them immediately.
- Everything validates and no rich result appears
- Valid markup is eligibility, not a guarantee. Confirm the page is indexed, and check that the markup matches what visitors can see.
- The markup is on the page but not detected
- Check that the script tag has type="application/ld+json" and that it is not being injected after the page is parsed by a script the crawler did not run.
Frequently asked questions
What makes structured data invalid?
Three things, in order of frequency: JSON that does not parse, a missing @context or @type, and a type missing a property that type requires. All three fail silently — search engines do not report them anywhere you would notice, which is why the markup can sit there for a year doing nothing.
Is this the same as Google's Rich Results Test?
No. This checks syntax and structure locally without your page ever leaving the browser, which is the useful check while writing markup. Google's own test fetches the live URL and tells you which of its rich results the page is eligible for — run that once the markup is deployed.
Put this on your own site
Free to embed, no attribution required beyond the source link the frame carries itself. It runs entirely in your visitor's browser, sets no cookies and loads no third-party script.
<iframe src="https://runthetests.com/embed/schema-validator/" width="100%" height="560" style="border:1px solid #e5e5e5;border-radius:8px" title="Structured Data Validator" loading="lazy"></iframe>
Preview it at https://runthetests.com/embed/schema-validator/. Embedded pages are marked noindex, so yours stays the canonical copy — not this one.