Schema Markup Validator
Validate JSON-LD, Microdata, or paste a URL to extract and check schema markup against Schema.org + Google Rich Results rules.
Why Your Schema Markup Keeps Failing Google's Rich Results Test
You spent hours adding structured data to your pages. You followed a tutorial, copied the JSON-LD template, and deployed it. Then you opened Google Search Console and found zero rich results — or worse, a manual action warning. Sound familiar?
The problem is almost never the schema format itself. It is the invisible layer of business rules that Google enforces on top of the Schema.org specification — rules that no generic copy-paste template can reliably encode for your specific content type. A recipe page and a product page share the same JSON-LD syntax, but carry completely different required-field obligations, enum constraints, and object-shape expectations. One missing property in the wrong place, and the entire markup becomes ineligible for rich snippets.
The Gap Between Schema.org and Google's Actual Requirements
Schema.org is a vocabulary — a dictionary of types and properties maintained by a consortium that includes Google, Microsoft, and Yahoo. It is deliberately permissive. Almost nothing is strictly required at the vocabulary level because Schema.org is designed to serve thousands of use cases across any industry, language, and application domain.
Google's Rich Results specifications are something different. They are a curated subset of Schema.org that Google has decided it can parse, render, and surface as enhanced search features. For each supported type — Article, Product, Recipe, FAQ, Event, JobPosting, LocalBusiness, and about a dozen others — Google publishes its own list of required properties, recommended properties, valid enum values, and structural constraints.
These two sets of rules diverge in ways that trip up even experienced developers. Consider the author field on an Article. Schema.org accepts a string. Google's documentation recommends an Author object — specifically a Person or Organization with a name property — because plain strings give the search engine no graph signal to work with. You can pass Google's parser with a string, but you are leaving rich result quality on the table.
Or consider the datePublished field. Schema.org does not enforce ISO 8601. Google's system does. If you write "datePublished": "March 15, 2024" instead of "2024-03-15", the field is silently dropped. Your schema looks valid to any surface-level linter but is effectively broken where it matters.
The Most Common Schema Errors (and Why They Are Hard to Spot)
After analysing thousands of schema implementations, the same categories of errors appear repeatedly.
Missing required fields. For Products, the name field is obviously required, but offers with both price and priceCurrency is equally non-negotiable for the product price rich result. Many implementations include an offer but omit priceCurrency because it feels redundant — after all, the developer knows the currency is USD. Google's parser does not infer context; it looks for the field or skips the rich result.
Wrong data types. Image fields should be either a valid https:// URL string or an ImageObject — not a number, not an empty string, not a relative path. Recipe durations must use ISO 8601 duration format (PT30M for 30 minutes, P1DT2H for one day and two hours) rather than human-readable text like "30 minutes".
Invalid enum values. Event status, product availability, and employment type fields all accept a defined set of Schema.org enumeration values. Using "InStock" as a bare string instead of "https://schema.org/InStock" may or may not work depending on context. Using "Available" instead of the correct enumeration value will silently fail.
Nested object shape errors. An AggregateRating without both ratingValue and reviewCount (or ratingCount) is invalid. A BreadcrumbList where items lack position integers breaks the breadcrumb rich result entirely. Publisher objects in Article schema should carry a logo property that is itself an ImageObject with a url.
Ambiguous @context declarations. Using http://schema.org instead of https://schema.org, or pointing to a custom context file, can confuse parsers. While Google has historically accepted both HTTP and HTTPS versions of the Schema.org context, best practice is the canonical HTTPS URL.
How a Real-Time Validator Changes Your Workflow
Traditional debugging of schema markup involves a three-step cycle: edit the markup in your CMS or code editor, deploy it to a staging environment, then run it through Google's Rich Results Test and wait for the page to be fetched. If you have a CMS that requires manual deploys, a CDN with aggressive caching, or a staging environment that is not publicly accessible, this cycle can take hours per iteration.
An in-browser validator that runs against a known rule set collapses that cycle to seconds. You paste the raw JSON-LD, click Validate, and immediately see which fields are missing, which values are malformed, and which line numbers in your markup correspond to which problems. You fix the errors in the same textarea, re-validate, and only push to production once the schema is clean.
This is especially valuable when working with dynamically generated schema — the kind that your CMS or e-commerce platform produces automatically. Platforms often generate technically valid JSON-LD that nonetheless violates Google's business rules. A validator lets you catch those systematic errors once and then fix the template, rather than discovering them in search performance data months later.
Line-Level Highlighting: Why It Matters
Most schema errors do not occur at the root level of a JSON object. They occur inside nested structures — inside the offers object, inside the publisher, inside individual Question items in a FAQPage. When a validator tells you "AggregateRating is missing ratingValue," that is helpful. When it also highlights the exact line of the raw JSON where the aggregateRating property begins, you can navigate there immediately in your editor without scanning hundreds of lines of markup.
For large schemas — a Recipe with a dozen ingredients and ten HowToStep instructions, or a Product with multiple offer variants — line-level context is the difference between a five-second fix and a five-minute hunt.
Beyond Validation: Using the Score to Prioritise Work
Not all schema issues are equally urgent. A missing required field is a blocking error — the rich result will not appear until it is resolved. A missing recommended field is a quality warning — the rich result may appear but with reduced information or lower eligibility for enhanced features like price drops or review stars.
A schema quality score that weights errors more heavily than warnings gives you an actionable priority order. Get to 100 by resolving errors first, then work through warnings to maximise rich result completeness. This is particularly important for e-commerce sites managing thousands of product pages, where schema issues often come in systematic patterns that can be fixed with a single template change rather than page-by-page edits.
Structured data is one of the highest-leverage SEO investments available — rich results consistently outperform plain blue links in click-through rate studies. But that leverage only materialises when the schema is actually correct. Validating before you deploy, not after, is the single habit change that separates teams who reliably earn rich results from those who perpetually wonder why their structured data never shows up.