Skip to content
New: free AI crawler checker. See if ChatGPT and Claude can read your site. Check now
Get a free audit
Get a free audit Contact us +91 96211 05242

Popular

Guide SEO Intermediate

Rich Results Test and Schema Markup Validator

Test structured data the right way: Google eligibility, schema.org validity, product and clinic markup, WordPress plugin output and site-wide monitoring.

  • 28 minRead time
  • 5 stepsWith a checklist
  • 18 Oct 2026Updated

Quick answer

The Rich Results Test is Google's free check of a page's structured data against the rich results Google still shows. The Schema Markup Validator at validator.schema.org checks any schema.org markup, with no Google rules. Use the first to see eligibility, the second for validity, and Search Console to watch the whole site.

  • Reviewed by Eram N. on 18 Oct 2026
  • 7 sources linked
  • Slides, checklist inside
  • Updated 18 Oct 2026

Aijaz AlamFact-checked and reviewed by Eram N.

Tick the steps as you go. Progress is saved on this device.

Chapter 1 of 5
5 min

What the Rich Results Test and the Schema Markup Validator check

This guide is for whoever adds or checks schema on a site: a freelancer looking after a Delhi clinic's WordPress site, a developer at a D2C brand shipping a new product template, or an SEO who's been told "the stars disappeared". You should know what structured data is. If you don't, read Guide 2's structured data basics first; the chapter takes about 11 minutes.

By the end you'll be able to pick the right test for the job, run a URL or code test and read every part of the result, tell an error from a warning, test a page that isn't live yet, and set up Search Console so a broken template doesn't go unnoticed for months.

There are five chapters, about 28 minutes of reading. Chapter 1 explains what each tool checks and which rich results still exist in October 2026. Chapter 2 walks through the Rich Results Test screen by screen. Chapter 3 covers the Schema Markup Validator and our own validator. Chapter 4 works through four real jobs: a product page, a missing field, a clinic's LocalBusiness markup and a WordPress plugin's output. Chapter 5 covers Search Console monitoring, cost and the alternatives. Every tool here is free; the one paid alternative's price was checked on 18 October 2026.

For markup across thousands of pages, see Guide 3's structured data chapter. For the Search Console reports in full, see our Google Search Console guide.

Quick answer

The Rich Results Test checks your markup only against the rich result types Google supports today, and tells you if a page is eligible. The Schema Markup Validator checks any schema.org type and property, with no Google rules. A page can pass the second and fail the first. Neither one guarantees a rich result.

Two free tools, two different questions. People mix them up because Google used to have one tool for both jobs. It split them in 2020 and 2021, and a lot of older advice still names the old tool.

Two tools, two questions

Rich Results TestSchema Markup Validator
Question it answersCan this page get a Google rich result?Is this valid schema.org markup?
Addresssearch.google.com/test/rich-resultsvalidator.schema.org
Types it knowsOnly Google-supported rich result typesAll schema.org types
FormatsJSON-LD, RDFa, MicrodataJSON-LD, RDFa, Microdata
InputURL or pasted codeURL or pasted code
Preview of the resultYes, for some typesNo
CostFreeFree

Google's own advice is to start with the Rich Results Test "to see what Google rich results can be generated for your page", and to use the Schema Markup Validator for generic schema validation, "without Google-specific validation".[1] The Rich Results Test supports JSON-LD, RDFa and Microdata.[2] So does the validator, which schema.org says checks all three formats.[3]

Diagram: one JSON-LD Product block in the middle. An arrow to the Rich Results Test asks whether it is eligible for a Google rich result (Google types only, with a preview); an arrow to the Schema Markup Validator asks whether it is valid schema.org markup (every type, no Google rules); an arrow marked after launch goes to Search Console, which asks whether it is still working across the site.Eligibility, validity and monitoring are three different checks. Drawn by us.

Where the Schema Markup Validator came from

For years Google ran the Structured Data Testing Tool, which did both jobs. In December 2020 Google said it would move that tool to a new domain serving the schema.org community, and that it "will no longer check for Google Search rich result types".[4] Schema.org opened validator.schema.org in beta on 21 May 2021. It says the tool doesn't try to check your content against the needs of specific services. It runs on Google's structured data infrastructure, hosted by Google for the schema.org project.[3] In August 2021 Google said the validator had stabilised and began sending the old tool's visitors to a landing page to pick the right one.[4]

So when an old blog post tells you to "check it in the Structured Data Testing Tool", it means one of these two, depending on the question.

What the Rich Results Test can still find in 2026

The Rich Results Test is only as useful as the list of rich results Google still shows, and that list has shrunk. Google's search gallery listed 25 structured data features when we checked in October 2026, from Article and Breadcrumb to Product, Recipe, Review snippet and Video.[5] FAQ and HowTo aren't among them. The recent removals, from Google's changelog:

