Schema & JSON-LD Validator
Enter any URL to validate the structured data that actually rendered. The tool checks JSON syntax, required and recommended properties for each type, date formats and nested entities.
Short answer
Schema markup is a block of JSON-LD in your page, invisible to visitors, that states what the page is in a form machines read literally. Validating it catches four kinds of failure, all of which are silent: JSON that does not parse, a missing required property that leaves the block ineligible for a rich result, a date in a format schema.org does not accept, and a nested entity that is malformed. Structured data is not a ranking factor. What it does is make you eligible for enhanced results and give AI systems an unambiguous statement of what the page contains.
What structured data does, and why it fails quietly
Search engines use structured data to decide whether you are eligible for the results that carry a star rating, a price, a recipe time or an event date. Assistants use it to answer questions without having to infer meaning from your layout.
The reason it needs a validator is that every way it breaks is invisible from the page itself:
- Unparseable JSON. One missing comma and the block is not invalid, it is absent. Nothing reads it at all.
- Missing required property. The block parses and validates as JSON, and is ineligible for the enhancement it was written for.
- Rewritten on the way out. A plugin or tag manager injects its own version over yours, so what ships is not what you wrote.
- Contradicting itself. Two blocks on one page naming different publishers, or a price in the markup that differs from the price on the page.
Validate the live URL
This tool fetches the rendered page rather than checking a snippet you paste in, because the gap between the two is where most structured data problems live.
Required properties by type
Every type has a small set of properties without which Google will not generate a result. These are the ones worth knowing by heart, because a missing one is the most common reason correct-looking markup does nothing.
| Type | Required | Worth adding |
|---|---|---|
| Product | name, offers (with price and priceCurrency) | image, description, brand, sku, aggregateRating from real reviews |
| Article, BlogPosting | headline | author with a url, datePublished, dateModified, image, publisher |
| LocalBusiness | name, address | telephone, openingHoursSpecification, geo, priceRange, url |
| Event | name, startDate, location | endDate, offers, organizer, eventAttendanceMode, eventStatus |
| FAQPage | mainEntity with name and acceptedAnswer | Nothing else. Keep answers to plain text or the few permitted tags |
| BreadcrumbList | itemListElement with position and name | item URL on every level except the last |
| Recipe | name, image, recipeIngredient, recipeInstructions | cookTime, prepTime, nutrition, aggregateRating |
| VideoObject | name, description, thumbnailUrl, uploadDate | duration, contentUrl, embedUrl |
If you are writing markup rather than auditing it, the schema generators produce blocks with the required properties already in place.
How to validate structured data
Six steps, in dependency order. Nothing below step two matters until the JSON parses.
- 01
Validate the live URL, not the snippet you wrote
Plugins, themes and tag managers all rewrite structured data on the way out. What matters is the block that reached the browser, which is frequently not the one you pasted in.
- 02
Fix syntax errors before anything else
A single missing comma or unescaped quote makes the whole block unparseable, and an unparseable block is invisible rather than invalid. No other finding means anything until the JSON parses.
- 03
Add the required properties for your type
Each type has a small set Google will not generate a rich result without: a Product needs a name and an offer, an Article needs a headline, an Event needs a name and a startDate. Missing one leaves the markup valid and ineligible.
- 04
Check dates are ISO 8601
datePublished, dateModified, startDate and endDate all need YYYY-MM-DD, optionally with a time and timezone. A date written as 14/03/2026 is ambiguous and gets rejected.
- 05
Confirm the markup matches what is on the page
Structured data must describe content a visitor can actually see. A price in the markup that differs from the price on the page is a policy violation, not a technicality, and it is the most common cause of manual actions against structured data.
- 06
Confirm eligibility in Google's own tools
This validator tells you whether the markup is correct. Google's Rich Results Test tells you whether Google will use it, and the Search Console enhancement reports tell you what it is doing with it at scale. Use all three.
Valid is not the same as eligible
Correct markup earns you eligibility. It does not earn you the result. Three separate things have to go your way, and only the first is under your control.
The markup has to be correct
That is what this tool checks: syntax, required properties, formats, nesting. It is a prerequisite and nothing more.
Google has to support the enhancement
Google has narrowed what it renders over time. FAQ results were cut back sharply in 2023 and now appear mainly for government and health sites. HowTo results were retired from desktop and mobile. The markup remains valid schema.org; there is simply no longer a result attached to it.
Google has to choose to show it
Even for supported types, enhancements are decided per query. New sites and sites with little history often see nothing for weeks after adding perfect markup, which is a trust question rather than a technical one.
The rule that gets sites penalised
Structured data must describe what is visibly on the page. Marking up a price you do not show, reviews you did not receive, or FAQ answers that are not in the copy risks a manual action against every rich result on the domain, not just that page.
What this tool validates
JSON syntax
Malformed JSON that stops the block being parsed at all
Required properties
The fields each type needs before a rich result is possible
Recommended properties
Fields that improve what the result shows
Date formats
Whether datePublished, dateModified and startDate are ISO 8601
Nested entities
FAQ questions, breadcrumb items and offer objects
@context and @type
A schema.org context and a type that actually exists
Use this alongside Google's Rich Results Test, not instead of it
Frequently asked questions
What is JSON-LD structured data?
JSON-LD is the format Google recommends for structured data: a script block in your HTML that states what the page is about in a form machines read literally. Not "this page mentions a number that might be a price" but "this is a Product, it costs 39.95, it is in stock". It sits alongside your content rather than wrapping it, which is why it is easier to maintain than microdata.
Why does schema markup need validating?
Because broken markup fails silently. Nothing appears in your CMS, nothing on the page looks wrong, and no one tells you. A single missing comma makes the block unparseable and therefore invisible. A missing required property leaves it parseable but ineligible for the rich result it was written to earn. Most people find out months later by noticing something that never appeared.
Does schema markup improve rankings?
Not directly. Google has been consistent that structured data is not a ranking factor. What it does is make you eligible for rich results, which change how much space your listing takes and what it shows, and that affects click-through. It also gives AI systems an unambiguous statement of what the page contains rather than leaving them to infer it from your layout.
What is the difference between required and recommended properties?
Required properties are the ones Google needs before it will consider generating a rich result. Recommended properties improve what that result shows. A Product without a name cannot produce a result at all; a Product without an image can, but a plainer one. This tool reports both, separately, because the two need different levels of urgency.
Why is my markup valid but no rich result appears?
Valid markup makes you eligible, not entitled. Google decides per query whether to show an enhancement, and it withholds them from sites it does not trust yet, from queries where it judges them unhelpful, and from whole categories it has scaled back. FAQ results are the clearest example: since 2023 they are shown mainly for government and health sites, regardless of how correct your markup is.
Which schema types are worth adding?
Start with the type that matches what the page actually is: Product on a product page, Article or BlogPosting on a post, LocalBusiness on a location page, Event on an event, BreadcrumbList on anything deep in a hierarchy. Adding types that do not describe the page is worse than adding nothing, because it invites a manual action.
Can one page have several schema blocks?
Yes, and most well marked-up pages do. A blog post commonly carries Article, BreadcrumbList and Organization. They can be separate script blocks or one @graph array. What you must not do is contradict yourself across them, such as two different publishers or two different canonical URLs.
Does structured data have to match the visible page?
Yes, and this is a policy rather than a guideline. Google's structured data guidelines require the markup to describe content visible to users on that page. Marking up a price you do not display, reviews you do not show, or FAQ answers that are not on the page risks a manual action against the whole site's rich results.
Can I mark up reviews I wrote about my own business?
No. Google's guidelines specifically disallow self-serving review markup: a business cannot supply a rating for itself or for its own products in AggregateRating. Ratings must come from genuine third-party reviews. This is a frequent cause of enforcement and one of the easiest violations to commit by accident.
What date format does schema require?
ISO 8601. A plain date is YYYY-MM-DD, and a date with a time is YYYY-MM-DDThh:mm:ss with an offset such as +01:00 or Z. Local formats like 14/03/2026 are ambiguous between British and American reading and are rejected. Timezone offsets matter most on Event markup, where a missing one shifts your event by hours for some visitors.
Is JSON-LD better than microdata?
For most sites, yes. Google explicitly recommends JSON-LD, and it sits in a single block rather than being threaded through your HTML attributes, so a template change cannot accidentally break it. Microdata and RDFa are still supported and still valid; there is no reason to migrate working microdata purely for its own sake.
What is the difference between this and Google's Rich Results Test?
They answer different questions. This tool checks whether the markup is well-formed and complete against the schema.org definitions, including types Google does not support at all. The Rich Results Test checks the narrower question of whether Google will generate one of its own enhancements. Run this first to fix the markup, then that one to confirm eligibility.
Other on-page SEO tools
Canonical Tag Checker
Validate canonical tags for self-referencing, protocol mismatches, trailing slash conflicts, noindex conflicts, and og:url consistency.
Use toolHreflang Validator
Validate hreflang tags for international SEO: self-referencing, return tags, x-default, language codes, and duplicate detection.
Use toolMeta Tag Checker
Check title tags, meta descriptions, Open Graph tags, Twitter cards, canonical URLs, robots directives, and viewport settings.
Use toolMeta Tags Generator
Write the title, description, and social share tags every page needs. Live character counts plus previews of how it will look in Google and on social.
Use toolKeyword Density Checker
See which words and phrases your copy actually leans on. Single word, two word and three word counts with density and first-mention position.
Use toolValidate structured data across your entire site
Schema breaks by template, so one broken product page usually means every product page. CrawlRaven validates structured data on every page in a single crawl and groups the failures by the template that produced them.