Seoxpert.io
Free tool

Schema.org & JSON-LD validator

Paste JSON-LD or a URL. Get a per-block, per-type check against Google's rich-result requirements — Product, Article, Recipe, FAQPage, HowTo, JobPosting, LocalBusiness, and 16 more.

Free. No signup. Rate-limited to 30 checks per IP per hour. URL fetches are server-side and SSRF-guarded.

What this catches

Four ways structured data quietly fails

Product missing offers. Without an Offer (with price + priceCurrency), Google can't show the price pill on the SERP card. The most common cause: developers put the Product on the page but the Offer object never made it into the JSON-LD block.

Article missing datePublished. No date pill in SERPs, lower freshness signal. Always emit ISO 8601 with a timezone (e.g. 2026-05-11T08:00:00Z).

AggregateRating without count. Google rejects star ratings that don't carry either ratingCount or reviewCount. The product page may have hundreds of real reviews, but the SERP shows no stars because the count wasn't emitted. The checker treats this as a required-field miss, not a recommended one.

BreadcrumbList without itemListElement. No breadcrumb row above the result title. Easy to miss because the JSON parses fine.

FAQ

Common JSON-LD questions

What is a Schema.org / JSON-LD validator?

It parses a JSON-LD structured-data block (or extracts every <script type="application/ld+json"> on a page), identifies the schema type of each node, and checks the fields against Google's rich-result requirements. A "valid" block in this checker means Google's rich-results test will accept it — not just that the JSON parses.

Why doesn't Google show rich results for my Product page?

The three most common causes: (1) the Product is missing offers.price + offers.priceCurrency (without these, no price pill in SERPs); (2) the page has no image on the Product (no thumbnail in rich results); (3) the Product has aggregateRating set but missing ratingCount OR reviewCount — Google rejects the rating without one of those counts. This checker flags all three explicitly.

Do I need both @context and @type?

Yes. Without "@context": "https://schema.org" Google won't recognize the schema vocabulary; without "@type" it doesn't know what kind of thing the JSON describes. Both are mandatory at the top level of every JSON-LD block.

Can a single page have multiple JSON-LD blocks?

Yes — and that's often the recommended pattern. A blog post commonly has Article + BreadcrumbList + (optionally) FAQPage as separate blocks. The validator extracts and checks every block on the page independently.

What's the difference between required and recommended fields?

Required = Google's rich-result generator will REJECT the block without it; the page becomes ineligible for the rich snippet entirely. Recommended = the rich result may render but with degraded features (no thumbnail, no review stars, no date line). For high-traffic pages, populate the recommended fields too.

What schema types does this validator support?

Article, NewsArticle, BlogPosting, Product, Offer, Recipe, Event, LocalBusiness, Organization, BreadcrumbList, FAQPage, HowTo, VideoObject, Person, WebSite, SoftwareApplication, Course, JobPosting, Review, AggregateRating, QAPage, ImageObject, Book — and any nested types (e.g. Offer inside Product, AggregateRating inside SoftwareApplication) recurse correctly.

Want the full audit, not just structured data?

A Seoxpert scan checks JSON-LD plus 230+ other signals across SEO, security, performance, AI search readiness, and EU privacy compliance. Free first scan.

Open Graph preview · robots.txt Checker · Sitemap Checker · Full coverage