WhenWhat changed
August to September 2023FAQ rich results limited to well-known government and health sites; HowTo cut to desktop, then no longer shown from 13 September 2023, with Rich Results Test support dropped 30 days later[6]
September 2025Docs removed for course info, estimated salary, learning video, special announcement and vehicle listing, which no longer appear in results[7]
November 2025 to January 2026Practice problem markup phased out, including in the Rich Results Test from January 2026; Dataset markup used only by Dataset Search[7]
7 May 2026FAQ rich results stop showing in Google Search; FAQ docs removed on 15 June 2026[7]

The newest structured data entry in the changelog when we checked was 24 September 2026, a creator property for VideoObject.[7] Guide 2 has the full removal timeline, including the July 2026 rule on fake and incentivised reviews.

Warning

Don't trust a single list. On the day we checked, the Rich Results Test help page still listed Practice Problems among its supported types,[2] months after Google removed them. When the help page, the gallery and the changelog disagree, the changelog is the most recent word.

What a pass does and doesn't mean

A green result in the Rich Results Test means the markup meets Google's technical rules. That's all. Google says plainly that it "does not guarantee that your structured data will show up in search results, even if your page is marked up correctly according to the Rich Results Test". It lists the usual reasons: the algorithm picks another layout, the markup doesn't represent the main content, it describes hidden content, or it breaks a guideline the test can't catch.[8]

Neither tool affects rankings, either. Rich results change how a listing looks, not where it sits; Guide 2 has the evidence.

When you don't need either tool

  • You haven't changed anything. If an SEO plugin writes your markup and Search Console's reports are clean, a weekly re-test is busywork.
  • The type has no rich result. FAQPage, HowTo or a type Google never supported won't show anything useful in the Rich Results Test. Use a schema.org validator to check it's well-formed, then move on.
  • You want site-wide numbers. These tools test one page at a time. For hundreds of URLs, use Search Console's reports (chapter 5) or a crawler.

Next, the Rich Results Test itself, screen by screen.

Chapter 2 of 5
7 min

Running the Rich Results Test and reading the result

Quick answer

Test a live URL as a smartphone, the default, or paste code for a page that isn't public. Read the status line, the Crawling details and each detected item. Errors make an item ineligible; warnings only limit how it looks. View tested page shows the rendered HTML Google worked from, and the preview shows a possible layout.

URL or code

The start screen has two tabs. URL takes the full address of a public page. Code takes a pasted snippet, which you can edit and re-test with Run test as often as you like.[2]

Use URL whenever the page is live. It tests what Google actually gets from your server, after scripts run, including any markup a plugin or tag added. Google's page on JavaScript-generated markup recommends the URL input over the code input, because the code input has JavaScript limitations such as CORS restrictions.[9] Code is for markup you're still writing, or for a page that isn't public yet (more on that below).

Smartphone or desktop crawler

Under the input box you choose the user agent. Smartphone is the default, "as this is how the majority of users browse the web today".[2] Leave it. Google indexes the mobile version of a site; when it limited HowTo results to desktop in 2023, it reminded site owners that the mobile version still had to carry the markup.[6] Switch to desktop only to check a page that serves different HTML to desktop browsers.

Either way, the test fetches the page as Google-InspectionTool. It doesn't use your login, and a robots.txt rule can block it.[2]

The status line

The top of the result is one line. The help page lists these values, where N is a count of items:[2]

  • N valid item(s) detected
  • N valid item(s) with warnings detected (or "All have warnings", "Some have warnings")
  • N items detected: Some are invalid
  • N invalid item(s) detected
  • No items detected
  • Structured data with syntax errors detected
  • URL cannot be crawled

When it works, you'll also see the message "Page is eligible for rich results".[9] Sometimes the page has markup, but none of it is a type the test knows, such as FAQPage or HowTo today. Then the test says "No items detected" and "No rich results detected in this URL" (what we saw in October 2026 for a page with only FAQPage markup). That's not an error in your markup. It means "nothing here for Google Search", and the Schema Markup Validator is the right place to check it instead.

Redrawn Rich Results Test result for example.in/kurta-indigo: the status line 2 valid items with warnings detected (1), Crawled successfully as Google Inspection Tool smartphone with crawl allowed and page fetch successful (2), detected items Merchant listings with 2 warnings and Product snippets with 1 warning (3), the View tested page button (4) and the Preview results button (5).Read the status, then Crawling, then each rich result type. Drawn by us; the figures are made up.

Crawling: could Google get the page at all?

Open the Crawling details before anything else. They show whether the page was crawled successfully, which user agent it was "Crawled as", whether robots.txt allows the crawl ("Crawl allowed?") and whether the "Page fetch" worked.[2] A robots.txt block or a noindex means the page can't be tested. When the fetch fails, the help page lists the usual causes: DNS errors, a server that refuses the connection, an invalid SSL certificate, an unreachable robots.txt, or "Hostload exceeded".[2] Our Robots.txt Tester, HTTP Status Checker and SSL Checker cover the robots.txt, server and certificate causes.

A warning about unloadable resources is different. It means some images, CSS or scripts didn't load during the test, and the result can vary from one run to the next. Run it again; if it keeps happening, find out why the resource is slow or blocked.[2]

Detected items: errors and warnings

