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 (the test doesn't report WebSite). Errors block the rich-result eligibility; warnings are informational.

What the Rich Results Test does NOT cover: FAQPage (Google stopped showing FAQ rich results on 2026-05-07 and the test no longer lists FAQ)2, WebSite (site names aren't supported in the test)7, and any type that isn't on Google's supported list. Return policies and shipping policies are on it, so test those here6. For the rest, 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. 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.

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, 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.

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) 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.

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 (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.

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.