What the schema markup validator checks
Paste a JSON-LD object or a whole HTML page. Every script type="application/ld+json" block is extracted and parsed, including arrays and @graph wrappers, and each node is checked on its own. Nothing is sent to a server: it all runs in your browser.
Errors are what breaks the markup: invalid JSON, a missing @context or a missing @type. Warnings point to a @context that is not schema.org, and to recommended fields missing for common types such as Organization, Product, Article, Event, FAQPage, BreadcrumbList and Review.
Valid is not the same as eligible
A clean result means the structured data is well formed and has the fields a type usually needs. Whether Google shows a rich result also depends on its own requirements for that feature, the content of the page and its policies. Run the page through Google's Rich Results Test before counting on one.
Frequently asked questions
JSON-LD, Microdata or RDFa: which should I use?
JSON-LD. Google recommends it, it sits in one script block instead of being spread through your HTML, and it does not break when the markup changes. This validator reads JSON-LD only.
Why is my structured data valid but no rich result appears?
Google decides per query whether to show a rich result, and some features have extra requirements. FAQ rich results, for example, are now limited to authoritative government and health sites. Valid markup makes a page eligible, it does not guarantee a display.
Do I need @context on every node?
No. In a @graph, the @context on the wrapper applies to every node inside it. A standalone object needs its own.