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.
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 validator | Rich Results Test | This validator | |
|---|---|---|---|
| Checks schema.org vocabulary | Yes | Partly | Types and values |
| Google rich result requirements | No | Yes, for live features | Yes, from Google’s feature docs |
| Multiple blocks checked together | Yes | Yes | Yes, with each block’s source |
| @id conflicts, near-misses, dangling references | No | No | Yes, plus an @id link map |
| Plugin and theme duplicates | No | No | Yes |
| Marked-up text missing from the page | No | No | Yes, on pasted HTML |
| Repaired copy | No | No | Yes, every change listed |
| Works before the page is live | Code input | Code input | Yes; 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
- 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.
- 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.
- 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.
- 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.
- 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.