Schema Markup Checker: Validate JSON-LD Structured Data
Find the structured data on any page, flag invalid JSON-LD and missing required properties for Product, LocalBusiness, Article, breadcrumbs and more.
Updated
What the schema checker does
It fetches the page, finds every block of structured data (JSON-LD scripts, microdata itemscope elements and RDFa typeof attributes), and for each item lists its type and properties. Then it checks:
- Broken JSON-LD. One stray comma or unescaped quote makes a whole block invalid, and search engines skip all of it. The checker shows the parser's error and the start of the block.
- Required properties, from Google's structured data documentation, for the types most sites use:
| Type | Required by Google | Also checked (recommended) |
|---|---|---|
| Organization | Nothing | name, url, logo |
| LocalBusiness (and subtypes) | name, address | telephone, url, opening hours, geo, full address |
| Product | name, plus offers, review or aggregateRating | offers.price and priceCurrency, image, description |
| Article, BlogPosting, NewsArticle | Nothing | headline, image, datePublished, dateModified, author.name |
| BreadcrumbList | itemListElement (2+), each with position, name and item (item optional on the last) | None |
| SoftwareApplication | name, offers.price, aggregateRating or review | applicationCategory, operatingSystem |
| FAQPage, HowTo | Valid structure (questions with answers; steps) | Noted as retired from Google's rich results |
How to read the results
- Fail: invalid JSON, or a property Google requires is missing. The item cannot earn its rich result until it is fixed.
- Warning: a recommended property is missing. The markup is valid, but adding it gives Google and answer engines more to work with.
- Note: context, such as a type Google no longer shows as a rich result, or one this tool lists but does not check in depth.
Rich results Google has retired
Some markup still sold as an SEO win no longer changes what Google shows:
- FAQ: limited to government and health sites in August 2023, then gone from Google Search from 7 May 2026, per Google's FAQPage documentation.
- HowTo: removed in September 2023 (same 2023 announcement).
- Book actions, course info, claim review, estimated salary, learning video, special announcement and vehicle listing: dropped in Google's June 2025 simplification.
You do not need to remove this markup; Google ignores what it does not use. But do not expect it to change your listing. Before you publish, confirm eligibility with Google's Rich Results Test, and run the SEO and AEO checker for the rest of the page.
Common questions
Does Google still show FAQ rich results?
No. Google limited FAQ rich results to well-known government and health sites in August 2023, and its FAQPage documentation says they stopped appearing in Google Search from 7 May 2026. FAQPage markup is still valid schema.org and does no harm, but it no longer earns a special result.
What happened to HowTo rich results?
Google removed them from mobile in August 2023 and from desktop on 13 September 2023, which ended the result type. HowTo markup is still valid; it just no longer changes how the page looks in Google.
Does structured data improve rankings?
Not directly. Google uses it to understand a page and to qualify it for rich results, such as product prices and ratings, breadcrumbs and business details, which can raise clicks. It also gives answer engines clean facts about your business and products.
JSON-LD, microdata or RDFa: which should I use?
Google supports all three and recommends JSON-LD, because it sits in one script block, separate from the visible HTML, and is easiest to maintain. This checker lists all three and checks JSON-LD and microdata in depth.
How is this different from Google's Rich Results Test?
Google's test is the final word on whether a page qualifies for a rich result, and it renders JavaScript. This checker is a quick first pass: it reads the HTML your server sends, lists every type it finds, and flags broken JSON and missing properties in plain words. Markup added only by JavaScript will not show here.