Free tool · Schema markup validator
Free Schema Validator for Google and AI Search
Check the schema.org structured data on any page: JSON-LD, Microdata and RDFa. Every entity as a readable tree, every error with its fix, Google's rich result requirements, and whether AI search can read it at all.
Reads the HTML as served, without running JavaScript. Try .
How the validator works
- 1It fetches the page once, from our server, and reads the HTML exactly as the server sends it. No JavaScript runs, which is how GPTBot, ClaudeBot and PerplexityBot read the web too. Redirects are followed; pages over 3 MB are cut at 3 MB.
- 2It extracts every JSON-LD block, every Microdata item and every RDFa resource, flattens @graph arrays and follows @id references, so one entity described in several places is checked as one.
- 3It checks each type, property and value against the schema.org vocabulary: 939 types and 1,538 properties, built from the official release on October 15, 2026.
- 4It applies Google's documented required and recommended properties for each rich result, and labels features Google has retired instead of reporting them as errors.
- 5It runs the AI readability checks against the same served HTML, including whether marked-up headlines, product names and FAQ questions appear in the page text a crawler receives.
Pasted code is not saved, and no AI model is called: the checks are deterministic, so the same page gives the same report every time.
What each check means
Syntax
Each JSON-LD block must parse as JSON. One trailing comma or curly quote and the whole block is dropped by every reader, so these errors come first, with the line, the column and the likely cause.
Vocabulary
Every @type and property must exist in schema.org, and each property must belong to the type it sits on. Misspellings get the closest real term as a suggestion. Superseded and pending terms are flagged.
Values
Dates and durations in ISO 8601, numbers that are numbers, URLs that are URLs, and enumeration values such as availability written as the full schema.org URL. Nested objects must carry their own @type.
Graph
@graph arrays are flattened, every @id reference is followed, and everything said about one @id is merged before checking, which is how most SEO plugins and CMSs build their output.
Google rich results
Required and recommended properties for the features Google still shows: product snippets, merchant listings, variants, articles, breadcrumbs, local business, organization, events, software apps, reviews, video, recipes, job postings and site names. Retired features are labelled as such.
AI readability
Whether the markup is in the HTML as served, says who is behind the page, connects into one graph, names what the page is, carries a dateModified, and matches the text a crawler actually receives.
Severity follows consequence. An error means a reader drops or misreads the data. A warning means it is read, but not the way you intended, or Google will not use it. A note is context: a reference to another page, a pending term, a retired feature.
Common schema errors, with the fix
The mistakes that turn up most on real sites. Each one is caught by the validator above.
Trailing comma
Before
"url": "https://acme.example", }
After
"url": "https://acme.example" }
JSON allows no comma before a closing brace. The block fails to parse and every entity in it is lost.
Missing @context
Before
{ "@type": "Organization", "name": "Acme" }After
{ "@context": "https://schema.org",
"@type": "Organization", "name": "Acme" }Without a context, a parser cannot tell that Organization means schema.org's Organization.
British spelling or a typo in the type
Before
"@type": "Organisation"
After
"@type": "Organization"
Types are exact, case-sensitive names. An unknown type means the entity describes nothing a reader recognises.
Availability as free text
Before
"availability": "in stock"
After
"availability": "https://schema.org/InStock"
availability takes an ItemAvailability value. Free text is not read as stock status.
Currency inside the price
Before
"price": "$129.00"
After
"price": "129.00", "priceCurrency": "USD"
Google reads price as a plain number with a dot for decimals. The currency goes in priceCurrency as an ISO 4217 code.
Local date format
Before
"priceValidUntil": "31/12/2026"
After
"priceValidUntil": "2026-12-31"
Dates are ISO 8601. 31/12/2026 is ambiguous to a machine and fails validation.
Nested object without a type
Before
"address": {
"streetAddress": "12 Main St"
}After
"address": {
"@type": "PostalAddress",
"streetAddress": "12 Main St"
}Without @type a reader has to guess what the object is. Local business results need address to be a PostalAddress.
Markup added by a tag manager
Before
<!-- JSON-LD injected by JavaScript after load -->
After
<script type="application/ld+json">...</script> <!-- in the HTML the server sends -->
Google renders JavaScript later, but the major AI crawlers do not run it at all. Server-rendered markup reaches both.
Structured data and AI search
Schema markup does not get a brand recommended on its own. What it does is remove doubt: which company a name refers to, what the page sells, who wrote it and when it last changed. Engines that are unsure leave you out of the answer.
The catch is delivery. In Vercel's analysis of AI crawler traffic, none of the major AI crawlers rendered JavaScript, including OpenAI's, Anthropic's and Perplexity's (Vercel, December 2024). Markup injected by a tag manager passes Google's tests, because Google renders, and never reaches those crawlers. That is why this validator reads the HTML as served.
Clean markup is one input. The Honeyb agent works on the rest: it measures whether ChatGPT, Gemini, Claude, Perplexity and four more engines recommend you, then writes the content they cite and fixes how they read your site. Need FAQ markup to test? The FAQ schema generator writes it.
Want to get recommended by AI?
Check your AI search visibility, then let the Honeyb agent write, fix, and earn what gets you recommended. Free to start.
Frequently asked questions
What is a schema markup validator?
A tool that reads the structured data on a page (JSON-LD, Microdata or RDFa) and checks it against the schema.org vocabulary: whether the types and properties exist, whether the values have the right shape, and whether the JSON parses at all. This one also checks Google's rich result requirements and whether the markup is readable by AI crawlers that never run JavaScript.
How do I check if my schema is valid?
Enter the page URL above, or paste the JSON-LD or page source. Valid means three things: the JSON parses, every type and property is a real schema.org term used on the right type, and the values are in the expected format (ISO 8601 dates, plain-number prices, full enumeration URLs). Fix the errors first; a block with one syntax error is dropped whole.
How do I check the schema on a webpage?
Enter the URL. The validator fetches the HTML the server returns and lists every entity it finds, as a readable tree, with the problems attached to the exact property. If the site blocks automated requests, open the page, view its source, and paste that instead.
Does schema markup help with AI search?
It removes ambiguity rather than earning a recommendation by itself. A clear Organization entity with sameAs links tells an engine which company a name refers to, and a Product or Article entity states what the page is. That only works if the markup is in the HTML as served: the major AI crawlers do not run JavaScript, so schema added by a tag manager never reaches them.
Is this a JSON Schema validator?
No. JSON Schema is a format for validating the structure of JSON documents in software. This tool validates schema.org structured data, the markup websites add for search engines and AI assistants. If you need to validate a JSON document against a JSON Schema, you need a different tool.
Why did my FAQ and How-to rich results disappear?
Google retired them. How-to rich results stopped showing in September 2023 and FAQ rich results on 7 May 2026. The markup is still valid schema.org, so there is no need to delete it, but it no longer earns a Google feature. The validator marks these types as no longer shown rather than as errors.
Should I use JSON-LD, Microdata or RDFa?
JSON-LD. Google recommends it, it sits in one script block instead of being woven through the layout, and a redesign cannot silently break it. The validator reads all three, so you can check a legacy Microdata template before migrating it.
Free to start
Valid markup is the start. Get recommended by AI.
Run a free AI search visibility check to see whether AI engines name your brand, then let the Honeyb agent do the work that gets you into the answers.
ChatGPT
Claude
Gemini

