How to validate schema markup
- Get the code. Copy the JSON-LD from your template or plugin, or open the live page, view its source and copy the whole thing. The checker finds every
application/ld+jsonscript in a full page by itself. - Paste it on the left. The results update as you type. If the JSON is broken, you see the line and column where it stops making sense, a few lines around it and, when the cause is a common one, a plain-English hint.
- Read the results by level. Errors are things that stop a rich result: a missing required property or a value in the wrong format. Warnings are recommended properties that make the result richer. Tips are notes about how Google uses a type today.
- Test the live page too. Once the code is in the page, run the address through Google's Rich Results Test, which renders the page the way Google does and can see markup added by JavaScript. This page checks what you paste; it does not fetch your site.
People search for a schema validator, a schema markup validator, a JSON-LD validator and a structured data testing tool. They all mean this kind of check. It is not an XSD or JSON Schema validator, which are developer tools for checking data files against a schema definition.
Schema Markup Validator, Rich Results Test or this checker
Three different questions get called validation, and each tool answers one of them.
| Tool | Question it answers | What it cannot tell you |
|---|---|---|
| This checker | Is the JSON valid, and does each type have the properties Google documents for it? | Whether the page renders, whether the property names exist in schema.org, or whether Google will show anything |
| Schema Markup Validator (validator.schema.org) | Are the types and properties real schema.org vocabulary, whether or not Google uses them? | Whether a type is eligible for a Google rich result |
| Google Rich Results Test | Is this page eligible for a rich result Google supports, as Google renders it? | Whether Google will actually show the result: it decides that itself |
Google retired its old Structured Data Testing Tool in 2021 and split the job between the two tools above. In practice, use this page while you write or edit code, the Schema Markup Validator when you use types Google does not feature, and the Rich Results Test on the published page before you consider the work finished.
The most common schema errors and how to fix them
| What you see | What it means | Fix |
|---|---|---|
| Syntax error with a line number | The JSON does not parse. Usually a trailing comma, a missing comma or quote, a comment, or curly quotes pasted from a document | Go to the marked line, fix the character, paste again. The hint under the error names the usual cause |
Add @context | The block has no vocabulary, so a search engine cannot tell it is schema.org | Add "@context": "https://schema.org" at the top of the object |
Add an @type | The object does not say what it describes | Add the type, for example "@type": "Product" |
| Missing required property | The type lacks something Google needs for its rich result, such as an address on a LocalBusiness or a start date on an Event | Add the property with a real value, or leave the type out if you cannot supply it |
| Price with a currency symbol | Product and offer prices must be plain numbers | Use "price": "1499.00" and put the currency in priceCurrency as a three-letter code |
| Not an ISO 8601 date | Dates such as "April 15, 2027" or "15/04/2027" are not machine-readable | Use 2027-04-15, or 2027-04-15T18:00-07:00 with a time and UTC offset |
| Property is plain text instead of an object | An author, address or location was written as a string | Use a nested object with its own type, such as a Person with a name |
| Sample addresses still in the code | The markup still contains placeholder domains copied from a tutorial | Replace them with your own addresses before you publish |
Which schema types this checker covers
It checks 13 types against the properties Google documents, including every more specific subtype Google lists under them: Organization, LocalBusiness (and types such as Dentist, Restaurant or Plumber), Article (with BlogPosting and NewsArticle), Product, Event, FAQPage, BreadcrumbList, Person, WebSite, Recipe, JobPosting, VideoObject and SoftwareApplication. HowTo is recognised too, and the checker tells you Google stopped showing it in 2023. For any other type it checks the syntax and the context, and sends you to the Schema Markup Validator for the vocabulary.
The rules follow Google Search Central's documentation for each feature. Google changes them: it removed HowTo results, limited FAQ results to well-known government and health sites in 2023, and retired the sitelinks search box in 2024. The checker reflects those changes today, and the documentation is the page to trust when it differs.
Valid markup is not the same as markup that helps
A validator checks form. It cannot check truth, and Google's structured data policies are about truth: the markup must describe what visitors can see on that same page, ratings must come from real customers and not from the business about itself, and prices, dates and availability must be current. Markup that breaks those rules can lead to a manual action in Search Console that removes rich results from the whole site, even if every validator says it is perfect.
Dynamic sites need one more check. If a plugin or a script adds the markup after the page loads, a copy of the page source will not contain it. Paste the markup from the plugin's output instead, or test the live address in the Rich Results Test, which runs the page's JavaScript.
Methodology and limits
- Extraction
- If you paste a page or a script tag, the checker reads every script of type
application/ld+jsonand parses each as JSON in your browser. If you paste bare JSON, it parses that. A@graphlist is split into its items, and each item is checked on its own. - Syntax
- Parsing uses the browser's own JSON parser. The line and column come from its error message or, when the message gives none, from the checker's own scan of the text, and the hints come from a short list of the usual mistakes: curly quotes, trailing commas, single quotes, comments and objects with no comma between them.
- Properties
- Each item's
@typeis matched to one of the 13 families, and the required and recommended properties from Google Search Central's documentation for that feature are tested, along with formats: ISO 8601 dates and durations, full URLs, plain-number prices, three-letter currency codes, ratings inside their scale, and valid GTIN check digits. - Limits
- The checker does not fetch pages, run JavaScript, read Microdata or RDFa, or know every schema.org property name. A property it does not check is not reported as wrong. It follows Google's documentation as published when this page was last updated, and that documentation changes.
Sources
Show all 10 sources
- Introduction to structured data markup in Google Search, Google Search Central, on formats and why JSON-LD is recommended
- General structured data guidelines, Google Search Central, the policies behind manual actions
- Structured data markup that Google Search supports, Google Search Central, the list of supported types
- Recipe structured data, Google Search Central, required and recommended properties
- Job posting structured data, Google Search Central, required and recommended properties
- Video structured data, Google Search Central, required and recommended properties
- Software app structured data, Google Search Central, required and recommended properties
- Schema Markup Validator, schema.org, checks markup against the full vocabulary
- Rich Results Test, Google, tests a page's eligibility for Google rich results
- JSON-LD 1.1, W3C Recommendation, the format specification


