Greadme Schema Validator: scan a live URL or paste your JSON-LD and get every error with a fix. Free, no account needed.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
In short: enter the page URL above (or paste the JSON-LD block), press Validate, and read three things in the report: whether the JSON parses, whether every property exists on that schema.org type, and which properties Google requires for a rich result are missing. Free, no account, unlimited. A URL scan takes a few seconds.
Product, an article carries Article. The validator fetches the page exactly as your server serves it, so it also sees blocks added by a plugin, a theme or a tag manager that are not in your source files.<script type="application/ld+json"> block. Use this before the markup is live, and for output from a generator or a language model before you trust it.The score is the share of checks the page passes across every JSON-LD block it carries. A page with one clean Organization block and one Product block missing its offers scores in the middle: valid, but not eligible for the product rich result it is clearly trying to earn.
FAQPage no longer earns a rich result), Microdata detected alongside JSON-LD, a block with no Google rich result behind it.Google states that a page must “include all the required properties for an object to be eligible for appearance in Google Search with enhanced display”. The required and recommended lists differ by type and change over time, so the report says which side of that line each missing field is on. That is the difference between a real blocker and a nice-to-have.
@id referencesReferencing another node by @id is correct JSON-LD — as long as that node is defined somewhere on the same page. A reference to an @id that exists nowhere reads to Search as an empty object, and everything the type required behind it goes missing. These are reported on their own because the fix is different: define the node, do not add the missing fields to the reference.
If you want to see what the validator sees, or check a page by hand:
Ctrl+U or Cmd+Option+U). Search for application/ld+json. Each match is one block; a page often has two or three.<script> tags) and paste it into the Paste tab above to validate that block alone.Google recommends JSON-LD over Microdata and RDFa (“In general, Google recommends using JSON-LD for structured data if your site's setup allows it”), and the block may sit in the <head> or the <body>.
Structured data fails in three different places, and a validator that only checks the first one will tell you a broken page is fine. This runs all three.
@context and @type, properties that exist on that type, and the nesting each type expects.You get the score, every issue with the field name and a suggested fix, and a Copy As Prompt button that hands the whole report to your AI coding agent.
Generic validators check that a property exists. These 21 types get their own rules — the required fields, the value formats and the nesting each one actually needs:
Article | BreadcrumbList | Course |
Dataset | DiscussionForumPosting | Event |
FAQPage | HowTo | ItemList |
LocalBusiness | Movie | Organization |
Product | ProductGroup | ProfilePage |
QAPage | Recipe | Review |
VacationRental | VideoObject | WebPage |
Anything else is still parsed and checked against schema.org; it simply does not get a type-specific rule set.
Three tools, three questions. Use the one that answers yours — they are not substitutes.
| Tool | Answers | Does not tell you |
|---|---|---|
| Greadme Schema Validator (this page) | Parse errors with line numbers, schema.org validity for any type, Google's required and recommended properties per type, unresolved @id references, a score, a fix per issue. URL or paste. Free, no account. | Whether Google will actually show the rich result (nothing can). |
| Google Rich Results Test | Whether Google detects a supported rich result type on the page, with Google's own errors and warnings, and a preview for some types. Supports JSON-LD, RDFa and Microdata. | Anything about markup outside the rich result types it supports; it is not a general schema.org validator. |
| Schema Markup Validator (schema.org) | Whether the markup is valid schema.org vocabulary, for any type. | What Google requires for a rich result, or why a result is not showing. |
A sensible order: validate here first (it catches the parse and requirement errors with a fix), then confirm with Google's test that the rich result type is detected.
Markup that earned a rich result two years ago can quietly stop qualifying when Google moves a property from recommended to required. Fix: add the property the report names; the issue text says which list it is on and what shape the value takes.
mainentity is not mainEntity. JSON-LD property names are case-sensitive and a miscased one is silently ignored — the block validates as well-formed JSON and the property simply does not exist as far as Search is concerned. Fix: copy the property name from the report, which uses schema.org's spelling.
Google's structured data policies require markup to be a true representation of the page content and forbid marking up content that is not visible to readers. A review count in the markup with no reviews on the page is a policy problem, not a formatting one. Fix: remove the claim from the markup, or put the content on the page.
Reported separately from ordinary missing fields, because the fix is different: define the node the @id points to — usually an Organization or WebSite block that was meant to be on every page and is missing from this one.
A theme adds an Organization, a plugin adds another with a different name and logo. Search picks one, and not necessarily yours. Fix: keep one, or link them with the same @id.
Use this page: both URL scanning and pasting are free and unlimited with no account. Signing in only adds the ability to save a report and reopen it later.
Yes — paste the JSON-LD block into the Paste tab. Once the page is live, scan the URL as well: what the server actually sends can differ from what you wrote, especially when a plugin or a tag manager adds blocks of its own.
No. Valid, policy-compliant markup makes a page eligible. Whether Google shows a rich result is its own decision, based on the query, the page quality and the result type. A validator can tell you what disqualifies you; nothing can promise the feature.
Not for Google Search. Google restricted FAQ rich results to well-known, authoritative government and health sites in September 2023 and has since removed the feature altogether, stating that site owners do not need to implement or maintain FAQPage markup for search visibility. The validator still checks FAQPage markup and reports its deprecation status, so you know what the block is and is not doing.
Google recommends JSON-LD, and it is the format this validator is built around. Microdata on a scanned page is detected and reported so you know it is there, rather than silently ignored.
Not with this tool — it validates one page or one block at a time. Greadme Page Audit includes schema validation as part of a full 190-check audit of a page, and Greadme Site Audit crawls every page on a site.
Written by the Greadme team, who build the validator. Last updated 2026-09-03; the type rules are re-checked against schema.org and Google's structured data documentation whenever either changes.
Structured data is one of six categories Greadme Page Audit scores — alongside performance, SEO, accessibility, best practices and security — with the specific elements responsible for each issue. Free accounts get audits every month, and Greadme AI Access Checker stays free and unlimited like this page.
Run Greadme Page Audit