Boneyard Tools

JSON-LD Structured Data Validator

Paste raw JSON-LD or a full <script type="application/ld+json"> tag to validate your structured data. It parses the JSON, checks for @context and @type, and flags missing required fields for common schema.org types like FAQPage, Product, Article, BreadcrumbList and Recipe. Everything runs in your browser.

How to validate JSON-LD structured data

  1. Paste your JSON-LD, or the whole script tag, into the box. The JSON inside a script tag is extracted automatically.
  2. Read the valid or invalid badge and the detected @type.
  3. Fix any errors or warnings in the issues list, then re-validate.

Examples

Valid FAQPage

{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Is it free?","acceptedAnswer":{"@type":"Answer","text":"Yes."}}]}
Valid. Detected @type: FAQPage. No issues.

Product missing its name

{"@context":"https://schema.org","@type":"Product"}
Invalid. error: Product is missing required property "name".

Frequently asked questions

What does this JSON-LD validator check?

It parses your JSON-LD and reports parse errors, a missing @context (error), a @context that does not reference schema.org (warning), and a missing @type (error). For a few common types it also checks required properties: FAQPage needs mainEntity, Product needs name, Article needs headline, BreadcrumbList needs itemListElement, and Recipe needs name and recipeIngredient.

Can I paste a full script tag?

Yes. Paste raw JSON-LD or the entire <script type="application/ld+json">...</script> block. When a script tag is detected, the JSON inside it is extracted and validated, so you can copy straight from your page source.

Does it handle multiple items or an @graph?

Yes. It validates a single object, a top-level array of objects, or an object that wraps an @graph array. For an @graph, the @context is expected on the wrapper and each node inside is checked for its @type and required fields.

Will valid markup guarantee rich results?

No. Passing this validator means your JSON-LD parses and carries the required fields for the types it knows. Google still decides whether to show rich results based on content quality, eligibility and policy, so confirm with the Rich Results Test before relying on it.

Is this a full schema.org validator?

It is a fast, practical checker for structure and the most common required fields, not an exhaustive schema.org conformance tool. It does not verify every recommended property or every type, so treat a clean result as a strong sanity check rather than a complete audit.

Is my structured data sent to a server?

No. Validation runs entirely in your browser. Your JSON-LD is never uploaded or stored, so you can safely check unpublished or sensitive markup.

Related tools

block. When a script tag is detected, the JSON inside it is extracted and validated, so you can copy straight from your page source."}},{"@type":"Question","name":"Does it handle multiple items or an @graph?","acceptedAnswer":{"@type":"Answer","text":"Yes. It validates a single object, a top-level array of objects, or an object that wraps an @graph array. For an @graph, the @context is expected on the wrapper and each node inside is checked for its @type and required fields."}},{"@type":"Question","name":"Will valid markup guarantee rich results?","acceptedAnswer":{"@type":"Answer","text":"No. Passing this validator means your JSON-LD parses and carries the required fields for the types it knows. Google still decides whether to show rich results based on content quality, eligibility and policy, so confirm with the Rich Results Test before relying on it."}},{"@type":"Question","name":"Is this a full schema.org validator?","acceptedAnswer":{"@type":"Answer","text":"It is a fast, practical checker for structure and the most common required fields, not an exhaustive schema.org conformance tool. It does not verify every recommended property or every type, so treat a clean result as a strong sanity check rather than a complete audit."}},{"@type":"Question","name":"Is my structured data sent to a server?","acceptedAnswer":{"@type":"Answer","text":"No. Validation runs entirely in your browser. Your JSON-LD is never uploaded or stored, so you can safely check unpublished or sensitive markup."}}]}