Below the status, each rich result type found gets a row. Expand it to see each item and its issues, and click an issue to jump to that line in the code explorer, which shows the rendered source.[2]

The difference between the two kinds of issue is the most useful thing to know about this tool. Google put it simply when the test left beta: errors "disqualify your page from showing up as a rich result", while with warnings "your page is still eligible". Its example was a missing image: the page could still get the rich result, just without the picture.[10] Search Console calls the same split critical and non-critical issues.[11]

You seeWhat it meansWhat to do
Error (critical)A required property is missing or wrong; the item can't get the rich resultFix it before you publish
Warning (non-critical)A recommended property is missing; the item is eligible but may show lessFix it if the data is real and visible on the page; otherwise leave it
Syntax errors in items of unknown typeThe parser stopped before it could tell what the block was, for example invalid JSON or a missing commaFix the syntax first; new warnings may appear once it parses

Never add a property just to clear a warning. A product page without customer reviews will often show a warning about review or aggregateRating;[12] the fix is to collect real reviews, not to invent a rating. Google's guidelines treat fake reviews as grounds for a manual action.[8]

One more trap: the test ignores comments inside JSON-LD, but comments aren't valid JSON-LD and can cause errors in real use, so remove them before you publish.[2]

View tested page: rendered HTML and a screenshot

The View tested page button opens what Google worked from after rendering the page.[13] Google's JavaScript troubleshooting guide names the Rich Results Test, with URL Inspection, as the way to see how Google crawls and renders a URL: loaded resources, console output and exceptions, and the rendered DOM.[14] It has the same HTML, Screenshot and More info tabs as URL Inspection's live test.[15] This is the quickest way to answer "is my JSON-LD there after JavaScript runs?" for a page you don't own in Search Console. Guide 3's rendering chapter uses it the same way.

The preview

For some types, Preview results shows how the result might look in Google Search, with desktop and mobile layouts where they differ. Google says it doesn't guarantee your page will look like that, or that any of the views will be used.[2] Use it to sanity-check that the price and name come out right, not as a promise to a client.

Share and history

The Share button gives a link anyone can open, valid for about 90 days. Each run also has its own URL, which you can bookmark as a history; Google keeps those for about 90 days too, and anyone with the link can open them.[2] That's handy for sending a developer the exact failing test. It's also why a code test with anything private in it shouldn't be shared.

Testing a staging site or a page that isn't live

The URL test needs every page resource to be reachable by an anonymous user from the internet. Pages behind a firewall or a password won't work.[2] You have two ways round it:

  1. Paste the code. Open the staging page in your browser, copy the JSON-LD (or the whole rendered HTML from developer tools) and use the Code tab. Fast, and fine for checking properties. It won't show you what a crawler gets from the server.
  2. Open a tunnel. Google suggests a tunnelling tool such as ngrok, which gives a public URL that points at a page on your machine or behind a firewall.[16] Then run the URL test on that address. Close the tunnel when you're done, and keep staging out of the index with a password or noindex once testing is over.

A staging site behind HTTP authentication can't be URL-tested as it stands: paste the code, or point a tunnel at a copy that doesn't ask for a password. That's by design, and it's a good reason to keep staging locked.

Next, the other validator, and ours.

Chapter 3 of 5
4 min

The Schema Markup Validator, and our own validator

Quick answer

Use the Schema Markup Validator for any schema.org type, including ones Google ignores, in JSON-LD, RDFa or Microdata. Use our Schema Markup Validator for a fast JSON-LD check: syntax, @context, @type and baseline fields for 18 common types, plus where each block sits. Neither tells you about Google eligibility; that's the Rich Results Test.

What validator.schema.org checks

Schema.org describes its validator as dedicated to checking that you use JSON-LD, RDFa and Microdata "in widely understood ways", and to warning you when you use schema.org types and properties in unusual combinations. It doesn't check your content against what specific services or products need.[3] Google's example of when to use it: you only want to confirm you're using valid schema.org properties, or you're testing a type Google doesn't consume, such as ExercisePlan.[4]

In practice, open validator.schema.org, choose Fetch URL or Code snippet, and click Run test. The result lists every item it found by type, with its properties and a count of errors and warnings, and flags anything it couldn't parse. It's the right tool for:

  • FAQPage and HowTo markup that you keep for readers and other systems, now that Google shows neither (chapter 1).
  • WebSite, WebPage and Person nodes, the parts of a plugin's graph that have no rich result of their own.
  • Types such as Service or MedicalProcedure, which Google doesn't use for any rich result.
  • Microdata or RDFa from an old theme.

What it can't tell you: whether Google will use the markup, which properties Google requires, or whether the page can be crawled. A page can be perfectly valid schema.org and still have no chance of a rich result.

Our Schema Markup Validator

Our free Schema Markup Validator has two modes, Fetch from URL and Paste markup. You click Validate Schema and get a summary of how many schemas it found and how many issues, then one card per block.[17] Each card shows:

  • JSON syntax errors, with the parser's own error message;
  • whether the block declares schema.org as its @context;
  • every @type found, including items inside an @graph, and entities with no type at all;
  • missing baseline fields for 18 common types, such as headline, image or offers;
  • whether the block sits in the head or the body, and roughly where;
  • the formatted JSON, so you can read the values.

