Technical SEO

Schema markup testing tools: which one to use, and how to read the errors

Rich Results Test, Schema Markup Validator or Search Console? What each schema testing tool checks, what it misses, and the order to use them in.

// in this article

Use Google’s Rich Results Test to check whether your schema markup qualifies for a Google rich result, and the Schema Markup Validator to check that any schema.org markup is written correctly. Both are free and need no login. Once the page is live, Search Console’s URL Inspection tool and its rich result reports tell you whether Google actually found the markup and keeps reading it.

Most “best schema testing tools” lists treat these as rivals. They aren’t. Each one answers a different question, and the mistakes slip through when you use one tool for a job it was never built to do. Below is a pick for each situation, a side-by-side table, and what each tool’s errors mean.

Which tool to use for each job

  • You added markup and want to know if Google can show a rich result for it: Rich Results Test. Google’s own structured data docs call it “the official Google tool” for this and say to start there.
  • You want to know if the code itself is correct, for any type: Schema Markup Validator. Google describes it as the tool to “test all types of schema.org markup, without Google-specific validation.”
  • The page is live and you want to know if Google saw the markup: URL Inspection in Search Console.
  • You want to know if markup stays valid across the whole site over time: the rich result reports in Search Console, if your type has one.
  • You need to check hundreds of pages at once: a crawler such as Screaming Frog’s SEO Spider.
Rich Results Test Can this page get a Google rich result? free, no login
Schema Markup Validator Is this valid schema.org, for any type? free, no login
URL Inspection Did Google find it on the page it indexed? needs Search Console
Rich result reports Is it still valid across the site this month? 19 types only
fig 1 · the four free tools and the one question each answers

If you only have time for one, use the Rich Results Test on the live URL. If your markup type isn’t one Google shows as a rich result, use the validator instead, because the Rich Results Test won’t say much about it.

The tools side by side

Tool Checks against How you test Account needed Best for
Rich Results Test Google’s rules for 31 rich result types A URL or pasted code No Before and right after launch
Schema Markup Validator The whole schema.org vocabulary A URL or a code snippet No Typos, wrong types, markup Google doesn’t use
URL Inspection What Google found when it last indexed the page A URL in your property Verified Search Console property Confirming Google saw the markup
Rich result reports Google’s rules, on a sample of your pages Nothing, they update on their own Verified Search Console property Spotting breakage after a site change
Screaming Frog SEO Spider schema.org and Google rich result rules A full crawl Paid licence for validation Auditing a whole site

Rich Results Test: what it checks and where it falls short

Google’s Rich Results Test help page lists the 31 result types it checks, including Local business, Organization, Product snippet, Review snippet, Recipe, Event and Video. It reads JSON-LD, RDFa and Microdata, tests as a smartphone by default, and can preview how some results might look in Search. A Share button makes a link anyone can open, valid for about 90 days.

You get one of a few outcomes: “Page is eligible for rich results”, valid items with warnings, invalid items, or “Structured data with syntax errors detected.” The difference that matters:

  • Errors (invalid items) usually mean a required property is missing or there is a syntax error, which is how Google’s JavaScript guide sums them up. Google’s general guidelines say items missing required properties can’t earn rich results. Fix these.
  • Warnings usually mean a recommended property is missing. The item still qualifies. Add the property only if the information is true and shown on the page, because Google also says “don’t mark up content that is not visible to readers of the page.”

Three limits catch people out:

  1. It can’t test a page that blocks Google. The tool fetches as Google-InspectionTool, so a page blocked by robots.txt or carrying a noindex tag can’t be tested by URL. Most staging sites are set up exactly like that. Paste the code instead.
  2. Code mode can miss JavaScript markup. Google’s JavaScript structured data guide recommends the URL option over pasted code because of JavaScript limits such as CORS. If you add schema through Google Tag Manager or a script, test the live URL.
  3. It ignores everything outside its 31 types. FAQ markup is the obvious example: Google stopped showing FAQ results, as our FAQ schema guide explains, so the Rich Results Test no longer judges it. Properties Google doesn’t read, such as areaServed or sameAs on a business, also get no check here.

A pass means eligible, nothing more. Google’s guidelines state plainly that “Google does not guarantee that your structured data will show up in search results.”

Schema Markup Validator: the spell checker

The validator is the old Structured Data Testing Tool in a new home. Google announced in December 2020 that it would move the tool to schema.org and drop the Google checks, and the new version at validator.schema.org became stable in August 2021. It has two tabs, Fetch URL and Code snippet, and it checks every type in the vocabulary, including ones Google has no rich result for.

Its strength is catching things that are simply wrong. To show you, we pasted markup for a made-up auto repair shop in Columbus, Ohio, into the Code snippet tab with one typo: addres instead of address. The JSON was valid, so it parsed without complaint, and every other property passed. The validator flagged the one problem:

code snippet · @type: AutoRepair
AutoRepair · 1 error · 0 warnings name, telephone, openingHours, areaServed, priceRange: no errors
addres The property addres is not recognized by the schema (e.g. schema.org) for an object of type AutoRepair. error
Fix rename "addres" to "address" and test again
fig 2 · the schema markup validator's real response to a made-up auto shop's markup with one typo, tested november 12, 2026 (layout simplified)

