# JSON-LD Validator

> Free JSON-LD and structured data validator. Reads the rendered page, so it sees markup injected by Tag Manager and SEO plugins. Groups every check into four questions: does it parse, will it earn a rich result, are the values in the right format, and do the blocks agree with each other. No login, no ads.

This is the Markdown copy of https://usesuperflow.ai/tools/json-ld-validator, published for AI agents and scripts.

## What it does

Check the structured data on any page against schema.org, against what Google needs for a rich result, and against the other blocks on the same page.

## How to use it

1. **Paste any page URL.** One page at a time. Use the page you care about rather than the home page, because most sites mark up different types on different templates.
2. **We open the page in a browser.** Not a raw fetch. Structured data added by Google Tag Manager or an SEO plugin only exists after JavaScript runs, and that is what a search engine sees too.
3. **Read the four groups, then the fixes.** Every check lands in one of four questions, with a pass, a warning, or a failure. Each issue carries the reason it matters and what to change.

## Call it directly

**HTTP:** `POST https://usesuperflow.ai/api/tools/json-ld-validator`. No API key, no account.

```bash
curl -sS https://usesuperflow.ai/api/tools/json-ld-validator \
  -H 'Content-Type: application/json' \
  -d '{"url":"example.com"}'
```

Returns `{ ok, report: { blockCount, invalidBlockCount, declaredTypes[], eligibility[], categories[], findings[] } }`.

**MCP:** this tool is `validate_json_ld` on Superflow's MCP server at `https://usesuperflow.ai/api/mcp` (Streamable HTTP, no authentication). Setup for every client: https://usesuperflow.ai/tools/mcp

Limits: 10 runs per hour per IP. Allow up to 75 seconds for a response. Results are cached for 24 hours per URL; pass `"refresh": true` to run again.

## Facts

| | |
| --- | --- |
| Cost | Free. No login, no email, no ads. |
| Where it runs | On Superflow's servers. The page is opened in a real browser, so markup injected by JavaScript is included. |
| Stored data | The report is cached for 24 hours against the URL. Nothing else is stored. |
| Rate limit | 10 runs per hour per IP. Cached results do not count against it. |
| Scope | One page per run. Every JSON-LD block on that page is read. Microdata and RDFa are not checked. |
| Checks | Grouped into four questions: syntax (does it parse), eligibility (will it earn a rich result), values (are the formats right), coherence (do the blocks agree). |
| API | POST /api/tools/json-ld-validator with a JSON body of { url }. The response carries the report and the findings. |

## Questions

### How is this different from Google's Rich Results Test?

Google's tool answers one question: will this page get a rich result in Google search. That is worth knowing, and it is the only question it answers. It says nothing about types Google has no rich result for, nothing about markup that is valid but contradicts itself, and nothing about whether an answer engine that is not Google can make sense of the page. This tool checks the same rich-result requirements, then keeps going.

### How is this different from the schema.org validator?

The schema.org validator answers whether your vocabulary is legal: real types, real properties, correct nesting. It will happily pass a page where two blocks describe the same product at two different prices, because both blocks are valid on their own. Validity is the floor. Coherence across the whole page is what decides which value a consumer picks.

### What does the coherence group actually check?

Three things no single-block validator can see. Whether two blocks of the same type disagree about a property that identifies the entity, like a name or a price. Whether an @id reference points at something that is defined somewhere on the page. And whether anything on the page says who publishes it, which is what an answer engine needs before it can credit you rather than guess from the domain.

### Why does it render the page instead of just fetching it?

Because a large share of real structured data is injected after load, by a tag manager or by a WordPress SEO plugin. A raw fetch sees none of it and would tell you that you have no structured data when you have plenty. Googlebot runs JavaScript, so the rendered page is the honest input.

### Does a warning mean my markup is broken?

No. A failure means something is missing or wrong and a consumer will drop it. A warning means the markup is valid and will be read, but you are leaving something on the table or leaving a choice to someone else. Recommended properties are the common case. So is a conflict between two blocks that a consumer has to resolve on its own.

### It says my page has no structured data, but I added some

Two things to check. First, whether the markup is on the page you tested rather than on a template that only renders for some URLs. Second, whether whatever injects it ran at all: some tag managers only fire on consent, and if the injection is gated the markup genuinely is not there for a crawler either. If the block is in the HTML and the tool still reports nothing, tell us, because that is a bug on our side.

### Do you store the URLs I check?

Results are cached for 24 hours against the URL, so a shared link opens instantly and a repeat check does not run the whole thing again. Nothing else is kept. There is no account, no email, and no history.

## Related tools

- [JSON-LD Generator](https://usesuperflow.ai/tools/json-ld-generator) — Build valid schema markup from a URL, then paste it into your page. Markdown copy: https://usesuperflow.ai/tools/json-ld-generator.md
- [AI Visibility Checker](https://usesuperflow.ai/tools/ai-visibility-checker) — See whether ChatGPT, Claude, and Perplexity can actually read your site. Markdown copy: https://usesuperflow.ai/tools/ai-visibility-checker.md
- [Social Preview Checker](https://usesuperflow.ai/tools/social-preview-checker) — See how your link renders on X, LinkedIn, Slack, and Google before you post it. Markdown copy: https://usesuperflow.ai/tools/social-preview-checker.md
- [robots.txt AI Checker](https://usesuperflow.ai/tools/robots-txt-ai-checker) — Test your robots.txt against every AI crawler that matters. Markdown copy: https://usesuperflow.ai/tools/robots-txt-ai-checker.md

## About

JSON-LD Validator is one of a set of free tools published by Superflow at https://usesuperflow.ai/tools. None of them require a login, an email address, or payment.

Category: structured-data.

Superflow is a website and creative-asset review tool. Its agents watch every page of a site and report what changed. See https://usesuperflow.ai.