The 18 types with a field checklist include Article, NewsArticle and BlogPosting (headline, author, datePublished, image), Product (name, image, offers), Organization (name, url), LocalBusiness (name, address), Event, Recipe, VideoObject, BreadcrumbList, JobPosting and FAQPage.[17] It's free with no sign-up. Pasted code can be checked as often as you like; fetching URLs is limited to 10 checks a minute and 100 an hour, and pasted code isn't stored.[17]

Know its limits, because the tool page lists them itself:[17]

  • JSON-LD only. No Microdata or RDFa.
  • No JavaScript. URL mode reads the raw HTML the server sends, so schema injected by a tag manager or app after load isn't seen. Copy the rendered code from your browser's developer tools and use Paste markup.
  • Exact type names. A more specific type, such as Restaurant instead of LocalBusiness, is detected and its JSON checked, but its field list isn't. This matters for clinics (chapter 4).
  • No Google eligibility. It doesn't check Google's recommended fields or rich result rules, and it can't guarantee a rich result.

The raw-HTML point cuts both ways. If our tool finds your Product block in URL mode, it's in the HTML your server sends, which is where a shop's Product markup is safest (Guide 3 explains why). If it finds nothing but the Rich Results Test does, your markup is most likely being added by JavaScript.

Free tool: Schema Markup ValidatorExtract and validate the structured data (JSON-LD) on a page.
Try it free

Which validator for which job

JobOur Schema Markup Validatorvalidator.schema.orgRich Results Test
Is the JSON broken?Yes, with the parse errorYesYes
Which blocks and types are on the page, and where?Yes, head or bodyTypes, not positionGoogle types only
Duplicate blocks from a theme and a pluginEasy to spot: one card per blockListed as separate itemsOnly for Google types
Microdata or RDFaNoYesYes
Markup added by JavaScriptPaste the rendered codeNot documented; the source it fetches is the raw HTMLYes, URL test renders the page
Google rich result eligibility and previewNoNoYes
Page not publicPaste markupPaste codePaste code or tunnel

Our order on a real job: our validator first to see every block and spot duplicates, the Rich Results Test for anything Google can show, and validator.schema.org for the rest. Chapter 4 puts that order to work.

Chapter 4 of 5
7 min

Step by step: four real testing jobs

Quick answer

Test a product page by URL and read both Merchant listings and Product snippets. Fix a missing field at its source, then re-test by code and by URL. Mark up a clinic with the most specific LocalBusiness type and only facts shown on the page. On WordPress, check what the plugin prints and remove duplicate blocks.

Task 1: test a product page

A D2C kurta brand (made up for this example) has just moved to a new product template. Before it goes on every product, test one.

Test a product page in the Rich Results Test

15 minFree
  1. See every block first Paste the product URL into our Schema Markup Validator in Fetch from URL mode. Note how many blocks it finds and whether Product appears once, with name, image and offers.
  2. Run the URL test Open the Rich Results Test, paste the same URL, keep Smartphone and click Test URL.
  3. Check Crawling Expand the crawl details: crawled successfully, Crawl allowed? yes, Page fetch successful. If not, fix access before anything else.[2]
  4. Open both product types A shop's product page can show up under Merchant listings and under Product snippets. Merchant listings are for pages where the customer can buy from you; product snippets also cover review pages.[12] Read the errors and warnings in each.
  5. Compare with the page Price, currency, stock and name in the detected item must match what a shopper sees.
  6. Preview and share Click Preview results to check the name and price come out right, then use Share to send the result link to the developer.[2]

What the two types need is different, which is why one can pass while the other fails. For product snippets Google requires name plus one of review, aggregateRating or offers, and the test may warn if you give offers without a review or rating.[12] Merchant listings require name, image and an offers Offer with a price above zero, and priceCurrency is required there.[18]

Task 2: fix a missing field

Say the new template forgot the image and the currency. The block looks like this:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Indigo block-print cotton kurta",
  "offers": {
    "@type": "Offer",
    "price": "1499",
    "availability": "https://schema.org/InStock"
  }
}

Product snippets may still pass with a warning, because priceCurrency is only recommended for them.[12] Merchant listings will report critical issues, because image and priceCurrency are both required there.[18]

Fix a missing required field and re-test

20 minFree
  1. Read the issue Expand the invalid item and click the issue; the code explorer jumps to the block.[2]
  2. Look the property up Open Google's documentation for that rich result type and check the property's expected value. priceCurrency takes a three-letter ISO 4217 code, so INR for rupees.[12]
  3. Find the value on the page The product photo and the rupee price are already visible. If a value isn't on the page, don't add it to the markup.[8]
  4. Fix it at the source Change the template, plugin setting or product field that writes the markup, not one page by hand.
  5. Re-test as code Paste the new block into the Code tab and click Run test until the item is valid.
  6. Re-test the live URL After you deploy, run the URL test again, then check the Search Console report (chapter 5).

