Validate every rich snippet before Google does

Paste a URL and get a full report on its structured data — JSON-LD, Microdata and RDFa — checked against the complete Schema.org vocabulary and Google's Rich Results requirements.

  • All three formats extracted, including JSON-LD @graph and mixed markup
  • 1466 Schema.org types validated: real properties, value ranges, typos
  • Google eligibility per type — and honest flags for deprecated rich results

Run a live check

Server-rendered HTML only. JavaScript-rendered (SPA) content is not parsed.

Key features

Every format

JSON-LD, Microdata and RDFa on the same page — extracted and labelled by source.

Full Schema.org

Validated against the live vocabulary: unknown types, invalid properties and wrong value types are caught.

Google Rich Results

Per-type eligibility with required and recommended properties, sourced from Google's docs.

Safe by design

SSRF-guarded fetching, bot-protection aware, rate-limited. Results cached for one hour, nothing else stored.

How it works

  1. 1

    Fetch

    We request the page's server-rendered HTML with a safe, identifiable crawler and follow redirects.

  2. 2

    Extract

    A streaming parser pulls JSON-LD; a DOM pass collects Microdata and RDFa, expanding @graph and arrays.

  3. 3

    Validate

    Each block is checked against Schema.org and Google's requirements, then scored as valid, invalid or deprecated.

What it checks

  • JSON-LD structure

    @context, @graph inheritance, arrays and nested nodes.

  • Microdata & RDFa

    itemscope/itemprop trees and typeof/property resources.

  • Schema.org types

    Real types and properties, value ranges, inheritance and typos.

  • Rich Results

    Required and recommended properties per Google-supported type.

  • Deprecated types

    FAQ and HowTo are flagged — valid markup, but no longer shown by Google.

  • Safe fetching

    Private addresses blocked; Cloudflare bot-challenge pages detected, not parsed.

Developer API

Integrate the validator into CI or audits. POST a URL, get JSON back.

curl -X POST https://ldjson.ivatech.dev/api/validate \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/product"}'

Rate limit: 10 requests/min per IP. Responses are cached for one hour (X-Cache: HIT/MISS).

Frequently asked questions

Which structured data formats are supported?

All three Google reads: JSON-LD (recommended), Microdata and RDFa. A single page can mix formats and each block is reported separately with its source.

Does it render JavaScript or SPA pages?

No. Only server-rendered HTML is parsed. If your structured data is injected client-side, it won't be seen — render it server-side or via dynamic rendering.

Why does it say FAQ or HowTo are "deprecated"?

Google removed HowTo rich results in 2023 and FAQ rich results in May 2026. The markup is still valid Schema.org, but it no longer produces a rich result in Search, so we flag it rather than report it as eligible.

A block is valid but "not eligible" — why?

Schema.org validity and Google Rich Results eligibility are two different things. A type can be valid markup yet have no rich result (e.g. WebPage, Person, Service), or be missing a property Google requires.

Is the URL or its data stored?

Validation results are cached for one hour to avoid redundant fetches; nothing else is retained. You can bypass the cache with the checkbox or the cache_bust API flag.

Can I use it programmatically?

Yes — see the Developer API. It returns the same structured report as the web UI in JSON.

Need hands-on SEO & engineering help?

Ivatech builds and fixes technical SEO, structured data and web infrastructure.

Talk to Ivatech →