JSON-LD Schema Validator

Validate every JSON-LD block on a page together. Catch duplicate and near-identical @id values, broken references and plugin conflicts, check Google rich result eligibility as it stands today, and get a repaired copy with every change explained. Free, nothing uploaded.

Live v3.0 · October 2026 Free · No loginWhole page, all blocksRepaired copy
Structured data validator 22 of 25 Google features
Paste the whole page source (View source, select all, copy) so every block is checked together, or a single JSON-LD object or array. Up to 2 MB. Nothing is uploaded.
Used to turn relative URLs into absolute ones in the repaired copy.
Validated in your browser · nothing is uploaded
Validation ·

Paste a page or a JSON-LD block and press Validate.

What this JSON-LD validator checks

Paste a page’s full source, or a single JSON-LD block. The validator parses every application/ld+json block on the page together, finds every node at every depth, and checks three things the standard validators leave out: how the nodes connect through their @id values, whether two sources on the page are describing the same thing twice, and whether each type is still eligible for a Google rich result today.

Schema.org validatorRich Results TestThis validator
Checks schema.org vocabularyYesPartlyTypes and values
Google rich result requirementsNoYes, for live featuresYes, from Google’s feature docs
Multiple blocks checked togetherYesYesYes, with each block’s source
@id conflicts, near-misses, dangling referencesNoNoYes, plus an @id link map
Plugin and theme duplicatesNoNoYes
Marked-up text missing from the pageNoNoYes, on pasted HTML
Repaired copyNoNoYes, every change listed
Works before the page is liveCode inputCode inputYes; nothing is uploaded

The schema.org validator’s own announcement says it does not check content against the needs of specific services; Google’s Rich Results Test checks Google features. Columns compare validator.schema.org and Google’s Rich Results Test as reviewed in October 2026.

How to validate JSON-LD on a page

  1. Copy the page sourceOpen the page, view source, select all and copy. The whole source matters, because the problems this tool looks for are between blocks, not inside one. A staging page works the same way.
  2. Paste it and add the page URLThe URL is optional. With it, the repaired copy turns relative links such as /img/logo.png into full addresses.
  3. Fix errors firstJSON errors come with a line and column. Missing required properties make a node ineligible for its rich result. Conflicting @id values and near-identical ids are next.
  4. Read the @id link mapEvery node with an id, and what it points to. A red link points at a node nothing on the page defines.
  5. Copy the repaired JSON-LDMechanical fixes only, each one listed. Anything that needs a real value, such as a date or a price, is left for you.

Duplicate @id values and plugin conflicts

An @id names a node, and every object carrying the same @id describes the same node. The JSON-LD specification describes flattening as collecting all of a node’s properties in a single object. That is useful when it is deliberate: Yoast’s schema specification builds one cohesive graph and cross-references its pieces by id. It goes wrong when two sources use the same id for different things, or different values for the same thing. The validator shows each shared id as one node, and flags conflicting types and values.

The more common fault is the opposite: two ids that were meant to be the same. https://acme.com/#organization and https://acme.com/#Organization are different ids, so the page now describes two companies. The validator normalises case, protocol, www and trailing slashes to find these near-misses, and separately flags two Organization, WebSite, WebPage or Article nodes coming from different blocks. Each block’s script-tag attributes are shown, so you can see which came from an SEO plugin, which from the theme and which was added by hand.

Which structured data types still get rich results

Google’s search gallery lists the features it currently supports, including Article, Breadcrumb, Product, Review snippet, Organization, Local business, Event, Job posting, Recipe, Video, Software app, Course list, Profile page, Q&A and Discussion forum. The validator checks each node against the required and recommended properties in that feature’s documentation. It does not check the three features that depend on page structure rather than a single node: Carousel, Speakable, and subscription and paywalled content. Google’s structured data guidelines say items missing required properties are not eligible for rich results, and that the more recommended properties you provide, the higher quality the result is to users.

Some types have stopped producing rich results. The Search Central updates log records that FAQ rich results no longer appear in Google Search from 7 May 2026, that HowTo results are no longer shown on desktop or mobile, and that practice problems were removed in January 2026. The validator reports those types as no longer shown rather than as errors: the markup is still valid schema.org, it just no longer changes how the result looks.

Visible content, values and dates

Google’s guidelines say not to mark up content that is not visible to readers of the page. When you paste full HTML, the validator compares each node’s name and headline with the text of the page and flags the ones it cannot find. It skips Organization, WebSite and Person names, which normally live in the header or footer.

It also checks values a vocabulary validator lets through: dates that are not ISO 8601 or do not exist, such as 2026-02-30; relative URLs in properties that should be absolute; prices with a currency symbol in them; currency codes that are not three capital letters; availability values that are not full schema.org URLs; ratings above their own bestRating; and breadcrumb positions out of order or missing their links.

It does not fetch anything, so it cannot check that an image URL loads or that an @id defined on another page exists. Google also says its guidelines are not all testable by an automated tool, and that it does not guarantee structured data will show up in results. A clean report means the markup is correct, not that a rich result will appear. For the content side of the same page, the Entity Extractor builds about and mentions markup from the text.

Frequently asked questions

The Rich Results Test checks whether a page qualifies for Google’s features. This validator also checks how the blocks on a page relate to each other: shared and near-identical @id values, references to nodes that do not exist, and the same thing described twice by a plugin and a theme. It also works on pasted code without fetching anything.
Common reasons: the type no longer produces a rich result (FAQ and HowTo among them), a required property for that feature is missing, the marked-up content is not visible on the page, or Google chose not to show it, which its guidelines say it does not guarantee. The findings list separates each of these.
Every object with the same @id describes one node, and JSON-LD combines their properties. If two blocks use the same id for different things, or give it different values, the combined node is wrong. If two blocks use slightly different ids for the same thing, the page describes two things instead of one. Both are flagged.
Yes. Paste the full page source and every block and every nested node is checked, with each finding labelled by block and path.
Google’s Search Central updates log says FAQ rich results no longer appear in Google Search from 7 May 2026. FAQPage markup is still valid schema.org, so it is reported as no longer shown rather than as an error.
Google’s documentation presents structured data as a way to help it understand a page and to make the page eligible for rich results. Its guidelines also say it does not guarantee that structured data will show up in search results.
No. Parsing and validation run in your browser, so you can safely check a staging page before it goes live.