The fixed block:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Indigo block-print cotton kurta",
  "image": "https://example.in/img/indigo-kurta-1x1.jpg",
  "offers": {
    "@type": "Offer",
    "price": "1499",
    "priceCurrency": "INR",
    "availability": "https://schema.org/InStock"
  }
}

Google recommends several high-resolution images, at least 50,000 pixels (width times height), in 16x9, 4x3 and 1x1 ratios.[18] Add them when the template can.

Diagram: a Product block from a new template with image and priceCurrency missing, marked red; the Rich Results Test before the fix shows Merchant listings invalid with 2 critical issues and Product snippets valid with warnings; the fixed block adds an image URL and priceCurrency INR, marked green, and after the fix both types are valid.Merchant listings need image and priceCurrency; product snippets only recommend the currency. Drawn by us, example made up.

Task 3: LocalBusiness markup for a Delhi clinic

A dental clinic in Hauz Khas (name and details made up) wants its address, phone and hours in machine-readable form. Google asks for the most specific LocalBusiness subtype that fits;[19] on schema.org, Dentist sits directly under LocalBusiness,[20] and MedicalClinic sits under LocalBusiness through MedicalBusiness.[21] A dentist's practice uses Dentist; a multi-speciality clinic uses MedicalClinic.

Google requires only name and address. It recommends telephone (with country and area code), url, geo with at least five decimal places, openingHoursSpecification and priceRange under 100 characters.[19]

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dentist",
  "name": "Hauz Khas Dental Care",
  "url": "https://example.in/",
  "telephone": "+91-11-4000-0000",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "First floor, 14 Hauz Khas Village",
    "addressLocality": "New Delhi",
    "addressRegion": "Delhi",
    "postalCode": "110016",
    "addressCountry": "IN"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 28.55412,
    "longitude": 77.19406
  },
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
    "opens": "10:00:00",
    "closes": "20:00:00"
  }]
}
</script>

Validate LocalBusiness markup for a clinic

20 minFree
  1. Match the page and the profile Name, address, phone and hours must be the same as on the contact page and the Google Business Profile.
  2. Check the JSON in our validator Paste the block into our Schema Markup Validator. It detects Dentist and checks the JSON, but its field checklist matches exact type names, so it won't list missing fields for Dentist the way it does for LocalBusiness.[17] Check name and address yourself.
  3. Run the Rich Results Test Test the live contact page by URL. Look for a "Local businesses" item and read its warnings. A Dentist block showed there when we tested in October 2026, with an Organization item beside it.
  4. Leave out reviews Don't add aggregateRating or review for the clinic's own testimonials. Google recommends those properties only for sites that capture reviews about other local businesses.[19]
  5. Check with URL Inspection Search Console has no Local business report (chapter 5), so after the next crawl, inspect the page there, open View crawled page and check that the JSON-LD block is in the HTML Google crawled. URL Inspection doesn't list Local business under Detected items.[15]

The point of the markup is consistency, not stars. Guide 2 covers local SEO in depth, and our Google Business Profile guide covers the profile itself.

Task 4: check the JSON-LD a WordPress plugin adds

Most small business sites in India don't write JSON-LD by hand; a plugin does. Yoast outputs a "base script" on every page: one @graph describing the WebPage, the WebSite and the Organization (or Person), extended with the page's main entity and linked by @id.[22] Rank Math sets a default schema type per post type and lets you change it per page.[23] The usual problem isn't missing markup. It's two sources printing the same thing: a theme or shop plugin adding its own Organization or Product next to the SEO plugin's.

Check a WordPress plugin's structured data output

20 minFree
  1. Pick three pages The home page, one post and one product or service page. Each gets different markup.
  2. Count the blocks Run each URL through our Schema Markup Validator. One card per block, with its position, makes a second Organization or Product easy to spot.[17]
  3. Find the source of each block View the page source near each script. A Yoast graph is one @graph with WebPage, WebSite and Organization nodes; a block outside it usually comes from the theme or another plugin.
  4. Run the Rich Results Test by URL This shows the rendered page, so it also catches markup added by JavaScript that our validator's URL mode can't see.
  5. Check the rest on validator.schema.org WebPage, WebSite and Person nodes have no Google rich result, so validate them there.
  6. Switch off the duplicate Turn off schema output in the theme or the second plugin, never the SEO plugin's graph, then re-test all three pages.

If you use Rank Math PRO, its Code Validation tab shows the page's JSON-LD and has a Test with Google button that opens the Rich Results Test with the code pasted in. Rank Math pastes code rather than the URL so it works before the page is live.[23] For the plugins themselves, see our Yoast SEO and Rank Math guides.

Redrawn result of our Schema Markup Validator for a WordPress home page: 3 schemas found, 1 issue. Block 1 is the SEO plugin's @graph with Organization, WebSite and WebPage in the head; block 2 is a second Organization from the theme in the body, marked duplicate; block 3 is a BreadcrumbList in the head.One card per block makes a theme's duplicate Organization easy to spot. Drawn by us; the figures are made up.

