Check your schema markup
Read the JSON-LD on any page, or paste your own: parse errors, schema.org types and the properties Google documents for each, with a fix for every gap. Free, no sign-up.
Paste your JSON-LD
Not live yet? Paste a JSON-LD object, or a page's HTML with its script tags. The check runs in your browser, and nothing you paste is sent to us.
What is JSON-LD?
JSON-LD is structured data written as JSON inside a script tag. It names what a page is about with schema.org terms: this is a Product, its name, its price, its reviews. Readers never see it; programs read it without having to guess from the layout. A short example:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Trail running shoe",
"image": "https://example.com/shoe.jpg",
"offers": {
"@type": "Offer",
"price": "89.00",
"priceCurrency": "GBP",
"availability": "https://schema.org/InStock"
}
}
</script>Why search engines and assistants read it
Google uses structured data to understand a page and to show rich results, such as prices and ratings under a product, as its introduction to structured data explains. It is not a ticket into AI answers: Google's guide to its generative AI features says no special markup is needed for them. What JSON-LD does give every reader, search engine or assistant, is your facts stated once, plainly, in a form that cannot be misread.
How to fix the common problems
- The block is not valid JSON. A trailing comma, single quotes or an unescaped quote stops the parser, and the whole block is ignored. Build the JSON with your platform's JSON encoder rather than by hand.
- No @context, or the wrong one. Set
"@context": "https://schema.org"on the top-level object. Nodes inside@graphshare it. - A required property is missing. Each finding names the property and links to the page that lists it. An Offer, for example, needs a price.
- The JSON is wrapped in a comment.
<!--and-->around the JSON are a leftover from old browsers; remove them. - The markup says something the page does not. Google asks that structured data describes what visitors can see. Keep prices, ratings and dates in step with the page.
Common questions
Should I use JSON-LD, microdata or RDFa?
Google reads all three, and recommends JSON-LD where your site allows it, because it sits in one script tag apart from the visible HTML and is the easiest to keep right. This checker reads JSON-LD only; it counts any microdata and RDFa it finds so you know they are there.
Does structured data get my site into AI answers?
Not on its own. Google's guide to its generative AI features says structured data is not required for them and that there is no special markup to add. It still drives rich results such as product details and breadcrumbs, and it states your facts in a form any program can read without guessing.
Which types does the checker know?
Product, Offer, AggregateRating, Review, Article, BlogPosting, NewsArticle, FAQPage, Question, Answer, BreadcrumbList, ListItem, Event, LocalBusiness, Organization, WebSite, WebPage, SoftwareApplication, VideoObject, Person. For each, it uses the properties Google documents for the rich result, or schema.org's own page where Google documents none. Any other type is listed with its place in the markup, but its properties are not checked.
What is the difference between a problem and a suggestion?
A problem is a block that does not parse, a missing or foreign @context, a node with no @type, or a property Google lists as required. A suggestion is a property Google recommends, or a leftover comment or CDATA wrapper. A clean result means the markup has what Google documents; whether a rich result shows is still Google's choice.
What does the checker store?
A page's result is kept in memory for an hour, so repeat checks and shared result links do not hit the page again. Nothing about the page is saved to a database. Text you paste is checked in your browser and never sent to us. The address of the person checking is only counted, hashed, for the rate limit.