An object, an array or the <script type="application/ld+json"> tags with their content all work. What you paste never leaves your browser.
The URL is read by our function on Cloudflare, which downloads the page, stores nothing and caches it for ten minutes. What you paste never leaves your browser.
Summary
Read a URL or paste the code to start.
- blocks
- 0
- nodes
- 0
- errors
- 0
- warnings
- 0
What is there
Review
The JSON, formatted
Next step
Shall we fix it for you?
Send us this result and we reply within one business day with what we would fix first, how much work it is and what you can leave as it is.
Opens the form with the diagnosis already written. You can edit it before sending.
How to use it
01
Bring the code
Type the published URL or paste the JSON-LD of a page that is not live yet. Both roads end in the same review.
02
See which types are there
Every node shows up with its type and properties. If what you expected is not on the list, Google will not see it either.
03
Fix the required first
Errors block the rich result; warnings only make it poorer. Copy the formatted JSON and publish again.
What Google asks for and what schema.org asks for
They are two different bars. schema.org is a vocabulary: it accepts almost any combination of type and property, and a schema.org validator will tell you a Product with no price is perfectly valid. Google, on the other hand, only draws the rich result when the properties its documentation marks as required for that type are present, and there a Product with no offers, no reviews and no rating is nothing.
This tool validates against the second bar, the one that decides whether the page earns space in search. And even then, validating does not guarantee Google will show it: that depends on the marked-up content being visible on the page, on it describing what the page really is, and on the site’s authority. What it does guarantee is that, if Google does not show it, the reason is not a formatting error.
JSON-LD is not written: it is generated
The mistake we see most is not syntax: it is structured data that told the truth the day it was written and no longer does. The price changed on the product page but not in the JSON-LD, the FAQ was reordered on the page but not in the block, the author left and their name is still on every article.
On the sites we build, the JSON-LD comes from the same data that renders the page: a single source for the price, the date or the questions, and a builder per type that cannot forget a required property because the build would fail. This tool is the same review, done by hand, for sites that were not born that way.
Frequently asked questions
JSON-LD, microdata or RDFa?
JSON-LD. It is the format Google has recommended for years and the only one you can add without touching the page markup: it lives in a separate <script>, it is generated from data and reviewed like any other JSON. Microdata and RDFa still work, but they scatter attributes through the HTML and break as soon as someone changes a template.
Why does Google not show my rich result if it validates here?
Because validating is necessary, not sufficient. Google decides page by page whether the rich result is worth showing, and refuses when the marked-up content is not visible to the person, when the markup describes something the page is not about, or when the page has little authority. It is also slow: weeks can pass between publishing and seeing it. What this tool guarantees is that the reason is not a formatting error.
Can I put several types on the same page?
Yes, and it is the norm: a product page carries Product, Offer, BreadcrumbList and Organization. They can go in separate blocks or in one with @graph. What you should avoid is marking up types that do not describe the page: a FAQ on a page with no questions is exactly what Google pursues as structured data spam.
What is @graph?
An array of nodes inside a single block, sharing the @context. It lets nodes link to each other by @id: the Article points to its author, the author to the Organization, and everything travels in one tag. This tool unrolls the graph and reviews each node separately, which is what Google does.
Do I need @id?
Not to validate, yes to link. If the same node, the organisation or the author, appears on several pages or in several blocks, giving it a stable @id (a URL with a fragment, like https://yourdomain.com/#organization) lets Google recognise them as one entity instead of counting three different organisations.
Is what I paste sent anywhere?
No. Pasted code is analysed in your browser with its own HTML and JSON parsers, which execute nothing it contains. Our function only steps in when you type a URL: it downloads the page, hands it back to you and stores neither the address nor the content.
How do I test a page that is not published yet?
By pasting. Open the page in your local or staging environment, copy the whole <script type="application/ld+json"> (or the full page source) and paste it in the second field. The review is identical to the one by URL, except it cannot check that absolute URLs respond.
Are your rich results not showing?
It is usually a missing required property or a value that went stale. If you want the JSON-LD to come straight from the data and be checked on every publish, that is what we build.
We reply within one business dayBogotá · UTC−5