Note

From our work: when I taught SEO. My students were already doing client work, and technical SEO was the hardest part for them, because the local business sites they handled mostly ran on WordPress with shared hosting. Our view: on sites like those the plugin writes the markup, so the real skill is checking what it prints, page type by page type, not writing JSON-LD from scratch.

Once the markup is right on three pages, chapter 5 shows how to keep it right on all of them.

Chapter 5 of 5
5 min

Monitoring in Search Console, cost and alternatives

Quick answer

After launch, watch Search Console: one rich result report per supported type under Enhancements, or Shopping for products, plus an Unparsable structured data report and URL Inspection for single pages. Fix, then click Validate fix. Every tool in this guide is free; a paid crawler only makes sense for checking thousands of pages.

The rich result reports

The two tests check one page at a time, once. Templates break later. Google's own advice is to use the Rich Results Test during development and the rich result status reports after you deploy. Templating or serving problems can break markup that was fine on day one.[24]

Search Console adds a report for each rich result type it finds, under Enhancements, or under Shopping for product snippets and merchant listings. A report appears only if Google finds valid markup of a supported type.[11] Each one has:

  • a chart of valid and invalid items over time (items, not pages);
  • "Why items are invalid", the critical issues that stop items appearing as rich results;
  • "Improve item appearance", the non-critical ones;
  • a list of valid items, under View data about valid items.[11]

Two limits to keep in mind. The reports show a sample of items, not every one. And the issue examples table stops at 1,000 rows.[11] For any single URL, inspect it, or run the Rich Results Test.

Redrawn Search Console Merchant listings report under Shopping: valid items fall and invalid items jump from about 20 to 260 on the day of a deploy of a new template (1); the Why items are invalid table (2) lists Missing field image on 240 items (3) and Missing field priceCurrency on 20, both with validation not started.A jump in invalid items on a deploy date usually means a template. Drawn by us; the figures are made up.

Which types get a report, and which don't

The list is shorter than the Rich Results Test's. When we checked, Search Console had reports for breadcrumbs, datasets, discussion forum, education Q&As, events, hotels, image metadata, job postings, math solvers, merchant listings, product snippets, profile pages, Q&As, recipes, review snippets, subscribed content, vacation rentals and videos, plus practice problems, which the help page hadn't yet removed.[11] Local business, Organization and Article aren't on that list. For a clinic's LocalBusiness or a blog's Article markup, URL Inspection won't list them under Detected items either,[15] so re-test a sample of pages in the Rich Results Test after each deploy, and use View crawled page in URL Inspection to check the block is in the HTML Google crawled.

Unparsable structured data

If Google finds markup so broken it can't tell what type it was meant to be, it lists it in a separate Unparsable structured data report. Everything in it is a critical error, and a single error on many pages usually means a template.[25] Fix it, and don't be surprised by new warnings: once a block parses, issues that were hidden can show up.[25]

URL Inspection for one page

URL Inspection shows Google's indexed version of a page, including any rich results found, with a Live Test for the current version.[15] Expand Detected items to see the structured data and its issues. Not every rich result type is shown there yet, and for an editable debugger Google points you back to the Rich Results Test.[15] It only works for URLs in your own property; for anyone else's page, use the Rich Results Test.[15] The Google Search Console guide covers both tools screen by screen.

Fix a broken template and confirm it in Search Console

30 min, then up to two weeksFree
  1. Spot the jump In the report for that type, look for a date where invalid items rose. Match it to a deploy or plugin update.
  2. Open the issue Click the row in "Why items are invalid" and note the first detected date and the example URLs.[11]
  3. Test one example Run it through the Rich Results Test by URL and fix the template (chapter 4).
  4. Re-test three URLs One normal page and two edge cases, such as out of stock and no reviews.
  5. Validate Click Validate fix on the issue page. In the Page indexing report Google says validation typically takes up to about two weeks;[26] the rich result report shows the validation status for the issue.[11]

There's no "fix this issue" button, and Google explains why: the markup lives on your site, so the fix has to go into your source code.[11]

What it costs

Nothing. The Rich Results Test, validator.schema.org, Search Console and our Schema Markup Validator are all free, with no paid tier. The only paid option most small teams meet is a crawler that validates structured data across a whole site. Screaming Frog's SEO Spider is free up to 500 URLs. Structured data validation is a paid licence feature: £199 a year for one licence on its pricing page (checked 18 October 2026).[27] Our Screaming Frog guide has the rupee and dollar figures.

Pros

  • Free, no sign-up for the tests
  • Shows exactly which Google rich results a page can get, with a preview
  • URL test renders JavaScript and shows the rendered HTML
  • Works on any public page, including competitors'
  • Errors and warnings use the same split as Search Console

Cons

  • One page per test; no bulk mode
  • Knows only Google-supported types, so FAQ, HowTo and many useful types show nothing
  • A pass doesn't guarantee a rich result
  • Can't reach staging or password-protected pages without a tunnel
  • Help pages sometimes lag behind Google's changelog

Alternatives, and which one when

