Skip to content
MrKeyword
Free schema markup validator

Schema markup validator: is your JSON-LD ready for rich results?

Enter any page address. MrKeyword fetches it live, reads every JSON-LD block and checks each item against Google's rich result rules: missing required and recommended properties, broken JSON, and types Google has limited or retired.

Free, no account needed. MrKeyword fetches the page live and shows only what it found.

Built on first-party data from Google and Bing
Search ConsolePageSpeed InsightsBing Webmaster Tools
An explorer discovering useful search ideas with a magnifying glass
A little curiosity goes a long way.
What it checks

What does a schema markup validator check?

A schema markup validator reads the structured data on a page and tells you whether search engines can use it: whether each JSON-LD block parses, which schema.org types it describes, which properties Google requires or recommends for that type, and whether Google still shows a rich result for it.

Structured data is a short block of code, usually JSON-LD inside a <script type="application/ld+json"> tag, that describes the page in a fixed vocabulary from schema.org: this page is an article by this author, this business is at this address, this product costs this much. Google uses it to understand the page and, for some types, to show a rich result such as a product price, an event date or a breadcrumb trail.

The validator fetches the page the way a search engine would, reads every JSON-LD block, and checks each item against the same rules MrKeyword's site audit uses, written from Google's structured data documentation. Each item gets its Google status (Supported, Limited, Retired or No rich result), its errors and its warnings, and you can open the raw JSON of every block.

In the result

Clear answers,
with the reason shown.

Per item

Every type, with its Google status.

Each schema.org item on the page gets a card: its type, whether Google shows a rich result for it today, the missing required properties (errors) and the missing recommended ones (warnings).

  • Supported, Limited, Retired or No rich result
  • Required and recommended properties
Per block

The raw JSON, as the page serves it.

Every JSON-LD block is listed with its raw code, so you can see exactly what Google receives. A block that isn't valid JSON is flagged, because Google ignores all of it.

  • JSON parse errors
  • Microdata noted
Worked example

A plumber's blog post with two schema gaps, validated.

The fictional northwind-plumbing.example has a blog post with three JSON-LD blocks: a LocalBusiness block for the company that leaves out the address, an Article block for the post that has no image, and an FAQPage block for the questions at the end. The validator reads them and shows:

https://northwind-plumbing.example/blog/bleed-a-radiator/1 problem
  • ProblemLocal business (LocalBusiness): Missing required property address.
  • FixArticle: Add recommended property image.
  • NoteFAQ (FAQPage): Google limited FAQ rich results in 2023. Google shows FAQ rich results only for well-known government and health websites. The markup is still valid, but most sites no longer get the rich result.

LocalBusiness Supported

Local business: Supports business details such as address, hours and phone number.

Errors

  • Missing required property address.

Article Supported

Article: Helps Google show the right headline, image and dates for articles.

Warnings

  • Add recommended property image.

FAQPage Limited

FAQ: Google shows FAQ rich results only for well-known government and health websites.

No missing properties.

JSON-LD block 1
{"@context":"https://schema.org","@type":"LocalBusiness","name":"Northwind Plumbing","url":"https://northwind-plumbing.example/","telephone":"+44 113 496 0000","image":"https://northwind-plumbing.example/van.jpg","openingHours":"Mo-Fr 08:00-18:00","geo":{"@type":"GeoCoordinates","latitude":53.8,"longitude":-1.55}}
JSON-LD block 2
{"@context":"https://schema.org","@type":"Article","headline":"How to bleed a radiator","datePublished":"2026-09-14","dateModified":"2026-10-20","author":{"@type":"Person","name":"Sam Northwind"},"mainEntityOfPage":"https://northwind-plumbing.example/blog/bleed-a-radiator/"}
JSON-LD block 3
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"How often should I bleed my radiators?","acceptedAnswer":{"@type":"Answer","text":"Once a year, before the heating season, or whenever a radiator is cold at the top."}}]}

Example result for a fictional website (northwind-plumbing.example). It is produced by the checker's own code from the setup described above; run the checker for your own pages.

