← All tools

Schema markup validator

Test the structured data on any page. Enter an address or paste HTML or JSON-LD to find broken JSON, missing required and recommended properties for Google's rich results, and values in the wrong format, such as dates, prices and relative image links.

The page is fetched once by Cromagnon's server, as a crawler would see it before scripts run. Markup added later by JavaScript (some plugins and tag managers) won't show; paste the rendered HTML from your browser's developer tools to check it.

About the Schema markup validator

Structured data only works when it is valid: one missing comma makes search engines ignore a whole script, and a missing required property stops a rich result from appearing. This validator reads the JSON-LD on a live page, or in HTML or JSON you paste, and checks every item in it. It reports broken JSON with the line and column, the properties Google requires and recommends for that type of rich result, and values written in a form search engines don't accept, such as a date like 27/10/2026, a price with a currency sign or an image path without https://.

How to use it

  1. Type a page address and click Check page, or switch to Pasted code and paste a page's source, a <script type="application/ld+json"> block, or plain JSON.
  2. Read the summary: how many items were found, and how many errors and warnings.
  3. Open each item: red marks are errors that stop rich results, amber marks are recommended improvements, and notes explain types Google limits.
  4. Click Show the data to see the item's properties as search engines read them.
  5. Fix the markup in your site or plugin (or rebuild it with the schema generator), publish, and check again.

Tip: Errors come first. A rich result needs every required property; recommended ones make it richer and more likely to show, but missing them never blocks it.

What is checked

JSON syntax
Trailing commas, missing commas, single quotes and unclosed brackets. The message says where the JSON breaks and what is most likely wrong.
@context and @type
Each item needs "@context": "https://schema.org" and a type. Items inside an @graph inherit the context.
Required properties
For 18 common types, including Product, Article, LocalBusiness and its subtypes, Event, Recipe, Video, FAQ, Breadcrumbs, Review, Job posting and Course, the properties Google's documentation requires for a rich result.
Recommended properties
Extra properties Google uses when they are present, such as a product's brand and GTIN or an event's end date and organizer.
Values
Dates and times in ISO 8601, durations such as PT30M, prices as plain numbers, three-letter currency codes, and full https:// addresses for URLs, images and logos.
Notes on limited types
FAQ rich results now appear only for government and health sites, and how-to results are no longer shown; the validator says so instead of letting you chase them.

Checking a live page

With a web address, Cromagnon's server fetches the page once, like a search engine crawler, and reads the HTML it receives. Redirects are followed and the final address is shown. Nothing is stored. Some sites block automated visitors and answer 403; for those, open the page in your browser, view the source, and paste it instead.

Markup that is added by JavaScript after the page loads, for example by some tag manager setups or app widgets, isn't in the first HTML, so it won't be found here. Google can render JavaScript and usually sees it eventually, but adding JSON-LD to the HTML itself is faster and more reliable. To check rendered markup, copy the page's HTML from your browser's developer tools (Elements panel, right-click <html>, Copy outer HTML) and paste it.

Common errors and how to fix them

Missing field "offers", "review" or "aggregateRating"
A Product needs at least one of them. Add the price in offers, or the real ratings shown on the page.
Price is not a number
Write "price": "34.00" and "priceCurrency": "USD" separately. Remove currency signs and thousand separators.
Date isn't ISO 8601
Change 27/10/2026 or October 27, 2026 to 2026-10-27, and add a time zone to times: 2026-10-27T19:30:00+01:00.
Not a full address
Images, logos and item URLs need https://. Many themes output relative paths; most SEO plugins have a setting for the site URL.
Invalid JSON
Usually a comma after the last item in a list or object, or a missing comma between two properties. Text with double quotes inside must escape them as \".
Duplicate items
Two plugins can both add Product or Organization markup. Keep one source of truth, or search engines may read conflicting values.

This tool and Google's tests

Google's Rich Results Test shows which rich results a page is eligible for, and the Schema Markup Validator at schema.org checks the vocabulary in general. This validator focuses on the mistakes that most often stop rich results, explains them in plain words, and works on pasted code before anything is published. Use it while you build, and use Google's test and Search Console's Enhancements reports to confirm after publishing.

Tips and tricks

Check templates, not just pages

Fix the template that outputs the markup and every product or post is fixed at once.

Match the visible page

Valid markup that disagrees with the page (a different price or rating) can still lose rich results.

Watch Search Console

The Enhancements reports show errors across the whole site and when Google sees your fixes.

One script per type

Several JSON-LD scripts on one page are fine; make sure they don't describe the same thing twice.

Escape quotes

A double quote inside a text value must be written \", or the JSON breaks.

Microdata

If the page uses itemscope attributes instead of JSON-LD, test it in Google's Rich Results Test.

Questions

Why does my valid markup not show stars or prices in Google?

Valid markup makes a page eligible, but Google decides whether to show a rich result based on the site's quality, the query and whether the markup matches the page. Some types (FAQ, How-to, self-serving reviews) are limited.

Does it check Microdata and RDFa?

No, only JSON-LD, which is the format Google recommends. The tool tells you when a page uses Microdata or RDFa so you can test those in Google's Rich Results Test.

Can it check pages behind a login?

No. The server can only fetch public pages. Paste the HTML of a private page or a staging site instead.

Why are warnings not errors?

Warnings are recommended properties. A rich result can appear without them, but they often make it more detailed or more likely to show.

Is the page or code I check saved?

No. A live page is fetched once and checked in your browser; pasted code never leaves your device. Nothing is stored or logged.

Related tools

Updated