RevealTheme logo

Schema Markup Validator

Fetch any public URL and extract its JSON-LD structured data. This tool reports how many <script type='application/ld+json'> blocks a page contains, whether each one is valid JSON, and the @type it declares.

How to use this tool

  1. 1

    Paste the full public URL of the page you want to inspect (including https://) into the input box.

  2. 2

    Click Analyze. The tool fetches the page server-side and scans its HTML for JSON-LD script blocks.

  3. 3

    Read the results: a count of blocks found, a green Valid or red Invalid badge per block, and the detected @type.

  4. 4

    For any Invalid block, read the JSON parse error and the raw snippet shown to locate the syntax problem.

What does this JSON-LD extractor actually check, and what doesn't it check?

Structured data is machine-readable markup, built on the schema.org vocabulary, that tells search engines what a page represents — an Article, a Product, an FAQPage, a recipe — rather than leaving them to infer it from prose. Google's preferred format is JSON-LD: a block of JSON placed in a <script type="application/ld+json"> tag, kept separate from the visible HTML. Valid structured data can make a page eligible for rich results such as star ratings, FAQ accordions, and breadcrumbs, which often lift click-through rates. This tool is a JSON-LD extractor and syntax checker, not a full schema validator. It fetches the URL on the server, parses the returned HTML with Cheerio, finds every JSON-LD script tag, and runs JSON.parse on each one. A block is marked Valid only when it is well-formed JSON; it is marked Invalid when parsing throws, and the error message plus the first 500 characters of the raw block are shown. For valid blocks it surfaces the top-level @type (or the first @type inside an @graph). It does not check schema.org field requirements, validate property values, inspect Microdata or RDFa, or judge Google rich-result eligibility. For those deeper checks, use Google's Rich Results Test and the Schema.org validator.

Common use cases

  • Confirm a page actually emits JSON-LD after deploying a new structured-data template, instead of assuming it shipped.

  • Catch malformed JSON-LD — a trailing comma or unescaped quote that makes the block fail to parse — before search engines silently ignore it.

  • See at a glance which @type a page declares, useful when auditing whether a competitor uses Product, Article, or FAQPage markup.

  • Spot accidentally duplicated JSON-LD blocks emitted by overlapping plugins like Yoast and Rank Math.

  • Verify staging or newly built pages contain the JSON-LD you expect before pushing them live.

  • Triage missing rich results by first ruling out the simplest cause: the JSON-LD is absent or does not parse.

Frequently asked questions

Does this tool fully validate my schema against schema.org?
No. It checks two things: that each JSON-LD block is syntactically valid JSON, and what @type it declares. It does not verify that required schema.org properties are present, that property values are correct, or that the markup qualifies for any rich result. Treat it as a fast first pass; run Google's Rich Results Test and the Schema.org validator for full validation.
Does it check Microdata or RDFa markup?
No. It only looks for JSON-LD inside <script type="application/ld+json"> tags. Microdata (inline itemprop attributes) and RDFa are ignored entirely. If your structured data uses those formats, this tool will report zero blocks even though markup exists.
Is my data uploaded or stored anywhere?
The tool runs server-side: you submit a URL, our server fetches that public page and parses its HTML, then returns the result. It does not store the URL or the page contents after responding. Because the fetch happens from our server, it only works on publicly reachable pages — it cannot reach localhost, pages behind a login, or anything firewalled.
Why does a block show as Invalid?
A block is Invalid when JSON.parse throws on its contents — almost always a JSON syntax error such as a trailing comma, an unescaped quote or newline, a single-quoted string, or a stray HTML comment inside the script tag. The tool shows the parser's error message and the first 500 characters of the raw block so you can find the offending character.
Why does my page show valid JSON-LD here but no rich results in Google?
Valid JSON is only the first requirement. Google rich results also need the specific properties that each type mandates (for example a Recipe needs name, image, and recipeIngredient), sufficient content quality, and Google's discretion. A block can be perfectly valid JSON and still be ineligible. This tool does not evaluate any of those additional conditions.
Can it handle pages with multiple JSON-LD blocks?
Yes. It finds every JSON-LD script tag on the page and reports each one separately with its own Valid/Invalid badge and detected @type, plus a total count at the top. That makes it easy to see when a page emits, say, separate Article, BreadcrumbList, and FAQPage blocks.
What does the @type line mean in the results?
For each valid block it shows the top-level @type value — for example Product or Article. If the block uses an @graph array (multiple entities in one block), it shows the @type of the first entity in that array. If no @type is found it shows a dash. It does not list every type in a multi-entity graph.

Related tools