Skip to content
Metric VaultHelp Center
Open app

Schema validator

Free public tool that extracts and parses the structured data on any URL, reports every schema type detected, and shows each JSON-LD block in full.

Last updated 2026-08-06

Summary#

The Free Schema Markup Validator fetches a page, extracts every JSON-LD block plus any Microdata and RDFa, parses each one, and reports the schema types it found along with the full source of each block. It runs at /free-tools/schema-validator with no account.

Purpose#

Structured data is how you tell a machine what a page is rather than making it guess. It decides whether you are eligible for rich results in Google, and it is one of the strongest signals answer engines use to identify your entities and quote you accurately.

It is also invisible. Nothing on the rendered page changes when a template stops emitting JSON-LD, or when a stray comma breaks the JSON so the whole block is discarded. This validator makes that visible in one fetch.

Overview#

The tool requests the page with a realistic browser user agent, because many sites return 403 to an obvious bot and that used to look identical to "no structured data". If the first request fails it retries with a Googlebot user agent.

From the HTML it extracts every <script type="application/ld+json"> block and attempts to parse each as JSON. It counts Microdata items and RDFa vocabularies separately. Types are collected deeply, following @graph, arrays and nesting, so a single block declaring several entities reports all of them.

Benefits#

  • Reports what your page actually publishes, block by block, rather than a pass or fail.
  • Retries with a second user agent, so bot protection does not masquerade as missing markup.
  • Collects types through @graph and nested objects, which is where most real markup lives.
  • Shows each block's full source so you can copy it into an editor.
  • No account, no credits.

Use Cases#

  • Confirming a plugin works. You installed schema markup; this shows whether it reaches the served HTML.
  • Debugging a broken block. A parse error names the character position.
  • Auditing a competitor's markup. See exactly which types they publish.
  • Pre-launch check on a template. Run it on one page of each content type.

Requirements#

A public URL returning HTML. Private, loopback and internal hosts are refused.

Permissions#

Anyone. No account, plan or role. A shared hourly fair-use limit applies per IP address across the free tools.

Cost#

Free. Zero credits.

metricvaultai.com → Free tools → Schema Validator

The page is at /free-tools/schema-validator.

Inputs#

FieldLabel / placeholderRequiredValid valueNotes
URLexample.comYesA bare domain or a full URLhttps:// is added if omitted. Enter the full path of the page whose markup you want to see.

Helper line: No signup · No credit card · Unlimited free use.

Step-by-Step Guide#

  1. Open /free-tools/schema-validator.
  2. Enter the page in the field marked example.com.
  3. Select Validate Schema. The button reads Validating… and the result area shows Fetching page and scanning structured data….
  4. Check the four headline numbers, confirm the detected types are the ones you expect, then read any block marked ✗ Invalid.

Reading the Results#

The four headline numbers.

TileMeaning
Total BlocksHow many application/ld+json script blocks were found
Valid JSON-LDHow many of those parsed successfully
InvalidHow many failed to parse. Red when above zero
Microdata itemsHow many Microdata items were detected

Detected Schema Types (N). A chip per type name found across all valid blocks, collected through @graph, arrays and nested objects. This is the list to check against what you intended to publish.

Per-block cards. One card per JSON-LD block, headed JSON-LD Block #N with a status pill of ✓ Valid or ✗ Invalid. A failed block shows Parse error: <message> with the JSON parser's own description. A valid block lists its types as chips and then shows the block's source, formatted, up to roughly 60,000 characters.

No structured data. When no JSON-LD is found the page shows an amber card:

Note

No JSON-LD blocks found. This page has no <script type="application/ld+json"> tags. Consider adding structured data to unlock rich results in search engines.

A blocked fetch. If the page cannot be read at all, the tool says so rather than reporting an empty result:

Note

The page returned HTTP <n>, so its HTML could not be read. This is usually bot protection on the site, not missing structured data — check the URL in a browser or Google's Rich Results Test.

That distinction matters. "We could not read it" and "there is nothing there" are different answers and the tool never conflates them.

Examples#

Example

Example: A product page reports Total Blocks 3, Valid JSON-LD 2, Invalid 1. The invalid card reads Parse error: Unexpected token } in JSON at position 412. A template variable rendered empty and left a trailing comma. Everything in that block, including the Offer pricing, was being discarded by every consumer.

