What the Rich Results Test does
The Rich Results Test fetches a URL (or accepts a code snippet), parses every application/ld+json block on the page, identifies the Schema.org types declared, validates each against Google's rich-result rules, and reports detected types, errors per type, warnings per type, and rich-result eligibility per type. A pass means the page is eligible for the rich result Google associates with that type; Google still decides whether to show it. The URL Inspection tool in Search Console is the place to check what Google indexed.
Running it against a Shopify store
Submit a representative URL per template — one PDP, one collection, one blog post, the homepage. Each test takes 10–30 seconds. The result page shows detected types in a left rail, the full parsed JSON-LD in the middle, and rich-result eligibility per detected type on the right. For each template, audit the field set against the recommended schema fields documented on the matching leaf in this pillar.
Expected output per Shopify template
Per template, the clean pass looks like this. Homepage: Organization detected, zero errors, possibly warnings for recommended properties you haven't added; WebSite isn't reported, because site names aren't supported in the test. PDP: Product detected, Offer detected, BreadcrumbList detected, AggregateRating detected if you've authored it, zero errors, warnings only on recommended fields you haven't added (a global identifier when the barcode is empty, hasMerchantReturnPolicy and shippingDetails when you haven't declared return and shipping policies). Collection: BreadcrumbList detected, zero errors. Blog post: Article detected, BreadcrumbList detected, zero errors, possibly warnings on author.url or image dimensions.
Warnings to ignore (or at least deprioritise)
Three warnings appear frequently on Shopify storefronts and are safe to deprioritise. (1) 'priceValidUntil is recommended' on products without an active sale — adding a far-future date to silence the warning is dishonest; leave it. (2) 'gtin is recommended' on handmade or vintage products that legitimately don't have a GTIN — leave it; do not fabricate. (3) 'sameAs is recommended' on Organization when the brand hasn't built out its profile footprint yet — work on the sameAs over time, don't fake URLs.
Errors that block a clean pass
Five errors appear most often on Shopify and must be fixed before the install is complete. (1) A price in cents — Shopify stores prices in cents, so a raw product.price reads 12500 for $125.00; the Liquid block must divide by 100.0. (2) JSON parse error from strings printed inside quote marks — a double quote or line break in a product title or vendor name ends the string early; print them through | json instead (| escape is an HTML filter and doesn't fix it). (3) Two Product entities for one product — the theme's structured_data output and your own block both print; remove the theme's line so only one describes the product (Google documents @id for linking items, not for merging duplicates). (4) 'Either offers, review or aggregateRating must be present on Product' — your block dropped offers; put them back or keep the theme's output instead. (5) Missing required field in ListItem (BreadcrumbList) — usually position is missing or non-sequential.
When to fall back to validator.schema.org
The Rich Results Test only tests schema types Google supports rich results for. For everything else, fall back to Schema.org's Markup Validator at validator.schema.org. Use it for: FAQPage (FAQ is no longer on the Rich Results Test's supported list), WebSite (site names aren't supported in the test), and any type Google doesn't list. Return policy and shipping policy markup are on Google's list, so test those in the Rich Results Test.