What a schema markup validator checks
Structured data is code on your page, usually JSON-LD, that states plain facts about it: this is a product, it costs 29 USD, it has 4.8 stars from 312 reviews. A schema markup validator reads that code the way a crawler does and tells you whether it is complete, valid and eligible for rich results. Enter a URL or paste a snippet above and this free structured data testing tool lists every item it finds, with errors, warnings and a suggested fix.
What are rich results?
Rich results are search listings with extras: price and stock under a product, review stars, breadcrumbs instead of a raw URL, event dates or recipe times. They do not raise rankings by themselves, but they take more space and usually earn more clicks. Search engines show them only when the markup is valid, matches what is visible on the page and includes the required properties. That is why a rich snippet testing tool is worth running before and after every release.
Clean structured data also supports AI search visibility. AI assistants and answer engines lean on explicit facts such as price, availability, ratings and authorship when they summarize a page, and JSON-LD is the easiest place for them to find those facts.
Which schema types we check
The schema checker reads JSON-LD, Microdata and RDFa and validates the types behind most rich results:
- Product and Offer - merchant listings and product snippets, including price, currency, availability and shipping.
- AggregateRating and Review - review stars and their required counts.
- BreadcrumbList - the breadcrumb trail shown instead of the URL.
- Organization and LocalBusiness - logo, address, opening hours and contact details.
- Article and BlogPosting - headline, author, dates and image.
- FAQPage, Event, Recipe, VideoObject and WebSite.
Other schema.org types are still listed with their data, so you can inspect anything a page outputs.
The most common schema errors
- Missing priceCurrency. An Offer with a price but no currency is not eligible for merchant listings. Use an ISO 4217 code such as USD or EUR.
-
Price with a currency symbol.
"price": "$29.00"is invalid. The price must be a plain number like29.00, and the currency goes in priceCurrency. - aggregateRating without ratingCount. Stars need ratingValue plus ratingCount or reviewCount. A rating with no count is ignored.
-
Relative image URLs.
"image": "/files/shoe.jpg"may not resolve for every consumer. Use absolute https URLs. - Invalid JSON. One trailing comma, a missing quote or an unescaped line break breaks the whole block, so none of it is read. The validator shows the line and column.
- Duplicated Product schema. Two Product blocks on one page, usually one from the theme and one from an app, often with different prices or ratings. Search engines may pick the wrong one or ignore both.
- Schema injected by JavaScript. If a script adds the JSON-LD after the page loads, crawlers that do not run JavaScript never see it, and many AI crawlers fall into that group. Server-rendered markup is safer.
Shopify schema tips
- Theme and apps both output Product JSON-LD. Most Shopify themes print Product markup in the product template, and SEO or review apps often add their own. Keep one source of truth: switch off the app markup or remove the theme block, then validate again.
- Review apps and aggregateRating. Apps such as Judge.me can add aggregateRating to your products. Check that the rating sits on the same Product item as your offers, not on a second, separate Product.
- Check after every theme update. A new theme version can bring back markup you removed or drop properties you added. Validate a product page, a collection page and the homepage after each update.
- One Offer per variant. If variants have different prices or stock, list each as its own Offer, or use an AggregateOffer with lowPrice and highPrice, so search engines do not show the wrong price.
- FAQ and HowTo markup. FAQ rich results are now limited to authoritative government and health sites, so most stores will not get the dropdowns in search. FAQ markup still helps AI answers understand your page. HowTo rich results were retired in 2023.
How to use this rich results test
- Check a live URL to see what crawlers actually receive, or paste code to test a change before you ship it.
- Fix errors first, because they block rich results. Warnings are recommended properties that make a result richer.
- Copy the suggested JSON-LD, replace the placeholder values with your real data, and validate again.
- After you deploy, confirm the result in Google Search Console, whose enhancement reports show how Google processed the markup over time.
Need the markup written for you? Try the AI Schema Markup Generator (JSON-LD) or the AI FAQ Schema Generator, or browse more free AI generators and tools. To get alerts when a page loses its schema, see KissMySkills All Access.
FAQ
Is this schema markup validator free?
Yes. You can run free checks every day without signing up, by URL or by pasting code. If you need more, Pro gives 200 checks a day plus weekly monitoring of 25 URLs, and Team gives 1000 checks a day and 200 URLs.
How is this different from the Google Rich Results Test?
Both read the same structured data. This schema checker also flags JSON-LD injected by JavaScript and duplicated Product blocks from themes and apps, and suggests a JSON-LD fix for each item. Use ours for fast fixes and the Google test for final confirmation.
Why does my Shopify product page have two Product schemas?
Usually the theme outputs Product JSON-LD and an SEO or review app adds a second one. Keep one source, make sure reviews and offers are attached to it, and validate again after every theme or app update.
Do FAQ rich results still appear in search?
Only for well-known, authoritative government and health websites. For other sites the FAQ dropdowns no longer show, but valid FAQPage markup still helps AI assistants and answer engines understand your questions and answers.
Can AI search engines read my schema markup?
Many AI crawlers read the raw HTML and do not run JavaScript, so they see JSON-LD only when it is in the server response. Keep structured data server-rendered and valid to improve your AI search visibility.