Tool
What the Structured Data Validator does
Structured Data Validator: checks Verdict and JSON-LD blocks from Paste page HTML or a JSON-LD block. Example: the sample loaded on the page gives verdict No structured data found.
Give the Structured Data Validator your Paste page HTML or a JSON-LD block and it works out Verdict and JSON-LD blocks. Change any input and the output follows immediately.
Seeing the snippet the way a searcher will is worth more than counting characters. That is usually what brings writers trying to earn the click here.
The markup you paste is analysed locally, so unpublished pages stay unpublished.
The field table, the method and a worked example are documented after the tool for anyone who wants to check the working.
What do the Structured Data Validator fields mean?
The Structured Data Validator uses 1 input. None of the boxes start empty. The page loads with a worked set of values you can edit or replace.
| Field | What to enter | Default |
|---|---|---|
| Paste page HTML or a JSON-LD block | paste or type any amount of text | <script type="application/ld+json"> {"@context":"https://schema.org","@type":"Article","headline":"Example"} </script> |
How does the Structured Data Validator work?
Each output is derived from the inputs above in a single pass; there is no hidden state carried between runs, so the same inputs always give the same check.
Inputs are validated before anything is computed, so a bad entry is reported rather than quietly producing a wrong answer.
Worked example
These are the values the Structured Data Validator loads by default, and the result it produces from them. Open the tool above and you will find precisely these figures already in place.
| Paste page HTML or a JSON-LD block | <script type="application/ld+json"> {"@context":"https://… |
|---|
| Verdict | No structured data found |
|---|
Valid JSON-LD is necessary. It is not sufficient.
This tool checks two things: that the JSON parses, and that Google’s documented required properties for common types are present. Passing both is a meaningfully lower bar than actually qualifying for a rich result.
Worth knowing
- Google layers additional, non-structural requirements on top of the schema fields themselves. The marked-up content has to genuinely match what is visible on the page, and several types carry specific content policies (self-authored reviews being ineligible for Review markup is one concrete example) that no syntax checker can verify.
- Multiple structured-data blocks on one page, or a @graph array combining several types, are both valid. A real page frequently carries more than one type at once, which is why this checker walks into arrays and @graph structures rather than only inspecting the first top-level object.
- A required property present with an empty or placeholder value (an image field pointing at a 1×1 tracking pixel, for instance) passes this kind of automated check while still failing Google’s actual quality bar. Automated validation catches missing fields, not bad ones.
- For a final check before shipping structured data to production, run the live URL through Google’s own Rich Results Test: it evaluates against Google’s current, evolving eligibility rules in a way a static field-presence check cannot keep up with.
How to use it
- Paste your content into Paste page HTML or a JSON-LD block.
- Results update continuously rather than on submit.
- Check Verdict and JSON-LD blocks on the right.
- Use Copy Link if you want the same setup again later, or Print for a paper copy.
What this tool does not do
- This checks what is visible in the page you provide; it cannot see server headers or your live rankings.
- Search engines weigh hundreds of signals. No single on-page check predicts position.
- It will not warn you that a different tool would suit your question better.
Frequently asked questions
One thing: Paste page HTML or a JSON-LD block. Each field is pre-filled with a sensible default, so the form is usable immediately, without filling anything in first.
With the values loaded when the page opens, verdict comes out as No structured data found. Nudge one field at a time to see which one the answer is most sensitive to.
No. Your browser is doing the computing, so we could not see the values even if we wanted to.
Free for any use, personal or commercial.
It is exact within the stated method. Anything the method does not model is simply out of scope.