Shopify Product Schema: Structured Data for Rich Results and Merchant Listings
Structured data is how you tell search engines what a page means rather than leaving them to infer it. On a product page that means price, availability, brand and reviews — the things that turn a plain blue link into a result with stars and a price.
Product Snippets vs Merchant Listings
Google supports more than one kind of product markup. Broadly, one drives the rich snippet shown on a standard result, and the other feeds shopping-specific surfaces, which have stricter data requirements around identifiers, price and availability. Check Google's current product structured data documentation for which experience your store qualifies for — the requirements change.
What Your Theme Probably Outputs Today
Most modern Shopify themes emit basic Product JSON-LD with name, image, description and offers. Coverage varies significantly by theme and version, so do not assume — check your own. View the source of a product page and search for the structured data block.
A 10-Minute Audit
- Run a product URL through Google's Rich Results Test and note errors versus warnings
- Check the shopping and rich-result reports in Search Console for site-wide patterns
- View source and count Product blocks — more than one is the single most common problem
Properties Worth Getting Right
| Property | Why it matters |
|---|---|
| name, image, description | Baseline eligibility |
| offers (price, currency, availability) | Price display; the most common source of errors |
| brand | Disambiguation |
| GTIN / MPN | Often required for shopping surfaces |
| aggregateRating, review | Star display; must reflect visible reviews |
| shipping details | Can surface delivery cost in results |
| return policy | Can surface returns terms |
Every value must match what a visitor actually sees on the page. Marking up a rating that is not displayed is a policy violation, not a shortcut.
Variants
Where a product has meaningful variants at different prices, grouping markup lets you describe the family and its members rather than flattening everything into one offer. This matters most for apparel and anything with per-variant pricing.
Review Apps and Duplicate Schema
This causes more lost rich results than any other issue. Your theme outputs a Product block; your reviews app outputs another, with a rating. Search engines then have two conflicting descriptions of the same product. Pick one source of truth — usually the theme, extended with the app's rating data — and disable the other.
Organization-Level Return Policy
A store-wide return policy can be declared once at the organization level rather than repeated per product, which is simpler to maintain and less likely to drift out of sync.
Why Clean Product Data Matters for AI Shopping
The same structured attributes that qualify you for rich results also make your catalogue legible to AI assistants recommending products. See AI search visibility.
Frequently Asked Questions
Does Shopify add schema automatically?
Themes usually output basic product markup. Completeness varies by theme.
Why don't my review stars show?
Most often duplicate Product blocks, a rating not visible on the page, or markup that fails validation. Check in that order.
Do I need a Merchant Center account?
Not for basic rich snippets. Shopping surfaces generally involve a product feed.
Should I use a schema app?
Only if your theme's output cannot be extended. Another app is another source of duplicate markup.
How do I mark up variants?
With grouping markup that describes the parent and its variants, rather than one offer per URL.
Where ConversionAB Fits
ConversionAB can audit and rebuild your product JSON-LD without adding another app.