Test your structured data
fetch.php if uploaded next to this page, otherwise a public CORS proxy. If a fetch is blocked, open the page → View Source → copy & paste below.Test the structured data on any web page in seconds. Paste your JSON-LD, drop in a full HTML source, upload a file or fetch a live URL — and get a plain-English list of every error and warning, plus the rich results your markup qualifies for. No sign-up, no upload limit, nothing leaves your browser.
fetch.php if uploaded next to this page, otherwise a public CORS proxy. If a fetch is blocked, open the page → View Source → copy & paste below.That message is the single most common reason people go looking for another structured data checker. Schema.org’s official validator uploads your entire document to its server and refuses anything above 2.5 MB — which rules out most modern e-commerce category pages, long blog archives and any site with heavy inline CSS or JavaScript.
This checker never uploads anything. It parses the document inside your browser, so page weight is irrelevant. In our own testing a 3.2 MB page was extracted and checked in 24 milliseconds. If your page is too big for the official validator, paste it here instead — or paste only the JSON-LD block and skip the page weight entirely.
No technical background needed. If you can copy and paste, you can audit your structured data.
Enter a page URL, paste your JSON-LD, paste the full HTML source, or upload an .html / .json file.
Press Check schema. Every ld+json block is extracted, @graph nodes are unwrapped, and each entity is tested separately.
Errors block rich results, warnings weaken them. Each message names the exact property and explains the fix in plain English.
Correct the markup — or rebuild it in the schema generator — then run the check again until the score is clean.
Most free schema validators either cap your file size, demand a public URL, or return raw parser output nobody can act on. This one was built to fix all three.
Parsing runs client-side, so a 3 MB page checks as fast as a 30 KB one. Nothing is uploaded to a server.
Staging sites, password-protected pages and local builds all work — paste the source instead of a URL. No public URL required.
Each type is checked against Google’s required and recommended properties, not just generic schema.org syntax.
Every message names the property path and tells you what to change — no cryptic parser dumps to decode.
Valid types show which Google feature they unlock: review stars, breadcrumbs, job postings, events, videos and more.
No account, no credit card, no data collection. The only outbound request is the optional live-URL fetch.
Passing a JSON syntax check is not the same as being eligible for rich results. These are the checks that run on every entity found on your page.
| Check | Level | Why it matters |
|---|---|---|
| Invalid JSON, trailing commas, stray control characters | Error | Browsers forgive these; Google’s parser does not. The block is ignored entirely. |
Missing @context or @type | Error | Without them the block is not structured data at all. |
| Misspelled or non-existent schema.org type | Warning | A typo like Artcile silently kills the whole entity. |
| Missing required properties for the type | Error | Google will not generate a rich result without them. |
| Missing recommended properties | Warning | The result still works but shows fewer features and less detail. |
| Dates that are not ISO 8601 | Error | 24/07/2026 is unreadable to a parser; it needs 2026-07-24. |
| Prices with currency symbols or separators | Error | ₹1,299 must be 1299 with priceCurrency set separately. |
| Ratings outside their own min/max, or zero review counts | Error | A 6.4 out of 5, or an aggregate rating with no reviews, gets the markup rejected. |
| Relative URLs and leftover placeholder text | Warning | images/photo.jpg or example.com in live markup means the entity cannot be resolved. |
Empty strings, empty arrays, duplicate @id | Warning | Noise that confuses entity consolidation across your site. |
| Type-specific logic rules | Error | Online events need a VirtualLocation; job postings need a location or TELECOMMUTE; search boxes need {search_term_string}. |
Full requirement profiles for the types below, plus generic syntax and value checking for any other schema.org type it encounters.
LocalBusiness covers 75+ subtypes — Store, Restaurant, Dentist, Attorney, Electrician, Plumber, AutoRepair, Hotel, Gym, Pharmacy, RealEstateAgent and more — each inheriting the same requirement profile.
Structured data is how you tell a search engine what a page means rather than what it merely says. Marked up correctly, a product page can carry its price, stock status and star rating into the search result; a recipe can show its cooking time; a job listing can appear in Google Jobs. Marked up incorrectly, none of that happens — and Search Console often reports the problem weeks after the damage is done.
That gap is what a schema markup checker closes. Running your markup through a validator before it ships turns a slow feedback loop into an instant one. It also catches the failures that are invisible from the front end: a template that emits price: "₹1,299", a plugin writing dates in day-first format, a CMS injecting a second conflicting Organization block, or a trailing comma that a browser happily ignores while Google’s parser throws the entire block away.
Use this structured data validator at three points: when you first add markup to a template, after any theme or plugin update, and whenever Search Console flags an item. Because it accepts pasted HTML as well as URLs, you can check a staging build before it ever reaches production — something a URL-only tool simply cannot do.
Once your markup is clean here, confirm eligibility with Google’s own Rich Results Test and watch the Enhancements reports in Search Console. This tool tells you whether your markup is correct; only Google decides whether to display a rich result, and that also depends on content quality and query intent.
Our free schema generator produces valid JSON-LD for 30+ types with every Google-required field marked.
It is a tool that reads the structured data on a page and reports whether it meets schema.org syntax rules and search engine requirements. It finds missing required properties, malformed values and typos that stop your markup from producing rich results.
The official validator uploads your whole document to its server and rejects anything over 2.5 MB. This checker parses the document locally in your browser, so there is no size limit at all. You can also paste just the JSON-LD block instead of the full page.
It is an independent tool that checks your markup against Google’s published required and recommended properties for each type. It is not operated by Google. For final confirmation of a specific URL, pair it with Google’s Rich Results Test and Search Console.
Yes. Paste the JSON-LD or the page’s full HTML source, or upload a file. This lets you check staging sites, password-protected pages, local builds and drafts — none of which a URL-only validator can reach.
Validation covers JSON-LD, the format Google recommends. When you paste an HTML page the tool also detects and reports how many Microdata and RDFa elements are present, so you know they exist, but it does not validate those formats property by property. If you are still on Microdata, migrating to JSON-LD is the recommended fix.
In practice: prices written with a currency symbol or thousands separator, dates in dd/mm/yyyy instead of ISO 8601, a misspelled @type, missing image on Product, aggregate ratings with a review count of zero, relative image URLs, and duplicate conflicting Organization blocks from a theme plus an SEO plugin.
Check every template once when markup is first added, again after any CMS, theme or plugin update, and whenever Search Console reports a new issue. Templated markup fails in bulk, so one broken template can affect thousands of URLs at once.
Valid markup makes a page eligible for rich results — it does not guarantee them. Google still weighs content quality, policy compliance and query intent. Errors, however, do guarantee that no rich result appears, so clearing them is a necessary first step.
Structured data is not a direct ranking factor. Its value is indirect but real: richer results occupy more space and attract more clicks, and clearer entity signals help search engines and AI answer engines understand and cite your content.
No. Paste your code or a URL and read the report — every message names the property and describes the fix in plain language. If you would rather not edit JSON by hand, generate a clean replacement block with the schema generator and paste it over the old one.
This tool checks one page or one code block at a time, which is the right level for debugging a template. For site-wide monitoring, check one representative URL per template type here, then use Search Console’s Enhancements reports to track issues across all indexed pages.
No. Checking is entirely client-side JavaScript. The only time data leaves your browser is if you use the optional “Check a live URL” box, which requests that public URL through a proxy.