Schema Validator (JSON-LD)
Paste a JSON-LD block to check the JSON syntax, @context and @type, and the key properties each common schema type needs before you publish.
JSON-LD
Validation report
For the final word, test the published page in Google's Rich Results Test or the Schema.org validator.
How to use the schema validator
Paste your JSON-LD block. You can include the surrounding <script type="application/ld+json"> tag or paste just the JSON. The validator checks the JSON syntax, confirms @context and @type are present, and looks for the key properties each common type needs, such as Article, Product, Event, Recipe, FAQPage and LocalBusiness. It also handles @graph arrays and flags nested objects, such as an author or publisher, that are written as plain text or have no @type.
Why this matters
Broken structured data is one of the most common reasons rich results fail to appear even though the markup is on the page. A missing comma, a wrong @type or a forgotten author field can quietly disqualify a page. Catching those errors before you publish saves a round of waiting for Google to recrawl.
What this validator covers, and what it does not
It covers JSON syntax, @context, @type and the main property lists for 18 popular types. It does not check deep combinations of nested types, eligibility for specific Google features, or whether your live page can be crawled. For those, run Google's Rich Results Test on the published URL.
Frequently asked questions
What is the difference between JSON-LD, Microdata and RDFa?
All three are structured data formats. JSON-LD is the format Google recommends: it sits in its own script tag and is the easiest to maintain. Microdata and RDFa use attributes inside your HTML. This validator only reads JSON-LD.
Why do I not see rich results even though my markup passes?
Valid markup only makes a page eligible. The page also has to be indexed, the markup has to match what is visible on the page, and Google decides when to show rich results. Check the enhancement reports in Search Console to see what Google detects.
Can a block have more than one @type?
Yes. Use an array, such as "@type": ["WebPage", "FAQPage"], when a page genuinely fits both types.
Should nested objects have their own @type?
Yes. The most common nested mistake is writing "author": "Jane Smith" as plain text. Use an object instead, such as {"@type": "Person", "name": "Jane Smith"}.