That typo matters more than it looks. Google lists address as a required property for local business markup (see our local business schema template), so a misspelled one means the shop’s markup can’t qualify, and a quick glance at a long block of code won’t show why. The validator names the exact line.

What it won’t tell you: whether Google will use the markup. It has no idea which properties Google requires for a rich result, so a clean validator report with no image on a Recipe still fails in Google’s tool. Treat it as the spelling and grammar check, and the Rich Results Test as the check against Google’s rules.

The validator also reports JSON syntax problems, with the message “There was an error parsing your JSON-LD.” That usually means a missing comma, a trailing comma after the last property, or a curly quote pasted in from a word processor.

Search Console: proof that Google found it

The two testing tools check a page as it is right now. Search Console shows what Google actually saw.

URL Inspection reports any rich result types Google detected the last time it indexed the URL, under Detected items, with issues marked (Google’s help page). Run a live test after a change and click View tested page to see a screenshot and the rendered HTML. Google’s own introduction to structured data uses this step to confirm “Google has found your structured data.” Note that Google says not all rich result types are supported in the tool yet, and there is a daily limit on inspections per property.

Rich result reports in Search Console track one type each. The report help page says they “show a sample of detected items,” count items rather than pages, and mark each one valid or invalid. A report only appears once Google finds valid markup of that type.

Check which types get a report before you rely on one. Google lists 19, including Breadcrumbs, Events, Merchant listings, Product snippets, Recipes, Review snippets and Videos. Local business and Organization are not on the list. So if you run an auto shop, a law firm or any other local business, no report will warn you when a theme update breaks your LocalBusiness markup. Re-run the Rich Results Test on your key pages after any site change instead.

Testing a whole site

The free tools work one page at a time. For a site with hundreds of product or location pages, a crawler does the same checks in bulk. Screaming Frog’s structured data guide says the SEO Spider validates JSON-LD, Microdata and RDFa against both schema.org and Google’s rich result rules once you tick the options under Configuration, Spider, Extraction, and exports every error with its URL. The guide says validation needs a paid licence.

You don’t need a crawler for a small business site with a handful of pages. The Rich Results Test on each template (home, service page, location page, blog post) covers it, because pages built from the same template share the same markup.

A testing routine from draft to live

step_01 Validator on the code Catch typos and syntax first.
step_02 Rich Results Test, code mode Check Google's required properties. staging is often noindex
step_03 Rich Results Test, live URL Catches markup added by scripts.
step_04 URL Inspection Confirm Google detected it.
step_05 Watch or re-test Report if your type has one, retest after site changes if not.
fig 3 · the order to use the tools, from first draft to a page google has indexed
  1. Paste the draft markup into the Schema Markup Validator’s Code snippet tab and clear every error. Our free local business schema generator gives you a clean starting block if you’re writing LocalBusiness by hand.
  2. Paste the same code into the Rich Results Test’s Code option. Fix errors, and decide on each warning: add the property if it’s true and on the page, ignore it if not.
  3. Publish, then run the Rich Results Test again on the live URL. This is the test that counts, because it sees what Google’s crawler sees, including markup added by a plugin or Tag Manager.
  4. Inspect the URL in Search Console. Request indexing if you want Google to pick up the change sooner.
  5. If your type has a rich result report, check it a few weeks later. If it doesn’t, add “re-test the schema” to your list for every theme, plugin or template change, the same way our technical SEO checklist treats structured data.

Step 3 is the one people skip. Markup that passes as pasted code can still fail on the live page, because a plugin may output a second, conflicting block or a script may load too late. Only the live URL test shows you the version Google gets.

FAQ

What happened to Google's Structured Data Testing Tool?

Google retired it. The schema.org checks moved to the Schema Markup Validator at validator.schema.org, which became stable in August 2021, and Google’s rich result checks live in the Rich Results Test. The old address now sends you to a page that helps you pick between the two.

Is there a free schema markup testing tool?

Yes, the main ones are all free. The Rich Results Test and the Schema Markup Validator need no account at all, and URL Inspection and the rich result reports come free with a verified Search Console property.

Why does my schema pass the validator but fail the Rich Results Test?

The validator only checks that your code follows the schema.org vocabulary. The Rich Results Test also checks Google’s own required properties for each rich result type, so valid schema.org that leaves out a property Google requires will pass one and fail the other.

Can I test schema on a page that isn't live yet?

Yes. Paste the code into either tool instead of a URL. URL testing won’t work on a staging page that blocks crawlers with robots.txt or noindex, so use code mode there and test the live URL once the page is published.

Test with two tools, then let Search Console watch

Run the validator for correctness and the Rich Results Test for Google’s rules, always finishing on the live URL. Then let URL Inspection confirm Google saw it. For local business markup, which has no Search Console report, put a re-test on your list for every site update, because nothing else will tell you it broke.

Portrait of Liam Fraser
// written byLiam FraserSEO specialist with 3 years of experience. Liam writes about what works in local, technical and AI search.About SerpSurfers →