Example

Example: A publisher expects Article, Organization and BreadcrumbList and the chips show only Organization. The article schema is emitted by a plugin that runs client-side, so it never reaches the served HTML that crawlers read.

Screenshots#

Screenshot
The Schema Markup Validator hero with the H1, the example.com input and the "Validate Schema" button.
Screenshot
A completed result showing the four tiles Total Blocks, Valid JSON-LD, Invalid and Microdata items.

![screenshot](placeholder: The "Detected Schema Types (N)" chip row.)

Screenshot
A per-block card headed "JSON-LD Block #2" with the ✗ Invalid pill and the "Parse error:" detail above the raw block source.

Tips#

  • Compare the detected types against the types your page should have. A missing chip is more informative than a green count.
  • If types you can see in your CMS do not appear here, the markup is probably being injected by JavaScript after load.
  • Copy a block's source into a JSON formatter when a parse error's position is not obvious.
  • Run AI Overview checker on the same URL. Structured data is worth 20 of its 100 points, and this tool tells you whether that markup is real.

Best Practices#

  • Use JSON-LD rather than Microdata or RDFa for new markup. It is the format Google recommends and the one this tool inspects in most depth.
  • Publish types that describe the page honestly. Marking a blog post as a Product to chase a rich result is the kind of thing that gets markup ignored.
  • Keep one canonical source of truth for schema. Two plugins both emitting Organization produce contradictory blocks.
  • Validate against Google's Rich Results Test as well before you rely on rich result eligibility. This tool tells you what you publish; Google decides what it will use.

Common Mistakes#

  • Reading ✓ Valid as "correct". It means the JSON parsed. It does not mean every required property for that type is present.
  • Assuming a 403 means no markup. The tool names that case explicitly. Read the message before concluding anything.
  • Testing only the homepage. Schema is usually per template.
  • Expecting rich results because the markup exists. Eligibility is a precondition, not a promise.

Limitations#

  • One URL per run. No crawl.
  • Server-rendered HTML only. Schema injected by JavaScript after load is not seen, and the tool flags a page that looks client-rendered.
  • The free page shows parse validity, not property completeness. The underlying check does compare common types against their required and recommended properties, but the public result surfaces block-level parse status and detected types rather than a per-property error list. For required-property feedback, use Google's Rich Results Test or the in-app Schema Tool.
  • Microdata is reported as a count only, and RDFa is not displayed on this page.
  • Block source is shown up to roughly 60,000 characters, then truncated.
  • No export, history, scheduling or recommendations panel. See Free tools, no account needed.

Troubleshooting#

SymptomLikely causeFix
That does not look like a valid domain. Try example.comThe input is not a plausible hostnameEnter example.com or a full URL
Validation failed: Schema check failed: <message>The request could not be completedConfirm the URL loads in a browser
Validation failed: Unexpected response from validatorThe response did not contain a result payloadRetry; if it persists, check the URL in a browser
The blocked-fetch note about HTTP status and bot protectionThe site refused both user agentsTest the URL in Google's Rich Results Test to confirm the markup exists
No JSON-LD blocks found on a page that has schema in the CMSThe markup is injected client-sideMove it into the server-rendered HTML
A block shows ✗ Invalid with a positionA syntax error in the JSON, often a trailing commaFix the template that generates it
Hourly fair-use limit reached (100 light-tool calls/hour)…Too many free-tool runs from one network within the hourWait for the next hourly reset

FAQs#

Which formats does it detect? JSON-LD in depth, with Microdata counted and RDFa detected server side. JSON-LD is the format to use for new markup.

Does ✓ Valid mean my rich result will show? No. It means the block is syntactically valid JSON. Rich result eligibility also depends on the required properties for the type and on Google's own judgement.

Why did it find fewer types than my plugin claims to add? Either the markup is added client-side and never reaches the served HTML, or a block failed to parse and was discarded. The Invalid count answers which.

Can I validate a page behind a login? No. The tool fetches the page as an anonymous visitor.

Is it really free? Yes. No account, no card, no credits, and the page's own helper line says Unlimited free use.

What does the in-app version add? Schema Tool runs the same extraction inside your workspace, where the result is saved to your history and can be exported, and surfaces the required-property validation alongside the detected types.

See also

Was this article helpful?