Skip to content

Structured data testing tool

Validate schema from a URL. We fetch the page's HTML, pull out every JSON-LD block and run the full check on it here in your browser.

How URL testing works here

The URL is fetched once by our server, the way a crawler without JavaScript would see it. Only the application/ld+json script blocks come back to your browser, where the same validator used on the home page checks them. Findings point at line numbers in the extracted markup.

Because there is no rendering step, results can differ from Google's Rich Results Test for pages that build their markup in JavaScript. That difference is useful: markup that only appears after rendering depends on Google's rendering queue, while markup in the server HTML is read on the first crawl.

Safety limits

  • Public http and https addresses only; private, loopback, link-local and cloud-metadata addresses are refused after DNS resolution, including on every redirect.
  • Up to 4 redirects, 8 seconds and 2 MB per page; standard web ports only.
  • 12 fetches per minute per visitor.

Questions

Is this Google's Structured Data Testing Tool?

No. Google retired its Structured Data Testing Tool in 2021; its replacements are the Rich Results Test (Google features) and the Schema Markup Validator at validator.schema.org (vocabulary). This is an independent tool that combines both kinds of check and explains the fixes.

Why does it find no markup on my page?

The fetch reads the HTML your server sends, without running JavaScript. If a tag manager or a client-side framework injects the JSON-LD, it only exists after rendering. Google renders pages, so it may still see it; check with the Rich Results Test, or copy the rendered markup from your browser's dev tools and paste it on the validator.

Can I test a staging or localhost URL?

No. For safety the fetcher only reaches public internet addresses. Paste the HTML or JSON-LD instead.

What exactly is fetched?

One GET request to the URL you entered (following up to four redirects), capped at 2 MB and 8 seconds. We keep only the JSON-LD blocks, title and meta description for this response; nothing is stored.