ToolCostUse it when
Our Schema Markup ValidatorFreeYou want every JSON-LD block on a page, its position, syntax errors and missing baseline fields, fast
Rich Results TestFreeYou need Google eligibility, a preview, or the rendered HTML
validator.schema.orgFreeThe type has no Google rich result, or the markup is Microdata or RDFa
Search Console reports and URL InspectionFreeThe markup is live and you need to know when it breaks
Rank Math PRO Code ValidationPart of Rank Math PROYou're on WordPress and want to test a draft before it's live
Screaming Frog SEO Spider (paid licence)£199 a yearYou need to validate markup on thousands of URLs in one crawl

Writing the markup is a separate job. Our free Schema Markup Generator writes it for the types Google still supports, with the required and recommended fields marked, and hands the block to the validator with one click.

If you'd like us to set up and monitor structured data for you, see our SEO service or get a quote. Then take the 10-question quiz below.

Free tool: Schema Markup ValidatorExtract and validate the structured data (JSON-LD) on a page.
Try it free

Test yourself

Ten questions on the whole guide. Pick an answer, check it, and see your score at the end.

Quiz10 questions
You want to check ExercisePlan markup, a type Google doesn't use for any rich result. Which tool fits?
Show answer

Answer: A, The Schema Markup Validator at validator.schema.org. Google's own example: for valid schema.org properties or a type Google doesn't consume, such as ExercisePlan, use the schema.org validator. The Rich Results Test only knows Google types (chapters 1 and 3).

Which user agent does the Rich Results Test use by default?
Show answer

Answer: B, Smartphone. Smartphone is the default, "as this is how the majority of users browse the web today". You can switch to desktop under the input box (chapter 2).

An item shows a warning but no errors. What does that mean?
Show answer

Answer: D, It's still eligible, but the rich result may show less. Google: errors disqualify a page from showing a rich result, while with warnings it's still eligible. A missing image, for example, means a result without the picture (chapter 2).

Your staging site is behind a password. How can you run a URL test on it?
Show answer

Answer: C, Expose it through a tunnel such as ngrok, or paste the code instead. The test fetches as Google-InspectionTool without your credentials. Google suggests a tunnelling tool for local or firewalled pages; the Code tab works for checking properties (chapter 2).

When did FAQ rich results stop showing in Google Search?
Show answer

Answer: D, 7 May 2026. Google's changelog says FAQ rich results stopped appearing on 7 May 2026 and the docs were removed on 15 June 2026. 13 September 2023 is when HowTo results ended (chapter 1).

For merchant listings, which property is required that is only recommended for product snippets?
Show answer

Answer: A, priceCurrency. Google says priceCurrency is recommended for product snippets but required for merchant listings, along with image and an Offer with a price above zero (chapter 4).

Our Schema Markup Validator finds no JSON-LD in URL mode, but the Rich Results Test does. What's the likely reason?
Show answer

Answer: B, The markup is added by JavaScript after the page loads. Our tool reads the raw HTML the server sends and doesn't run scripts; the Rich Results Test's URL test renders the page. Paste the rendered code into our tool instead (chapter 3).

A Delhi dental clinic shows patient testimonials on its own site. Should its LocalBusiness markup include aggregateRating?
Show answer

Answer: C, No: Google recommends it only for sites that capture reviews about other local businesses. Google's local business docs recommend review and aggregateRating only for sites that review other businesses. Required properties are just name and address (chapter 4).

Where does Search Console put the reports for product snippets and merchant listings?
Show answer

Answer: D, Under Shopping. Most rich result reports sit under Enhancements, but product snippets and merchant listings are under Shopping (chapter 5).

Your clinic's LocalBusiness markup is live. Which Search Console tool confirms Google found it?
Show answer

