How to Validate JSON-LD Structured Data
Paste markup or fetch a page
On the Paste JSON-LD tab, drop in the contents of a script type "application/ld+json" block, a single object, or an array of objects. Or switch to the Fetch from URL tab and enter a live page address to pull every JSON-LD block from its HTML automatically.
Click Validate Schema
The validator parses the JSON, confirms each object has an @type, checks that top-level objects declare @context, and verifies the required fields for known types such as Article, Product, FAQPage, HowTo, Recipe, Event, and LocalBusiness. It walks nested objects and arrays too, so embedded Offer, Review, or ListItem entries are checked as well.
Review types, errors, and warnings
Read the summary line for a pass or fail count, scan the detected type badges, then work down the issue list. Fix every error (missing required fields and misspelled properties) first, then address warnings, and re-run until the report is clean.
What Each Check Means
The validator raises two severity levels. Errors block valid output and should be fixed first; warnings are advisory and often safe to leave, but reviewing them improves coverage. Here is what triggers each message.
| Check | Severity | What triggers it |
|---|---|---|
| Invalid JSON | Stops validation | The text cannot be parsed, for example a trailing comma or unbalanced bracket. |
| Missing required field | Error | A known type lacks a field it needs, such as Article without headline, author, or datePublished. |
| Unknown property with close match | Error | A property is misspelled within two edits of a real one, so a did you mean suggestion is shown. |
| Missing @type | Warning | An object has no @type, so required fields cannot be checked. |
| Missing @context | Warning | A top-level object omits @context, expected to be https://schema.org. |
| Unrecognized type or property | Warning | The type is not in the curated list, or a property has no close-matching known field. |
Which Mode and Tool to Use
Paste JSON-LD mode
Use this while writing or editing markup. Your pasted JSON is parsed and checked entirely on your device, so it is ideal for drafts, snippets, and code you are not ready to publish.
Fetch from URL mode
Use this to audit a page already live. The tool retrieves the HTML through a third-party proxy, extracts every JSON-LD script block, and validates them together. Pages behind logins or heavy JavaScript rendering may return nothing to check.
This validator
Best for fast structural checks: JSON syntax, @type and @context presence, required fields, and typo detection across a curated set of common schema types and their nested objects.
Google Rich Results Test
Use it alongside this tool for the final word. It validates against Google's own rich result rules and full property sets, which go beyond the required-field checks performed here.
Common Problems and Fixes
Invalid JSON message appears
The markup could not be parsed. Look for trailing commas, unquoted keys, or unescaped quotes inside string values. Copy only the JSON inside the script tag, not the surrounding HTML, then validate again.
Missing @context warning on valid markup
This warning fires only on top-level objects. Add "@context": "https://schema.org" to each root object. Nested objects inherit context and do not need it repeated.
Did you mean suggestion on a real property
The checker flags properties that are not in its known list for that type but are within two edits of one, like datepublished instead of datePublished. Schema.org property names are case sensitive, so match the exact spelling and capitalization.
URL fetch returns no schema
The page may have no JSON-LD, may inject it with JavaScript after load, or may block the proxy used to retrieve it. View the page source to confirm a script type application/ld+json block exists, or copy that block and use the paste mode instead.