Free schema markup validator
Validate JSON-LD against what Google actually requires.
Three steps, no account.
- 1
Paste a URL or JSON-LD
Enter a page address to read its structured data, or paste the JSON-LD or HTML directly.
- 2
Every block is checked
Each schema.org type is checked for the fields Google requires and recommends.
- 3
Fill the gaps
Add what is missing and remove duplicate blocks, usually one from the theme and one from an app.
What it checks
Paste a URL or raw JSON-LD and see which structured data types are present, which required and recommended fields are missing, and which rich result each type is eligible for.
ShopSEO checks this across your whole store and fixes it for you. Structured data in the app
- All Schema.org types present on the page
- Required and recommended fields per type
- Conflicting duplicate blocks from theme and apps
- Rich result eligibility per type
What each number is telling you.
A report you cannot interpret is just a longer way of saying something is wrong.
Types present
Which Schema.org types the page emits. Product, Offer and BreadcrumbList are the ones that matter most on a store.
Required versus recommended
Required fields must be present for the type to be valid at all. Recommended fields are what decide whether you are eligible for the richer result.
Duplicate blocks
Two Product blocks on one page is common and expensive. Google resolves the conflict by ignoring both, so you lose the enhancement entirely.
Rich result eligibility
Eligible means the markup qualifies. It does not mean the enhancement will show; that stays Google’s decision.
The mechanism, not the platitude.
- 01
It is what puts price and availability in the result
Valid Product and Offer markup is how a search result shows price, stock and rating. That is a visible difference in the listing before anyone clicks.
- 02
Invalid data does not degrade gracefully
A missing required field does not produce a lesser result. The enhancement is withheld, silently.
- 03
It breaks during theme updates
Schema is emitted by templates, and a theme update can strip a block without anything visibly changing on the page.
What this usually turns up, and the fix.
Four problems that account for most of what this tool reports on a Shopify store.
The finding
Two conflicting Product blocks
Why it happens
The theme emits one and an app emits another.
The fix
Turn one off. Usually keep the app’s, since it tracks your catalog, and disable the theme’s.
The finding
Offer missing availability or price
Why it happens
The template only fills fields that were set at build time.
The fix
Emit price, priceCurrency and availability, and make availability reflect reality, since a stale in-stock value gets the enhancement withdrawn.
The finding
AggregateRating with no reviews behind it
Why it happens
Rating markup emitted from a default rather than from real review data.
The fix
Only emit rating markup where real reviews exist. Fabricated ratings are a manual-action risk, not a shortcut.
The finding
Breadcrumbs skipping the collection
Why it happens
BreadcrumbList emitted with only home and product.
The fix
Include the collection level so the trail in the result matches your actual site structure.
What this will not tell you.
Every tool has a boundary. Knowing where this one ends is what keeps you from over-reading it.
- It validates what the page emits. It cannot tell you whether the values are true. Accurate stock and pricing are your responsibility.
- Eligibility is not a promise. Google decides independently whether to show a rich result.
More free tools.
All tools- Schema markup generatorJSON-LD for products, FAQs and more, written for you.
- Meta tag checkerSee every title and description on a page, at the length Google shows.
- SERP simulatorSee your title and description as a Google result, as you type.
- Free Shopify SEO auditScore any Shopify store in about 10 seconds.
Run this continuously instead.
Install ShopSEO free, run your first audit in under a minute, and roll back anything you do not like. No credit card, no theme edits, no lock-in.