The LocalBusiness item has one error: address is required for local business details, so without it the block cannot support the business's address, hours and phone in Google. The fix is a PostalAddress with the street, town, postcode and country exactly as they appear on the contact page. The Article item parses and has its headline, dates and author, but no image, which Google recommends for article results; add the post's main photo as an absolute URL. The FAQPage block is valid, and the note explains why it will not earn the dropdowns most sites remember: Google limited FAQ rich results to well-known government and health sites in 2023. Our SEO audit guide covers structured data alongside the other checks a page needs to pass.

Reading the result

How do you read the schema markup validator result?

The verdict
Problems are required properties that are missing or broken JSON; fixes are missing recommended properties. Notes explain a type's Google status or that the page also uses microdata.
The item cards
One card per schema.org item Google reads: the top-level items of each block, plus reviews and ratings nested inside them. Each card shows the type, the rule it was checked against and what that rich result can show.
The Google status
Supported means Google shows a rich result or uses the type today, some with conditions. Limited means only some sites get it (FAQ). Retired means Google no longer shows it (HowTo). No rich result means the type is valid schema.org but Google has no search feature for it.
The raw JSON
Each block exactly as the page serves it, so you can copy it, compare it with what your CMS or plugin should output, and spot a stray comma in a block that does not parse.
Common errors

What are the most common schema markup errors, and how do you fix them?

The JSON doesn't parse

One trailing comma, a smart quote or an unescaped line break makes the whole block invalid, and Google ignores all of it. Generate JSON-LD with code or a plugin rather than by hand, and open the raw block to find the break.

Missing a required property

Each rich result type has properties it cannot work without, such as address for a local business or name and offers, reviews or a rating for a product. Add the real value from the page, never a placeholder.

Missing recommended properties

Recommended properties, such as image and dateModified for an article, are optional but give Google more to show. Add the ones that are true and visible on the page.

Markup that doesn't match the page

Structured data must describe what visitors can see. FAQ questions that are not on the page, or ratings that are not shown, break Google's guidelines and can lead to a manual action.

Self-serving review stars

Ratings that a business puts on its own LocalBusiness or Organization item are not eligible for review stars. Mark up reviews of products or services the page is about instead.

When to check

When should you validate schema markup?

Validate it whenever the code that writes it changes, because structured data usually comes from a template or plugin and one change reaches every page built from it.

After installing or updating an SEO plugin
Plugins rewrite their JSON-LD between versions. Check one page per template to see that the types and required properties survived.
When a rich result disappears
If product prices, event dates or breadcrumbs vanish from Google, check whether a required property went missing or a block stopped parsing.
Before launching a new page template
Validate the first page built from it, so a missing address or image is fixed once instead of on hundreds of pages.
When Search Console reports an enhancement error
Run the page named in the report to see the error alongside the raw JSON, fix the template, then ask Google to validate the fix.
When you wonder why FAQ dropdowns stopped
The status line shows whether a type is still shown by Google, so you can stop chasing a result Google no longer gives most sites.
Go further

Guides for this check.

More free checkers

Other quick checks.

Questions

About the schema markup validator.

What is schema markup?

Schema markup, or structured data, is code that describes a page in the schema.org vocabulary, such as the business name and address, an article's author and dates, or a product's price. Google recommends adding it as JSON-LD in a script tag, separate from the visible HTML.

Is schema markup a ranking factor?

No. Google has said structured data is not a ranking factor. It helps Google understand a page and can make it eligible for rich results, which can earn more clicks, but valid markup does not move a page up the results on its own.

Why don't my FAQ stars or dropdowns show in Google?

Google limited FAQ rich results in August 2023: they now show only for well-known, authoritative government and health websites. FAQPage markup on other sites is still valid and does no harm, but it will not produce the dropdowns it used to. Google also stopped showing HowTo rich results in 2023.

Should I use JSON-LD or microdata?

Google reads JSON-LD, microdata and RDFa, and recommends JSON-LD because it sits in one block instead of being woven through the HTML, which makes it easier to add and maintain. This validator checks JSON-LD and notes when the page also uses microdata.

Does this replace Google's Rich Results Test?

No. Google's Rich Results Test renders the page with Google's own systems and is the final word on eligibility. Use this validator for a quick read of every block, its Google status and the raw JSON, then confirm important pages in the Rich Results Test and watch the enhancement reports in Search Console.