Schema Markup Checker
Detect and validate the structured data (JSON-LD and microdata) on any URL. See a full breakdown of every entity and its properties, a complete inventory of every schema @type (including nested types like Offer, Review, AggregateRating and PostalAddress), exactly which Google rich results your markup is eligible for, validation errors and missing recommended properties, plus a one-click export of your raw JSON-LD — and recommendations for the schema that unlocks more rich results.
About this tool
Detect and validate the structured data (JSON-LD and microdata) on any URL. See a full breakdown of every entity and its properties, a complete inventory of every schema @type (including nested types like Offer, Review, AggregateRating and PostalAddress), exactly which Google rich results your markup is eligible for, validation errors and missing recommended properties, plus a one-click export of your raw JSON-LD — and recommendations for the schema that unlocks more rich results.
How it works
What we check
- JSON-LD blocks — Counts every <script type="application/ld+json"> block on the page and reads its contents. JSON-LD is Google's recommended format because it lives in a separate script and doesn't tangle with your visible HTML.
- Microdata items — Detects inline microdata — itemscope, itemtype and itemprop attributes attached directly to HTML elements. It's an older but still valid format; many themes and ecommerce platforms still output it.
- Schema types present — Lists the schema.org types found on the page (e.g. Organization, WebSite, WebPage, Product, Article, FAQPage, Review, BreadcrumbList) so you can confirm the page is describing itself with the right vocabulary for its content.
- Key foundational types — Checks specifically for the building blocks most sites should have: Organization (or LocalBusiness), WebSite, WebPage and BreadcrumbList. Missing any of these is flagged because they anchor your entity and navigation signals.
- Completeness score — Scores how complete and well-formed the detected markup is, factoring in which foundational types are present. A low score usually means thin markup — a single type with the bare-minimum required properties.
- Rich-result recommendations — Surfaces specific schema types worth adding for the page's apparent content — for example FAQPage on a Q&A page, Product with offers and reviews on a product page, or LocalBusiness with address and hours on a contact page.
Common issues we catch
- No structured data at all — Many pages ship with zero schema. They can still rank, but they forfeit rich results — review stars, FAQ accordions, breadcrumb trails, product price and availability — that make a result bigger and more clickable. Adding even basic Organization and WebSite JSON-LD is a quick win.
- Schema present but missing required properties — A Product block with no price, or a Review with no rating value, is incomplete: Google won't show the rich result because the required fields aren't there. The markup exists but earns nothing. Fill in every required property for each type.
- JSON-LD injected by JavaScript — Tag managers and frameworks sometimes inject the JSON-LD script after page load. It appears in the rendered DOM but may be absent from the initial HTML a crawler reads first. Server-render the markup or confirm it's in view-source, not just dev tools.
- Schema describing content that isn't on the page — Marking up reviews, FAQs or prices that a user can't actually see on the page violates Google's structured-data guidelines and can trigger a manual action. The visible content and the markup must match.
- Conflicting duplicate blocks — Two JSON-LD scripts each declaring a different Organization (one from the theme, one from an SEO plugin) send contradictory signals about your business identity. Consolidate to a single, authoritative block per entity type.
- Invalid JSON syntax — A trailing comma or an unescaped quote breaks the entire JSON-LD block — search engines silently skip it, so the markup contributes nothing. Because it fails silently, it looks present in your code but is functionally absent.
- Broken @id and entity references — Advanced markup links entities with @id (e.g. a WebPage referencing its parent WebSite). A typo'd or dangling @id breaks the relationship graph, so the entities don't connect into the coherent picture rich results rely on.
Where this matters
- Google Search — Reads structured data to power rich results — review stars, FAQ drop-downs, breadcrumb paths, product price/availability, event dates and more. JSON-LD is its recommended and best-supported format.
- schema.org vocabulary — The shared, open vocabulary (Organization, Product, Article, LocalBusiness, FAQPage, etc.) that all major search engines agreed on. This tool checks your markup against these standard types so it's understood everywhere.
- Bing — Also consumes schema.org structured data for enhanced results and to better understand page entities. Clean, valid markup helps you across search engines, not just Google.
- WordPress, Shopify & ecommerce platforms — SEO plugins (Yoast, Rank Math) and ecommerce themes auto-generate JSON-LD for products, articles and breadcrumbs. They often produce partial or duplicate blocks, which this checker surfaces so you know what actually shipped.
- AI assistants & answer engines — Structured data helps AI search and answer engines extract facts about your business, products and content reliably, improving the odds you're cited accurately when they summarize a query.
Frequently asked questions
What is schema markup?
What's the difference between JSON-LD and microdata?
Which schema types should I add first?
Will schema markup improve my rankings?
Why aren't my rich results showing even though I have schema?
How long until my rich results appear in Google?
Can I have too much schema?
Does my schema need to be in the initial HTML?
This is one of several free SEO tools from Custom Web Audits. For a complete, prioritized analysis of your whole website, run a full audit.