Structured data tool
Free Schema Markup Validator
Free, no sign-up
Find every schema error on a page, with the line it is on
You get a list of every JSON-LD block on the page, each item in it, and what is wrong with each item, in plain words. Errors are things Google's documentation says must be there or must be written a certain way; warnings are things it recommends, or that search engines will ignore.
- JSON syntax errors, with the line and column where the code stops being valid JSON: a trailing comma, a missing comma, single quotes, a line break inside a string.
- A missing or wrong @context, and items with no @type.
- Each @graph expanded into its items, and @id references followed to the node they name on the same page.
- Missing required properties, and the "one of" rules, such as a Product needing an offer, a review or a rating.
- Value formats: ISO 8601 dates, numeric prices, ISO 4217 currency codes, full URLs and image URLs.
- Types and properties that schema.org does not define, which search engines skip. Typos like adress or a lowercase product show up here.
URL mode reads the page's HTML once, up to 3 MB, the way a crawler does before running any JavaScript. Paste mode takes up to 60 KB of JSON-LD or HTML and fetches nothing. One check covers up to 500 blocks.
Structured data testing tool
Google's Structured Data Testing Tool is gone. Google announced in July 2020 that it would retire it in favour of the Rich Results Test, and later handed the general-purpose validation part to schema.org, which now runs it at validator.schema.org. Many guides still link to the old tool, which is why the name keeps coming up.
That split left two tools that answer different questions. The Rich Results Test asks whether a page can get a Google rich result, and renders the page with JavaScript first. The schema.org validator checks markup against the whole schema.org vocabulary, with no opinion on Google's features.
This validator sits between them. It checks the vocabulary like the schema.org validator, and checks the types behind Google's most used rich results against Google's published required and recommended properties. It is not a Google tool, and meeting Google's documented requirements makes a page eligible for a rich result; it does not guarantee one. Google decides what to show.
Structured data checker
The table lists the requirements this checker applies, taken from Google Search Central's structured data documentation and last compared with it on 2026-10-25. Subtypes use the nearest type below: a Dentist is checked as a LocalBusiness, a NewsArticle as an Article.
| Type | Required by Google | Rich result |
|---|---|---|
| Article, NewsArticle, BlogPosting | None; recommended properties only | Article |
| Product | name, one of review, aggregateRating or offers | Product snippet |
| Offer | one of price or priceSpecification.price | Part of another result |
| Review | author, reviewRating, reviewRating.ratingValue, itemReviewed (when not nested), itemReviewed.name (when not nested) | Review snippet |
| AggregateRating | ratingValue, one of ratingCount or reviewCount, itemReviewed (when not nested), itemReviewed.name (when not nested) | Review snippet |
| LocalBusiness | address, name | Local business |
| Organization | None; recommended properties only | None of its own |
| BreadcrumbList | itemListElement, itemListElement.position, itemListElement.item (except the last), one of itemListElement.name or itemListElement.item.name | Breadcrumb |
| Event | location, location.address, name, startDate | Event |
| VideoObject | name, thumbnailUrl, uploadDate | Video |
| Recipe | image, name | Recipe |
| SoftwareApplication | name, offers.price, one of aggregateRating or review | Software app |
| WebSite | name, url | Site name |
| FAQPage | mainEntity, mainEntity.name, mainEntity.acceptedAnswer, mainEntity.acceptedAnswer.text | Retired by Google |
| HowTo | name, step | Retired by Google |
Recommended properties come next. They never block eligibility, but Google uses them where it can, for example a product's price and availability in its snippet. Some recommendations apply only in some cases, such as a menu for a restaurant, and the checker lists those as notes rather than warnings.
Do FAQ and How-to rich results still show in Google?
No. Google stopped showing How-to rich results in September 2023, and stopped showing FAQ rich results on May 7, 2026, after limiting them to well-known government and health sites in 2023. Both documentation pages have since been removed.
The checker still validates FAQPage and HowTo markup against the last published rules, because the markup is valid schema.org that other search engines and AI answer tools can read. It reports these items as valid but not eligible, so you are never told to expect a rich result that no longer exists.
What about microdata and RDFa?
The checker finds microdata (itemscope and itemtype attributes) and RDFa (typeof attributes) and lists the types it finds, but validates JSON-LD only. Google reads all three formats, and recommends JSON-LD because it sits in one script block instead of being spread across the page's HTML, which makes it easier to keep correct as templates change.
If a page uses microdata, check it in Google's Rich Results Test, or move it to JSON-LD and check it here.
What does it mean when a check is not complete?
A check that could not read everything says so and never reports a clean page. That happens when a site blocks or rate-limits our checker, when it is too slow to answer within the time limit, when the page is larger than 3 MB, or when it holds more blocks than one check covers.
A site that blocks checkers may still serve Googlebot normally, so a refusal says nothing about what Google sees. Paste the page's HTML instead, or use Search Console's URL Inspection, which shows the page as Google rendered it.
Markup that JavaScript adds after the page loads is not in the HTML this checker reads. Google renders JavaScript, so it may see markup that a URL check here does not; when a page looks like an empty app shell, the result says that too.
Questions about schema markup
How do I check if my schema markup is valid?
Enter the page's URL in the schema markup validator, or paste its JSON-LD, and select Validate. It lists every structured data block on the page with any JSON syntax error and its line, then each item's missing required properties, missing recommended properties and badly formatted values.
Does valid schema guarantee a rich result?
No. Meeting Google's documented requirements makes a page eligible for a rich result, and Google then decides whether to show one, based on the query, the page's quality and its own policies. Markup that breaks a requirement, though, can rule a rich result out.
What replaced Google's Structured Data Testing Tool?
Two tools. Google's Rich Results Test checks whether a page can get a Google rich result, and schema.org's validator at validator.schema.org checks markup against the full schema.org vocabulary. This validator checks the vocabulary and Google's published requirements for its most used rich results in one pass.
Why does the checker say my FAQPage is not eligible?
Because Google no longer shows FAQ rich results: it stopped on May 7, 2026. Valid FAQPage markup is still reported as valid, since other search engines and AI answer tools read it, but it will not earn a rich result in Google.
Is JSON-LD better than microdata?
Google reads JSON-LD, microdata and RDFa, and recommends JSON-LD. It lives in one script block instead of attributes spread through the HTML, so it is easier to write, review and keep correct as templates change. This checker validates JSON-LD and lists any microdata or RDFa types it finds.
Why does the checker find no markup when my page has some?
Most often because JavaScript adds the markup after the page loads. A URL check reads the HTML the server sends, before any script runs. Google renders JavaScript, so it may still see the markup; paste the rendered HTML here, or check the page in Search Console's URL Inspection.
Is the schema markup validator free?
Yes. It needs no account, and each visitor gets a number of free checks per day, shown under the form. Pasted code counts as a check too, and its result is never cached or shared.
More free tools
See all free tools- Schema Markup GeneratorBuilds JSON-LD for Organization, LocalBusiness, Product, Article, BlogPosting, BreadcrumbList, WebSite, Person and Event, with Google's required and recommended fields marked.
- FAQ Schema GeneratorTurns your questions and answers into valid FAQPage JSON-LD that you can paste into your page.
- Meta Tag CheckerChecks a page's title, meta description, Open Graph and Twitter tags, previews its Google result and social cards, and confirms the share image loads.
Add the missing markup on every page, not one page at a time
This validator checks one page. Azuqe's site audit flags every page with no JSON-LD structured data, and the Fix Center can write the markup for each page and deploy it for you.
Free trial on your first site · Cancel any time