# Rich Results Test: What It Is and How to Use It

> What Google's Rich Results Test is, what it checks on a product page, what it cannot see and how to read its errors and warnings.

URL: https://clione.ai/glossary/rich-results-test/
Lang: en

Google's [rich results](/glossary/rich-results/) test (the _Rich Results Test_) is the tool that answers one specific question: **with the markup this page has, what can Google add to its result?** In a store, that means the price, the availability, the stars or the shipping details of a [product page](/glossary/product-page/). It is not the [Search Console](/glossary/google-search-console/) report that counts items across the whole site, nor Google's old [structured data](/glossary/structured-data/) testing tool, which since 2021 lives at another address and does another job.[^sdtt-update] It matters because it is the fastest way to find out whether a change to the product template has broken something, and because it is easy to read more into it than it says.

## How it works

The test accepts two inputs. **A URL**, which has to be public: all of the page's resources must load without being signed in, and if the page is behind a firewall or on your computer you have to expose it with a tunnel. Or **a code snippet** that you paste, edit and test again as many times as you like. By default it tests the page as a mobile device would see it, and you can switch to desktop. It reads all three structured data formats: [JSON-LD](/glossary/json-ld/), [RDFa](/glossary/rdfa/) and [microdata](/glossary/microdata/).[^rrt-help]

When it tests a URL, the tool enters the page as Google-InspectionTool, without your credentials. If a [`robots.txt`](/glossary/robots-txt/) rule or a [`noindex`](/glossary/noindex/) directive stops Google from crawling it in its regular crawl cycle, **the page cannot be tested**. The crawling section tells you whether crawling is allowed, whether the page could be downloaded and with which agent; and if some resources (images, CSS, scripts) fail to load, it warns you, because that can change the result from one run to the next.[^rrt-help]

Then comes the important part: **which rich result types it found and what state each item is in**. The possible states run from "N valid items detected" to "N invalid items detected", by way of valid items with warnings and "Structured data with syntax errors detected". When you open an error, the code explorer takes you to the line, and that code is the rendered one, not the original HTML.[^rrt-help] Google explained the difference between an error and a warning when the tool came out of beta: **an error disqualifies the page from showing as a rich result; a warning may limit how it looks, but the page is still eligible**. Its example: without the image property, the result could still appear, just without an image.[^rrt-out-of-beta]

There is one formatting detail worth knowing: the test ignores comments inside a JSON-LD block, but the standard does not allow them, so they can cause errors in real use. Google asks you to remove them before publishing.[^rrt-help]

### Which types it validates, and which it no longer does

The list of types it supports includes, among others, [merchant listings](/glossary/merchant-listings/), product snippets, the [return policy](/glossary/return-policy/), shipping policies, review snippets, [breadcrumbs](/glossary/breadcrumbs/) and the organization.[^rrt-help] The FAQ type is no longer on that list: Google stopped showing that rich result as of May 7, 2026 and removed its documentation on June 15.[^google-updates] If a page carries [FAQPage](/glossary/faqpage/), the test will tell you nothing useful about that block.

The tool came out of beta on July 7, 2020, and Google has recommended using it to test structured data ever since.[^rrt-out-of-beta] The old structured data testing tool was repurposed: it moved to the [Schema.org](/glossary/schema-org/) community, stopped checking Google's rich result types and, since August 9, 2021, its old address leads to a page for choosing a tool.[^sdtt-update] That is why Google recommends **starting with the Rich Results Test** and leaving the [Schema Markup Validator](/glossary/schema-markup-validator/) for checking any [Schema.org markup](/glossary/schema-markup/) without Google's own rules.[^google-test-sd]

## In a store

For a page to qualify for merchant listings, Google requires a name, an image and an offer on the [Product](/glossary/product-schema/) node, and in the offer a price (greater than zero) with its currency. Availability, on the other hand, is a recommended property.[^google-merchant-listing] With those rules, this is how three pages from a **fictitious example** store would read:

| Page (fictitious example) | What the markup carries                                  | How the test would read it | What it means for the store                    |
| ------------------------- | -------------------------------------------------------- | -------------------------- | ---------------------------------------------- |
| City backpack             | Name, image, offer with price, currency and availability | Valid item                 | Eligible for merchant listings                 |
| Ceramic mug               | The same, without availability                           | Valid with warnings        | Still eligible; a recommended field is missing |
| Stovetop espresso maker   | Name and offer, no image                                 | Invalid item               | Not eligible until the markup carries an image |

The mug's markup would look something like this. It passes as valid, with a warning for the missing availability:

```json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Glazed ceramic mug, 12 oz",
  "image": "https://example-store.com/img/mug-12oz.jpg",
  "offers": {
    "@type": "Offer",
    "price": 14.5,
    "priceCurrency": "USD"
  }
}
```

The lesson of the table is the order of work. **Errors get fixed first, because they take the page out of the race; then the warnings**, which Google advises considering because they improve the quality of the markup, even though they are not needed to be eligible.[^google-merchant-listing] And a green page is still only that: the preview shows how the result might look, and Google does not guarantee the page will appear that way or that any of those previews will apply, because it decides based on search history, location and other variables.[^rrt-help]


Believing that a test with no errors certifies that the markup meets Google's rules. The tool checks syntax and required properties; **it cannot see whether the marked-up content is misleading or whether the markup violates the guidelines**. Google says so in its product documentation: the problem may not be syntax, and then the Rich Results Test will not be able to identify it. And if the page gets a manual action for structured data, Google ignores that markup even if the test keeps coming up green.[^google-merchant-listing]


## How to check it

1. **Open the Rich Results Test and paste the URL of a published page**, not its code: that way you test what your store serves.[^rrt-help]
2. **Look at the crawling section first.** If it says crawling is not allowed or the page could not be downloaded, the problem is not the markup.[^rrt-help]
3. **Open the invalid items before the warnings** and fix in the template what they point to; an error disqualifies, a warning does not.[^rrt-out-of-beta]
4. **Switch the agent to desktop and repeat.** If the result changes and a warning about problems loading the page appears, check the blocked resources.[^rrt-help]
5. **For pages on a property you own, move to Search Console**: URL Inspection shows the rich results detected in the indexed version and in a live test,[^gsc-url-inspection] and the rich result reports count the valid and invalid items on the site, from a sample.[^gsc-rich-reports]

## Related concept: schema validator

The schema validator checks that the markup is well formed and uses the Schema.org vocabulary, whatever the type; the Rich Results Test only looks at the types Google uses in Search and adds its own requirements.[^google-test-sd] **Markup can pass the validator and not be eligible for Google**, because it lacks a property that Schema.org does not require and Google does. And neither tells you whether what you saved in the dashboard is on the page: that is [publication verification](/glossary/publication-verification/).

To go further, the comparison [validating markup vs verifying publication](/comparisons/validate-vs-verify/) separates what each tool says, and the [measurement and verification reading path](/learn/measurement-and-verification/) orders the rest of the terms.
