Skip to content
Published Authored byBilly Reiner

Schema · How-to

Rich Results Test on Shopify

Google's Rich Results Test1 is the canonical structured-data validator for any storefront targeting Google Search. The 2026 Shopify workflow: submit one live URL per template type (PDP, collection, blog post, homepage), confirm the expected entities are detected, triage errors vs warnings, and re-test after redeployment. Expected pass-fail per Shopify template: PDP detects Product + Offer + BreadcrumbList; Collection detects BreadcrumbList; Blog post detects Article + BreadcrumbList; Homepage detects Organization + WebSite. Errors block the rich-result eligibility; warnings are informational.

What the Rich Results Test does NOT cover: FAQPage (rich-result support ends June 2026)2, MerchantReturnPolicy (parsed but no dedicated rich result), OfferShippingDetails (parsed but no dedicated rich result), and any custom @graph composition Google's tool doesn't specifically test. For those, fall back to validator.schema.org3.

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. The tool is built into Search Console and is the deciding factor for whether a structured-data install on a Shopify store will trigger the SERP enhancement Google associates with that schema type.

Two modes: 'Test URL' fetches the live page (renders JavaScript, follows redirects, respects robots.txt), and 'Code' takes a pasted HTML snippet (useful for testing a JSON-LD block before pushing the change to Shopify). The URL mode is the honest test for a deployed Shopify storefront; the code mode is for iteration before deployment.

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.

Pro tip on Shopify: keep a draft theme published in parallel for risky schema work. The Rich Results Test accepts preview URLs (shop.url with the ?preview_theme_id=... parameter) which lets you validate the new schema before publishing the theme to the live storefront. The URL fetcher honours Shopify's preview behaviour.

Expected output per Shopify template

Per template, the clean pass looks like this. Homepage: Organization detected, WebSite detected, zero errors, possibly one or two warnings on logo dimensions or sameAs absence. PDP: Product detected, Offer detected, BreadcrumbList detected, AggregateRating detected if you've authored it, zero errors, warnings only on Merchant Center fields you haven't aligned yet (gtin if barcode empty, hasMerchantReturnPolicy if not authored, shippingDetails if not authored). 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.

A fourth category: warnings about fields that are optional in Schema.org but recommended by Google. For Article, things like 'isAccessibleForFree is recommended' — structurally optional, useful only for News Article Top Stories carousel eligibility. For most Shopify blogs, ignore.

Errors that block a clean pass

Five errors appear most often on Shopify and must be fixed before the install is complete. (1) 'price' parsed as a string instead of a number — Shopify stores prices in cents; the Liquid block must divide by 100.0. (2) JSON parse error from unescaped strings — Shopify's product titles or vendor names contain apostrophes; pass through | escape. (3) Duplicate top-level Product entity — Shopify's auto-emitted Product and your complementary Product don't share an @id; align them. (4) 'Either offers, review or aggregateRating must be present on Product' — your complementary block dropped offers; reinclude or rely on Shopify's auto-emission. (5) Missing required field in ListItem (BreadcrumbList) — usually position is missing or non-sequential.

For each error, open the relevant theme file (theme.liquid for site-wide entities, main-product.liquid / main-list-collections.liquid / main-article.liquid for per-template), make the fix, redeploy, wait 30–60 seconds for Shopify's edge cache, re-test. The cycle is fast; the goal is zero errors per template URL.

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 (after the Rich Results Test FAQ support ends June 2026), MerchantReturnPolicy (no Google rich result), OfferShippingDetails (no dedicated rich result), and any custom @graph composition combining types Google doesn't specifically rich-result-test together.

Schema.org Markup Validator confirms structural validity against the Schema.org vocabulary — it parses any application/ld+json block and reports unrecognised properties, wrong value types, missing required fields, and other vocabulary-level issues. It does NOT report Google rich-result eligibility (it's not a Google product). For Shopify schema work, the two-tool workflow is: Rich Results Test for everything Google supports, Schema.org Markup Validator for everything Google doesn't.