Answer: B, URL Inspection on the page. Search Console's list of rich result reports doesn't include Local business, so inspect the page and check its crawled HTML for the block (URL Inspection doesn't list Local business under Detected items). The Unparsable report only lists markup Google couldn't parse (chapter 5).

Frequently asked questions

Frequently asked

What is the Rich Results Test?

It's Google's free tool for checking a page's structured data against the rich result types Google Search supports. You test a public URL or paste code, and it shows which rich results the page is eligible for, with errors, warnings, crawl details and, for some types, a preview. It supports JSON-LD, RDFa and Microdata.

What is the difference between the Rich Results Test and the Schema Markup Validator?

The Rich Results Test checks only Google-supported types and tells you about Google eligibility. The Schema Markup Validator at validator.schema.org checks any schema.org type and property, without Google's rules. Google recommends starting with the Rich Results Test and using the validator for generic schema validation.

What happened to Google's Structured Data Testing Tool?

Google removed its Google-specific checks and moved it to schema.org, where it became the Schema Markup Validator in May 2021. Since August 2021 the old address sends you to a page that helps you pick between the Rich Results Test and the validator.

Why does the Rich Results Test say my page isn't eligible for rich results?

Usually because the page has no markup of a type Google still supports. FAQPage and HowTo are the common cases: Google no longer shows either. It can also mean the markup is in a type the test doesn't know, or that the page couldn't be crawled. Check the Crawling section, then validate the markup at validator.schema.org.

Are warnings in the Rich Results Test a problem?

Not for eligibility. Errors stop an item from getting a rich result; warnings mean a recommended property is missing, so the result may show less, such as no image. Fix a warning only if the real data exists and is visible on the page. Never invent a rating or review to clear one.

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

Yes. Paste the code into the Code tab, or expose the page through a tunnelling tool such as ngrok so the URL test can reach it. The URL test can't open pages behind a firewall or password, because it fetches as Google-InspectionTool without your login.

Does passing the Rich Results Test guarantee rich results?

No. Google says it doesn't guarantee structured data will show up even if the test passes. The algorithm may choose another layout or a plain result, and markup that misrepresents the page or describes hidden content can be ignored. Structured data doesn't change rankings either.

Does the Rich Results Test see schema added by JavaScript or Google Tag Manager?

The URL test does, because it renders the page; View tested page shows the rendered HTML. Google recommends the URL input over pasted code for JavaScript-generated markup. Our Schema Markup Validator reads raw HTML only, so for script-added markup paste the rendered code into it.

How do I find structured data errors across my whole site?

Use Search Console. It has a rich result report for each supported type it finds, under Enhancements or Shopping, plus an Unparsable structured data report for markup it couldn't read. The reports show a sample of items, so use URL Inspection or the Rich Results Test for single pages. For thousands of URLs, a paid crawler can validate markup in bulk.

Is the Rich Results Test free?

Yes, and so are the Schema Markup Validator, Search Console and our own Schema Markup Validator. None of them has a paid tier. Test results you share by link stay viewable for about 90 days.

Sources

References

  1. Test your structured data, Google Search Central, accessed 18 Oct 2026
  2. Rich Results Test, Search Console Help, accessed 18 Oct 2026
  3. Announcing Schema Markup Validator: validator.schema.org (beta), Schema.org blog, 21 May 2021, accessed 16 Oct 2026
  4. An update on the Structured Data Testing Tool, Google Search Central Blog, 15 Dec 2020, updated 11 May and 9 Aug 2021, accessed 16 Oct 2026
  5. Structured data markup that Google Search supports, Google Search Central, last updated 16 Oct 2026, accessed 16 Oct 2026
  6. Changes to HowTo and FAQ rich results, Google Search Central Blog, 8 Aug 2023, updated 14 Sep 2023, accessed 16 Oct 2026
  7. Latest Google Search documentation updates, Google Search Central, accessed 18 Oct 2026
  8. General structured data guidelines, Google Search Central, accessed 18 Oct 2026
  9. Generate structured data with JavaScript, Google Search Central, accessed 18 Oct 2026
  10. The Rich Results Test is out of beta, Google Search Central Blog, 7 Jul 2020, accessed 16 Oct 2026
  11. Rich result report overview, Search Console Help, accessed 18 Oct 2026
  12. Product snippet (Product, Review, Offer) structured data, Google Search Central, accessed 18 Oct 2026
  13. How to Run Rich Results Test?, Rank Math Knowledge Base, accessed 18 Oct 2026
  14. Fix Search-related JavaScript problems, Google Search Central, accessed 18 Oct 2026
  15. URL Inspection tool, Search Console Help, accessed 18 Oct 2026
  16. Debugging your pages: testing locally-hosted or firewalled pages, Google Search Central, accessed 18 Oct 2026
  17. Schema Markup Validator, DigitalTreed, accessed 18 Oct 2026
  18. Merchant listing (Product, Offer) structured data, Google Search Central, accessed 18 Oct 2026
  19. Local business (LocalBusiness) structured data, Google Search Central, accessed 18 Oct 2026
  20. Dentist, Schema.org, accessed 18 Oct 2026
  21. MedicalClinic, Schema.org, accessed 18 Oct 2026
  22. Schema - Specification, Yoast developer portal, accessed 18 Oct 2026
  23. Configuring Schema Markup in Rank Math for rich snippets, Rank Math Knowledge Base, accessed 18 Oct 2026
  24. Introduction to structured data markup in Google Search, Google Search Central, last updated 10 Dec 2025, accessed 16 Oct 2026
  25. Unparsable structured data report, Search Console Help, accessed 18 Oct 2026
  26. Page indexing report, Search Console Help, accessed 18 Oct 2026
  27. SEO Spider pricing, Screaming Frog, accessed 18 Oct 2026
PreviousStep by step7 min4
Free

Get the free checklist

Every step of this guide on one page, to print or tick off. We email you the PDF link.

Was this guide helpful?

Written by

With over a decade in digital marketing, Aijaz Alam has built a reputation as an author, trainer, and consultant trusted across the industry. His career includes work with Arena Animation (Aptech Ltd) and Matik Sports Private Limited, and prior to DigitalTreed, he ran Whatadigital — delivering results for clients including several Fortune 250 companies. He now leads DigitalTreed as founder and CEO, helping businesses turn digital strategy into real growth.

More posts by Aijaz Alam