Shopify Rich Snippets in 2026: What Still Works After Google's Latest Changes
Written by Ildi Veliu
Most Shopify stores have incomplete structured data, broken rich snippets, and schema gaps that AI crawlers skip entirely. The products are fine. The markup is not.
This guide covers the schema types that still drive visible results in 2026, what changed with the deprecation of FAQ rich results in May 2026, and the exact steps to implement Product schema and review stars on your Shopify store, whether you edit Liquid or prefer an app.
What rich snippets actually are, and what Shopify gives you by default
Rich snippets are the extra details that sometimes appear under a search result: star ratings, price, availability, and shipping information. You do not produce them directly. You add structured data to your pages, and Google decides whether to show a rich result based on that data, the user's intent, and your website's SEO performance.
Modern themes, including Dawn version 15.0 and above, output built-in schema markup using the structured_data Liquid filter. That covers the basics: product name, price, and availability.
What Shopify does not cover is the markup that actually drives visible rich results in 2026: aggregateRating for star ratings, shippingDetails, hasMerchantReturnPolicy, brand, GTIN, and the full Merchant Listing field set that Google now requires for Shopping surfaces.
Before you add anything, run the Google Rich Results Test on one of your product pages. Paste the URL, wait for the results, and note which fields are detected, missing, or flagged. That is your baseline. Everything in this article builds from there.
Google Rich Results test above recognizes FAQs as a valid item on May 13th, 2026, even though the dropdown preview won’t appear in SERP after May 7th.
FAQ rich results are gone. Here is what happened
The announcement was a small note at the top of the FAQ structured data developer documentation. No advance warning beyond the three-year phase-out that most stores never tracked.
The timeline of the FAQ rich results deprecation
What does this mean for your existing FAQ schema?
If the FAQ section on your product pages contains genuine, useful answers to real customer questions, the markup should stay. If it was filler added to inflate SERP real estate, this is a good time to clean up both the content and the schema.
The FAQPage type remains valid schema.org markup, and AI crawlers still use it to answer user questions and link back to your product.
A well-optimized product page that includes one FAQ: 'Can this tent fit 4 people comfortably?' would increase the chances of AI overview crawling content from your website.
Given the nature of AEO (Answer Engine Optimization), where users ask long, natural-language questions, and the fact that AI overviews now appear in 47% of Google search results, FAQs that address your users’ questions could be the most valuable content on your product pages.
If you want to go deeper on what AI-driven discovery means for your product pages, this conversation is worth 10 minutes
Shero Commerce CEO Beth Shero is joined by Cande Rybecky and Molly Siston, co-founder of somi, to discuss what AI-driven product discovery means for eCommerce brands.
The two product-rich result types
Google now distinguishes between two classes of product-rich results, each with different requirements. Most implementation guides treat them as the same thing. They are not.
Product Snippets are available to any page that describes a product, including editorial reviews and comparison pages. They focus on ratings, reviews, and basic pricing. These are the star ratings and price ranges that appear under organic search listings.
Merchant Listings are only available on pages where a customer can actually buy the product. They unlock Shopping panel appearances, Popular Products, price drop alerts, and product carousels. The required fields are stricter: name, image, and offers with price, priceCurrency, and availability. You also need product identifiers: GTIN, MPN, or SKU. Without identifiers, Google cannot match your product to its catalog or compare it across sellers.
A Shopify product page can qualify for both simultaneously. Adding the full Merchant Listing field set also satisfies Product Snippet requirements.
When to add which?
If a customer can buy the product on that page, implement Merchant Listing schema. If you are writing a review or comparison post, use Product Snippet schema.
How to add Product schema to Shopify
There are two paths: manual JSON-LD via Liquid for stores with developer access, and apps for everyone else. Both can produce a valid schema.
The manual route gives you more control over variants, dynamic pricing, and custom logic. Apps are faster and require no coding knowledge, but they carry the risk of duplicating schema if your theme already generates it.
While we are mainly focused on FAQ rich results and Review Stars on this piece, the tool below will provide the know-how and ready-made snippets for all Shopify and eCommerce structured data. Get back to it whenever you need guidance.
Shopify Rich Snippets and Schema Glossary
Shopify Schema Markup · 2026
Pick a schema type to get started
Each entry explains what it does, whether Shopify already covers it, and exactly how to implement it — with or without a developer.
15
Schema types, ranked by search impact
2
Paths for each: app-based or manual code
5
Common mistakes that silently break rich results
Critical
Product
Product pages
Shopify default|Partial — outputs name, image, price and availability only. Brand, SKU, shipping and return fields are missing.
What it does
Product schema is the foundation everything else builds on. It tells Google — and AI search engines like Perplexity and Google AI Overviews — the basic facts about what you sell: name, description, image, SKU, and brand.
In 2026 Google distinguishes between two classes of product rich result. Product Snippets show star ratings and basic pricing under organic listings. Merchant Listings unlock Shopping panel appearances, price drop alerts, and carousels — but only when you also include a GTIN, MPN, or SKU identifier. A fully built Product schema qualifies for both simultaneously.
What's included vs. missing
Shopify includes ✓
Product name
Featured image
Price
In / out of stock status
Not included ✗
Brand / vendor
SKU / GTIN / MPN identifiers
Description
ShippingDetails
MerchantReturnPolicy
AggregateRating
⚠Without a SKU, GTIN, or MPN identifier Google cannot match your product to its catalog or compare prices across sellers. This means you miss Merchant Listings entirely.
How to implement it
⚠Before installing any schema app, run the Google Rich Results Test on a product page first. If your theme already outputs Product schema and the app also outputs it, Google ignores both blocks. Disable the theme schema first, or use an app that detects and resolves conflicts automatically.
SP
Schema Plus for SEO
Covers Product, AggregateRating, BreadcrumbList, and more. Detects and removes duplicate schema from your theme automatically. Includes an onboarding call.
Paid
★ 4.9 · 545 reviews
IL
Ilana's JSON-LD for SEO
Established since 2015. Handles legacy theme conflicts well. Active personal support. Best choice if you have messy existing schema from a previous theme or app.
Paid
★ 4.9 · Established
NB
Nabu Schema Pro
Free app by AdNabu. Covers 6 schema types including Product. Good starting point for smaller stores wanting solid baseline coverage at no cost.
Free
New · No reviews yet
1
In your Shopify admin go to Online Store → Themes → ⋯ → Edit code
2
Open sections/main-product.liquid (Dawn and modern themes) or templates/product.liquid (older themes). Search the file for ld+json or structured_data. If found, your theme already outputs schema — extend it rather than adding a second block on top.
3
Paste the block below just before the closing </body> tag. Save, then test immediately with the Rich Results Test — do not wait for Google to re-index.
ℹThe aggregateRating block is conditional — it only outputs if you have Shopify's native review metafields populated. If you use a review app like Judge.me, the app injects its own aggregateRating block and you should remove that conditional to avoid duplication.
How to verify it's working
✓
Go to search.google.com/test/rich-results, paste a product URL, and confirm Product is detected with no errors or warnings.
✓
Check that the price shown in the test exactly matches the visible price on the page. Any mismatch causes Google to remove the rich result.
✓
Look for a SKU field in the test output. If it's absent, you won't qualify for Merchant Listings.
Critical
Offer
Product pages · nested inside Product schema
Shopify default|Partial — price, currency and availability are output. The shippingDetails and hasMerchantReturnPolicy fields that unlock additional rich results are missing.
What it does
Offer is not a standalone schema type — it lives inside your Product block. It tells Google the exact price, currency, stock status, and condition of the item. This is what makes your price appear directly in search results before someone clicks.
Adding the two missing fields — shippingDetails and hasMerchantReturnPolicy — unlocks delivery time and return window display in Google search results, which Shopify does not include by default.
The non-negotiable rules
⚠The price in your schema must exactly match the visible price on the page at all times. If your storefront shows £49.99 but the schema outputs £49, Google removes the rich result. Always use dynamic Liquid variables — never hardcode prices.
⚠The availability field must also be dynamic. Hardcoding InStock when items go out of stock is a policy violation that Google actively penalises with demotion or removal of the rich result.
ℹSome store locales format prices with a comma as the decimal separator (e.g. 49,99). Google expects a period. Always pipe through | remove: ',' — or use | json which outputs a clean numeric string — to avoid invalid output.
ℹpriceValidUntil is computed dynamically by adding 31,536,000 seconds (one year) to today's Unix timestamp, then formatting as a date. This avoids the Search Console warning that appears when priceValidUntil is set to a past date.
Critical
ProductGroup
Product pages with variants (sizes, colours, materials, etc.)
Shopify default|Not included. Shopify outputs no ProductGroup schema. Each variant is invisible to Google as part of a grouped product.
What it does
If you sell a t-shirt in 5 sizes and 4 colours, you have 20 variants. Without ProductGroup schema, Google sees them as separate unrelated items — or ignores them entirely. With it, all variants are grouped under one parent product entity, which gives Google a clean picture of your full offering.
This matters for Merchant Listings. Google can then show a price range, display colour and size options in search results, and correctly match your product across Shopping surfaces and price comparison.
Implementation note
ℹProductGroup is one of the more complex schema types to implement manually because it requires looping through all variants in Liquid and handling conditional comma placement to avoid invalid JSON. Apps like Schema Plus for SEO or JSON-LD Express handle this automatically including variant-level pricing differences. This is one of the few schema types where an app is genuinely easier than manual code.
Shopify default|Not included. Shopify outputs no AggregateRating schema. Your products will never show stars in search results without this, no matter how many reviews you have.
What it does
AggregateRating is what produces the star ratings visible under product listings in Google search results. It requires either a live review app or reviews stored in Shopify metafields, and the actual review content must be visible on the page.
Rules Google enforces
⚠Only add AggregateRating schema where real customer reviews are visible on the page. Adding it to a page with no visible reviews is a policy violation. Google also requires a minimum of 5 reviews before star ratings will appear in results.
⚠Duplicate schema is the most common failure with Yotpo. Both Yotpo and the theme inject AggregateRating on the same page, and Google ignores both. If you use Yotpo, check specifically for this after enabling rich snippets in the app settings.
Via a review app (recommended)
JM
Judge.me
98% pass rate on the Google Rich Results Test — highest of any major review app. Free plan includes rich snippets. Clean schema that rarely breaks on theme updates. Best option for most stores.
Free / $15/mo
Shopify-focused
LX
Loox
94% pass rate. Best for photo reviews. Ideal for apparel, beauty, and home goods stores where customer photos drive conversion. Occasional widget customisation can break JSON-LD injection.
Paid
Photo-first
YT
Yotpo
92% pass rate — lowest of the major apps, mostly from duplicate schema issues. Best if you also need loyalty programmes, SMS, or UGC tools in one platform.
Free / Paid
All-in-one
Manual (no review app)
ℹThis only works if you use Shopify's native product review metafields. The block is conditional — it outputs nothing if the metafield is empty, preventing Google from seeing zero-value rating data.
Shopify default|Included in Dawn 15+ and most modern themes. Verify it's present before spending time on other schema types.
What it does
BreadcrumbList shows the page path directly in search results — for example Home › Clothing › T-Shirts › Product Name. It also helps Google understand your store's hierarchy, which supports how your collection and category pages are crawled and ranked.
Dawn 15+ includes this by default across product, collection, and blog pages. If you are on a heavily customised or older theme, verify it's present with the Rich Results Test before assuming it's there.
ℹThe {% if collection %} conditional handles the case where a product is viewed outside a collection context, ensuring the breadcrumb doesn't output an empty middle step.
High Impact
ShippingDetails
Product pages
Shopify default|Not included. One of the most underused schema types in Shopify — and one of the most visible when implemented correctly.
What it does
ShippingDetails lets Google display your delivery cost and estimated delivery window directly in search results, before someone clicks your listing. This is an opportunity to show "Free shipping · 2–5 days" next to your product title — a direct conversion lever that most Shopify stores miss.
It nests inside the Offer block and defines a shipping rate, destination country, handling time, and transit time.
How to implement it
JX
JSON-LD Express for SEO
One of the few Shopify apps that explicitly generates ShippingDetails and ReturnPolicy schema. Built-for-Shopify certified. Merchants specifically cite video and shipping markup support in 2026 reviews.
ℹAdd this as a field inside the offers object in your Product schema. Update addressCountry to your shipping destination, set value to your shipping cost (0 for free shipping), and adjust the minValue / maxValue days to match your actual delivery window.
High Impact
MerchantReturnPolicy
Product pages
Shopify default|Not included. Your return window is invisible to Google without this schema type.
What it does
MerchantReturnPolicy tells Google your return window — for example "30-day free returns." Google can display this directly under search results before someone visits your store. In competitive product categories this is a meaningful click-through rate lever, particularly when a competitor's listing shows no returns information at all.
It nests inside the Offer block, alongside ShippingDetails. You define whether returns are accepted, the window in days, how items are returned, and whether there is a fee.
ℹUpdate merchantReturnDays to match your actual policy. For no-returns policies use MerchantReturnNotPermitted. For a final-sale policy use MerchantReturnUnlimitedWindow if returns are always accepted regardless of time.
High Impact
Organisation
Homepage and About page only
Shopify default|Basic version included. Typically missing sameAs social profile links and logo, which are needed for Knowledge Panel eligibility.
What it does
Organisation schema identifies your brand to Google. It's what makes your logo eligible to appear in the Knowledge Panel on branded searches. The sameAs array — linking to your Instagram, Facebook, and Wikidata entry — is what anchors your brand as a distinct entity in Google's Knowledge Graph, which in turn helps AI systems correctly attribute content to your brand rather than treating pages as anonymous.
Shopify includes a basic version in the theme, but the sameAs links are almost always missing and need to be added manually.
Complete Organisation block
Liquid + JSON-LD · theme.liquid <head> — homepage only
ℹThe {% if template == 'index' %} wrapper ensures this only outputs on the homepage. Replace logo.png with your actual logo filename in the Shopify assets folder, and update each sameAs URL to your real social profiles.
High Impact
Review
Product pages with visible customer reviews
Shopify default|Not included. Requires a review app or manual implementation against Shopify review metafields.
What it does
Review schema marks up individual customer reviews — reviewer name, rating value, date, and review text. This gives Google structured access to the detail behind your star ratings, which feeds into rich results and helps AI search engines cite product quality information when answering shopping queries.
In practice, every major review app handles Review schema output automatically when rich snippets are enabled. If you are already using Judge.me, Loox, Yotpo, or Stamped with rich snippets on, individual Review schema is already being output correctly alongside AggregateRating.
Action required
✓Go into your review app settings and confirm Rich Snippets or Google Integration is toggled on. That single setting handles both Review and AggregateRating schema output for every product page.
Supporting
CollectionPage
Collection and category pages
Shopify default|Not included. Shopify outputs no schema on collection pages by default.
What it does
CollectionPage schema marks up your category and collection pages, telling Google this page is a listing of products rather than a single product page. It also communicates your site hierarchy — which collections sit under which categories.
This doesn't produce a visual rich result you'll see directly in search, but it improves how Google indexes and ranks your collection pages over time and helps AI systems understand your full catalog structure.
ItemList tells Google this page contains an ordered, curated list of products. This is the schema type that can produce product carousels in Google Search — rows of items with images and prices that appear above traditional organic results.
It works best on landing pages where you've specifically curated a selection, such as "Best Running Shoes Under £100" or "Gift Ideas for Her." It can be used alongside CollectionPage on the same page.
Implementation
Liquid + JSON-LD · collection or landing page template
Shopify default|Basic version included. The author field with a Person type — which Google uses for expertise signals and AI Overview attribution — is typically missing.
What it does
Article schema structures your blog content for Google and AI search engines. The most important benefit in 2026 is Google AI Overview inclusion — pages with properly structured Article schema including a named author and a clear publish date are significantly more likely to be cited in AI-generated answers than pages without it.
Shopify outputs a basic Article block, but the author field is usually just a plain string rather than a Person type with credentials. Adding the full block below replaces that with a version Google can properly attribute.
ℹIf your theme already outputs Article schema, search sections/main-article.liquid for ld+json first and replace the existing block rather than adding a second one.
Contextual
FAQPage
Product and blog pages with genuine Q&A content
Shopify default|Not included. The Google SERP dropdown feature was removed in May 2026, but FAQ schema still has value for AI search engines.
What changed in May 2026
⚠Google removed the FAQ accordion dropdown from search results on 7 May 2026. The expandable Q&A panels that used to appear under listings are gone. If you added FAQ schema specifically to earn those visual panels, that feature no longer exists.
However, Google has confirmed it continues reading FAQ structured data to understand page content. More relevantly for Shopify merchants: the retrieval systems behind Google AI Overviews, Perplexity, and ChatGPT search actively use FAQPage schema to extract Q&A content. Pages with well-written FAQ schema that answer genuine product questions — sizing, materials, shipping, returns — are more likely to be cited when an AI system answers a related query.
When to add it and when not to
✓Add FAQPage schema where you have a genuine FAQ section with real answers to questions customers actually ask. Content quality matters more than ever now that the visual reward is gone — the benefit is AI citation, which rewards substance.
✗Do not add FAQ schema to thin, keyword-stuffed Q&A sections added only to inflate search real estate. AI crawlers are increasingly effective at identifying low-quality structured content.
Implementation
JSON-LD · add to product or blog template
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is your return policy?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We accept returns within 30 days of purchase. Items must be unworn and in their original packaging. Return postage is free."
}
},
{
"@type": "Question",
"name": "How long does delivery take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Standard delivery takes 3 to 5 business days. Express delivery is available at checkout for next-day delivery."
}
}
]
}
</script>
Contextual
VideoObject
Product pages with demo or unboxing videos
Shopify default|Not included. Only relevant if you have product videos embedded on your pages.
What it does
VideoObject tells Google the metadata for a video on your product page — title, description, thumbnail, upload date, and duration. This makes the video eligible to appear in Google video search results and video carousels, which can drive additional discovery traffic beyond standard organic listings.
If you host your product videos on YouTube, Google often picks up the metadata automatically. Adding explicit VideoObject schema guarantees accuracy and ensures the video is associated with the correct product page.
How to implement it
JX
JSON-LD Express for SEO
One of the very few Shopify apps that generates VideoObject schema. Merchants specifically cite video markup support in 2026 reviews alongside ShippingDetails and ReturnPolicy.
ℹReplace YOUR_VIDEO_ID with your YouTube video ID. Set uploadDate to when the video was published. duration uses ISO 8601 format — PT2M30S means 2 minutes and 30 seconds.
Contextual
LocalBusiness
Homepage or store locator page · physical stores only
Shopify default|Not included. Only relevant if you have a physical retail location — skip entirely if you are a pure online store.
What it does
LocalBusiness schema tells Google your physical store address, opening hours, phone number, and coordinates — the data that powers your appearance in local search results and Google Maps. Without it, Google has to infer this information from unstructured text on your page, which is less reliable.
If you are an online-only store, skip this schema type entirely. It does not apply.
Implementation
Liquid + JSON-LD · theme.liquid <head> — homepage only
ℹReplace all placeholder values with your real address, phone, coordinates, and opening hours. Remove the geo block if you prefer not to expose exact coordinates.
Step 5. Save the file and test immediately using the Rich Results Test on a product URL or the ahrefs extension. Do not wait until it is indexed. The tester reads the live page and tells you immediately if anything is broken.
2. App-based schema (no code required)
If you are not comfortable editing Liquid files, an app is the right choice. Apps automatically inject Product schema using your existing product data and update it when prices or availability change.
JSON-LD for SEO is a commonly used Shopify app for adding product schema
Before installing any schema app, run the Rich Results Test on a product page. If your theme already outputs Product schema, and the app also outputs it, Google will see two conflicting blocks on the same page. This is the most common schema error on Shopify stores, and it causes Google to ignore both blocks. Disable the theme's built-in schema before enabling the app, or use an app that automatically detects and handles theme conflicts.
How to add review stars to Shopify
Star ratings in Google search results come from the aggregateRating field in your Product schema. They matter, as studies and real-world data show that rich snippets with star ratings can improve CTR by 30% or more.
Adding review stars requires some manual work because Shopify's default theme schema does not include them.
You need a review app or a manual implementation. Without one of these, your listings will never show stars, regardless of how many reviews your products have.
How the aggregated rating structured data looks from the Ahrefs web extension
1. Via a review app
Judge.me, Yotpo, Loox, and Stamped all support aggregateRating schema output. The step is the same for all of them: go to the app settings, find the SEO or Google Integration section, and confirm that rich snippets or the AggregateRating Schema is enabled.
That toggle tells the app to inject the aggregateRating node into your Product schema with your live rating values and review count.
If you are not using a third-party review app but do have reviews stored in Shopify metafields, add the aggregateRating node directly to your Product schema block. The code in the example above includes a conditional: it only outputs the aggregateRating node if the product.metafields.reviews.rating value exists. This prevents Google from seeing empty or zero-value rating data, which can trigger a penalty.
How the liquid code looks in the Shopify admin
One rule that applies to all implementations
Only add the aggregateRating schema where actual customer reviews are visible on the page. A Schema that claims ratings exist when the page shows none is a policy violation. Google's bots check for consistency between markup and visible content.
Does your store have any gaps?
Structured data is not a 2026 trend. It is the foundation that search, and now AI, runs on.
The disappearance of FAQ rich results from SERPs is not a sign that schema matters less. It is a sign that the game has shifted. Google, Perplexity, and ChatGPT are all reading your store's structured data to decide whether to cite you, surface you, or buy directly from your store as AI agents become increasingly popular.
Most Shopify stores have enough schema to pass a surface check. But not enough to show up where AI answers have replaced the first three organic results. If you want a full audit, our SEO team can show you the gaps.
Most Shopify stores have incomplete structured data, broken rich snippets, and schema gaps that AI crawlers skip entirely. The products are fine. The markup is not.
This guide covers the schema types that still drive visible results in 2026, what changed with the deprecation of FAQ rich results in May 2026, and the exact steps to implement Product schema and review stars on your Shopify store, whether you edit Liquid or prefer an app.
What rich snippets actually are, and what Shopify gives you by default
Rich snippets are the extra details that sometimes appear under a search result: star ratings, price, availability, and shipping information. You do not produce them directly. You add structured data to your pages, and Google decides whether to show a rich result based on that data, the user's intent, and your website's SEO performance.
Modern themes, including Dawn version 15.0 and above, output built-in schema markup using the structured_data Liquid filter. That covers the basics: product name, price, and availability.
What Shopify does not cover is the markup that actually drives visible rich results in 2026: aggregateRating for star ratings, shippingDetails, hasMerchantReturnPolicy, brand, GTIN, and the full Merchant Listing field set that Google now requires for Shopping surfaces.
Before you add anything, run the Google Rich Results Test on one of your product pages. Paste the URL, wait for the results, and note which fields are detected, missing, or flagged. That is your baseline. Everything in this article builds from there.
Google Rich Results test above recognizes FAQs as a valid item on May 13th, 2026, even though the dropdown preview won’t appear in SERP after May 7th.
FAQ rich results are gone. Here is what happened
The announcement was a small note at the top of the FAQ structured data developer documentation. No advance warning beyond the three-year phase-out that most stores never tracked.
The timeline of the FAQ rich results deprecation
What does this mean for your existing FAQ schema?
If the FAQ section on your product pages contains genuine, useful answers to real customer questions, the markup should stay. If it was filler added to inflate SERP real estate, this is a good time to clean up both the content and the schema.
The FAQPage type remains valid schema.org markup, and AI crawlers still use it to answer user questions and link back to your product.
A well-optimized product page that includes one FAQ: 'Can this tent fit 4 people comfortably?' would increase the chances of AI overview crawling content from your website.
Given the nature of AEO (Answer Engine Optimization), where users ask long, natural-language questions, and the fact that AI overviews now appear in 47% of Google search results, FAQs that address your users’ questions could be the most valuable content on your product pages.
If you want to go deeper on what AI-driven discovery means for your product pages, this conversation is worth 10 minutes
Shero Commerce CEO Beth Shero is joined by Cande Rybecky and Molly Siston, co-founder of somi, to discuss what AI-driven product discovery means for eCommerce brands.
The two product-rich result types
Google now distinguishes between two classes of product-rich results, each with different requirements. Most implementation guides treat them as the same thing. They are not.
Product Snippets are available to any page that describes a product, including editorial reviews and comparison pages. They focus on ratings, reviews, and basic pricing. These are the star ratings and price ranges that appear under organic search listings.
Merchant Listings are only available on pages where a customer can actually buy the product. They unlock Shopping panel appearances, Popular Products, price drop alerts, and product carousels. The required fields are stricter: name, image, and offers with price, priceCurrency, and availability. You also need product identifiers: GTIN, MPN, or SKU. Without identifiers, Google cannot match your product to its catalog or compare it across sellers.
A Shopify product page can qualify for both simultaneously. Adding the full Merchant Listing field set also satisfies Product Snippet requirements.
When to add which?
If a customer can buy the product on that page, implement Merchant Listing schema. If you are writing a review or comparison post, use Product Snippet schema.
How to add Product schema to Shopify
There are two paths: manual JSON-LD via Liquid for stores with developer access, and apps for everyone else. Both can produce a valid schema.
The manual route gives you more control over variants, dynamic pricing, and custom logic. Apps are faster and require no coding knowledge, but they carry the risk of duplicating schema if your theme already generates it.
While we are mainly focused on FAQ rich results and Review Stars on this piece, the tool below will provide the know-how and ready-made snippets for all Shopify and eCommerce structured data. Get back to it whenever you need guidance.
Shopify Rich Snippets and Schema Glossary
Shopify Schema Markup · 2026
Pick a schema type to get started
Each entry explains what it does, whether Shopify already covers it, and exactly how to implement it — with or without a developer.
15
Schema types, ranked by search impact
2
Paths for each: app-based or manual code
5
Common mistakes that silently break rich results
Critical
Product
Product pages
Shopify default|Partial — outputs name, image, price and availability only. Brand, SKU, shipping and return fields are missing.
What it does
Product schema is the foundation everything else builds on. It tells Google — and AI search engines like Perplexity and Google AI Overviews — the basic facts about what you sell: name, description, image, SKU, and brand.
In 2026 Google distinguishes between two classes of product rich result. Product Snippets show star ratings and basic pricing under organic listings. Merchant Listings unlock Shopping panel appearances, price drop alerts, and carousels — but only when you also include a GTIN, MPN, or SKU identifier. A fully built Product schema qualifies for both simultaneously.
What's included vs. missing
Shopify includes ✓
Product name
Featured image
Price
In / out of stock status
Not included ✗
Brand / vendor
SKU / GTIN / MPN identifiers
Description
ShippingDetails
MerchantReturnPolicy
AggregateRating
⚠Without a SKU, GTIN, or MPN identifier Google cannot match your product to its catalog or compare prices across sellers. This means you miss Merchant Listings entirely.
How to implement it
⚠Before installing any schema app, run the Google Rich Results Test on a product page first. If your theme already outputs Product schema and the app also outputs it, Google ignores both blocks. Disable the theme schema first, or use an app that detects and resolves conflicts automatically.
SP
Schema Plus for SEO
Covers Product, AggregateRating, BreadcrumbList, and more. Detects and removes duplicate schema from your theme automatically. Includes an onboarding call.
Paid
★ 4.9 · 545 reviews
IL
Ilana's JSON-LD for SEO
Established since 2015. Handles legacy theme conflicts well. Active personal support. Best choice if you have messy existing schema from a previous theme or app.
Paid
★ 4.9 · Established
NB
Nabu Schema Pro
Free app by AdNabu. Covers 6 schema types including Product. Good starting point for smaller stores wanting solid baseline coverage at no cost.
Free
New · No reviews yet
1
In your Shopify admin go to Online Store → Themes → ⋯ → Edit code
2
Open sections/main-product.liquid (Dawn and modern themes) or templates/product.liquid (older themes). Search the file for ld+json or structured_data. If found, your theme already outputs schema — extend it rather than adding a second block on top.
3
Paste the block below just before the closing </body> tag. Save, then test immediately with the Rich Results Test — do not wait for Google to re-index.
ℹThe aggregateRating block is conditional — it only outputs if you have Shopify's native review metafields populated. If you use a review app like Judge.me, the app injects its own aggregateRating block and you should remove that conditional to avoid duplication.
How to verify it's working
✓
Go to search.google.com/test/rich-results, paste a product URL, and confirm Product is detected with no errors or warnings.
✓
Check that the price shown in the test exactly matches the visible price on the page. Any mismatch causes Google to remove the rich result.
✓
Look for a SKU field in the test output. If it's absent, you won't qualify for Merchant Listings.
Critical
Offer
Product pages · nested inside Product schema
Shopify default|Partial — price, currency and availability are output. The shippingDetails and hasMerchantReturnPolicy fields that unlock additional rich results are missing.
What it does
Offer is not a standalone schema type — it lives inside your Product block. It tells Google the exact price, currency, stock status, and condition of the item. This is what makes your price appear directly in search results before someone clicks.
Adding the two missing fields — shippingDetails and hasMerchantReturnPolicy — unlocks delivery time and return window display in Google search results, which Shopify does not include by default.
The non-negotiable rules
⚠The price in your schema must exactly match the visible price on the page at all times. If your storefront shows £49.99 but the schema outputs £49, Google removes the rich result. Always use dynamic Liquid variables — never hardcode prices.
⚠The availability field must also be dynamic. Hardcoding InStock when items go out of stock is a policy violation that Google actively penalises with demotion or removal of the rich result.
ℹSome store locales format prices with a comma as the decimal separator (e.g. 49,99). Google expects a period. Always pipe through | remove: ',' — or use | json which outputs a clean numeric string — to avoid invalid output.
ℹpriceValidUntil is computed dynamically by adding 31,536,000 seconds (one year) to today's Unix timestamp, then formatting as a date. This avoids the Search Console warning that appears when priceValidUntil is set to a past date.
Critical
ProductGroup
Product pages with variants (sizes, colours, materials, etc.)
Shopify default|Not included. Shopify outputs no ProductGroup schema. Each variant is invisible to Google as part of a grouped product.
What it does
If you sell a t-shirt in 5 sizes and 4 colours, you have 20 variants. Without ProductGroup schema, Google sees them as separate unrelated items — or ignores them entirely. With it, all variants are grouped under one parent product entity, which gives Google a clean picture of your full offering.
This matters for Merchant Listings. Google can then show a price range, display colour and size options in search results, and correctly match your product across Shopping surfaces and price comparison.
Implementation note
ℹProductGroup is one of the more complex schema types to implement manually because it requires looping through all variants in Liquid and handling conditional comma placement to avoid invalid JSON. Apps like Schema Plus for SEO or JSON-LD Express handle this automatically including variant-level pricing differences. This is one of the few schema types where an app is genuinely easier than manual code.
Shopify default|Not included. Shopify outputs no AggregateRating schema. Your products will never show stars in search results without this, no matter how many reviews you have.
What it does
AggregateRating is what produces the star ratings visible under product listings in Google search results. It requires either a live review app or reviews stored in Shopify metafields, and the actual review content must be visible on the page.
Rules Google enforces
⚠Only add AggregateRating schema where real customer reviews are visible on the page. Adding it to a page with no visible reviews is a policy violation. Google also requires a minimum of 5 reviews before star ratings will appear in results.
⚠Duplicate schema is the most common failure with Yotpo. Both Yotpo and the theme inject AggregateRating on the same page, and Google ignores both. If you use Yotpo, check specifically for this after enabling rich snippets in the app settings.
Via a review app (recommended)
JM
Judge.me
98% pass rate on the Google Rich Results Test — highest of any major review app. Free plan includes rich snippets. Clean schema that rarely breaks on theme updates. Best option for most stores.
Free / $15/mo
Shopify-focused
LX
Loox
94% pass rate. Best for photo reviews. Ideal for apparel, beauty, and home goods stores where customer photos drive conversion. Occasional widget customisation can break JSON-LD injection.
Paid
Photo-first
YT
Yotpo
92% pass rate — lowest of the major apps, mostly from duplicate schema issues. Best if you also need loyalty programmes, SMS, or UGC tools in one platform.
Free / Paid
All-in-one
Manual (no review app)
ℹThis only works if you use Shopify's native product review metafields. The block is conditional — it outputs nothing if the metafield is empty, preventing Google from seeing zero-value rating data.
Shopify default|Included in Dawn 15+ and most modern themes. Verify it's present before spending time on other schema types.
What it does
BreadcrumbList shows the page path directly in search results — for example Home › Clothing › T-Shirts › Product Name. It also helps Google understand your store's hierarchy, which supports how your collection and category pages are crawled and ranked.
Dawn 15+ includes this by default across product, collection, and blog pages. If you are on a heavily customised or older theme, verify it's present with the Rich Results Test before assuming it's there.
ℹThe {% if collection %} conditional handles the case where a product is viewed outside a collection context, ensuring the breadcrumb doesn't output an empty middle step.
High Impact
ShippingDetails
Product pages
Shopify default|Not included. One of the most underused schema types in Shopify — and one of the most visible when implemented correctly.
What it does
ShippingDetails lets Google display your delivery cost and estimated delivery window directly in search results, before someone clicks your listing. This is an opportunity to show "Free shipping · 2–5 days" next to your product title — a direct conversion lever that most Shopify stores miss.
It nests inside the Offer block and defines a shipping rate, destination country, handling time, and transit time.
How to implement it
JX
JSON-LD Express for SEO
One of the few Shopify apps that explicitly generates ShippingDetails and ReturnPolicy schema. Built-for-Shopify certified. Merchants specifically cite video and shipping markup support in 2026 reviews.
ℹAdd this as a field inside the offers object in your Product schema. Update addressCountry to your shipping destination, set value to your shipping cost (0 for free shipping), and adjust the minValue / maxValue days to match your actual delivery window.
High Impact
MerchantReturnPolicy
Product pages
Shopify default|Not included. Your return window is invisible to Google without this schema type.
What it does
MerchantReturnPolicy tells Google your return window — for example "30-day free returns." Google can display this directly under search results before someone visits your store. In competitive product categories this is a meaningful click-through rate lever, particularly when a competitor's listing shows no returns information at all.
It nests inside the Offer block, alongside ShippingDetails. You define whether returns are accepted, the window in days, how items are returned, and whether there is a fee.
ℹUpdate merchantReturnDays to match your actual policy. For no-returns policies use MerchantReturnNotPermitted. For a final-sale policy use MerchantReturnUnlimitedWindow if returns are always accepted regardless of time.
High Impact
Organisation
Homepage and About page only
Shopify default|Basic version included. Typically missing sameAs social profile links and logo, which are needed for Knowledge Panel eligibility.
What it does
Organisation schema identifies your brand to Google. It's what makes your logo eligible to appear in the Knowledge Panel on branded searches. The sameAs array — linking to your Instagram, Facebook, and Wikidata entry — is what anchors your brand as a distinct entity in Google's Knowledge Graph, which in turn helps AI systems correctly attribute content to your brand rather than treating pages as anonymous.
Shopify includes a basic version in the theme, but the sameAs links are almost always missing and need to be added manually.
Complete Organisation block
Liquid + JSON-LD · theme.liquid <head> — homepage only
ℹThe {% if template == 'index' %} wrapper ensures this only outputs on the homepage. Replace logo.png with your actual logo filename in the Shopify assets folder, and update each sameAs URL to your real social profiles.
High Impact
Review
Product pages with visible customer reviews
Shopify default|Not included. Requires a review app or manual implementation against Shopify review metafields.
What it does
Review schema marks up individual customer reviews — reviewer name, rating value, date, and review text. This gives Google structured access to the detail behind your star ratings, which feeds into rich results and helps AI search engines cite product quality information when answering shopping queries.
In practice, every major review app handles Review schema output automatically when rich snippets are enabled. If you are already using Judge.me, Loox, Yotpo, or Stamped with rich snippets on, individual Review schema is already being output correctly alongside AggregateRating.
Action required
✓Go into your review app settings and confirm Rich Snippets or Google Integration is toggled on. That single setting handles both Review and AggregateRating schema output for every product page.
Supporting
CollectionPage
Collection and category pages
Shopify default|Not included. Shopify outputs no schema on collection pages by default.
What it does
CollectionPage schema marks up your category and collection pages, telling Google this page is a listing of products rather than a single product page. It also communicates your site hierarchy — which collections sit under which categories.
This doesn't produce a visual rich result you'll see directly in search, but it improves how Google indexes and ranks your collection pages over time and helps AI systems understand your full catalog structure.
ItemList tells Google this page contains an ordered, curated list of products. This is the schema type that can produce product carousels in Google Search — rows of items with images and prices that appear above traditional organic results.
It works best on landing pages where you've specifically curated a selection, such as "Best Running Shoes Under £100" or "Gift Ideas for Her." It can be used alongside CollectionPage on the same page.
Implementation
Liquid + JSON-LD · collection or landing page template
Shopify default|Basic version included. The author field with a Person type — which Google uses for expertise signals and AI Overview attribution — is typically missing.
What it does
Article schema structures your blog content for Google and AI search engines. The most important benefit in 2026 is Google AI Overview inclusion — pages with properly structured Article schema including a named author and a clear publish date are significantly more likely to be cited in AI-generated answers than pages without it.
Shopify outputs a basic Article block, but the author field is usually just a plain string rather than a Person type with credentials. Adding the full block below replaces that with a version Google can properly attribute.
ℹIf your theme already outputs Article schema, search sections/main-article.liquid for ld+json first and replace the existing block rather than adding a second one.
Contextual
FAQPage
Product and blog pages with genuine Q&A content
Shopify default|Not included. The Google SERP dropdown feature was removed in May 2026, but FAQ schema still has value for AI search engines.
What changed in May 2026
⚠Google removed the FAQ accordion dropdown from search results on 7 May 2026. The expandable Q&A panels that used to appear under listings are gone. If you added FAQ schema specifically to earn those visual panels, that feature no longer exists.
However, Google has confirmed it continues reading FAQ structured data to understand page content. More relevantly for Shopify merchants: the retrieval systems behind Google AI Overviews, Perplexity, and ChatGPT search actively use FAQPage schema to extract Q&A content. Pages with well-written FAQ schema that answer genuine product questions — sizing, materials, shipping, returns — are more likely to be cited when an AI system answers a related query.
When to add it and when not to
✓Add FAQPage schema where you have a genuine FAQ section with real answers to questions customers actually ask. Content quality matters more than ever now that the visual reward is gone — the benefit is AI citation, which rewards substance.
✗Do not add FAQ schema to thin, keyword-stuffed Q&A sections added only to inflate search real estate. AI crawlers are increasingly effective at identifying low-quality structured content.
Implementation
JSON-LD · add to product or blog template
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is your return policy?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We accept returns within 30 days of purchase. Items must be unworn and in their original packaging. Return postage is free."
}
},
{
"@type": "Question",
"name": "How long does delivery take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Standard delivery takes 3 to 5 business days. Express delivery is available at checkout for next-day delivery."
}
}
]
}
</script>
Contextual
VideoObject
Product pages with demo or unboxing videos
Shopify default|Not included. Only relevant if you have product videos embedded on your pages.
What it does
VideoObject tells Google the metadata for a video on your product page — title, description, thumbnail, upload date, and duration. This makes the video eligible to appear in Google video search results and video carousels, which can drive additional discovery traffic beyond standard organic listings.
If you host your product videos on YouTube, Google often picks up the metadata automatically. Adding explicit VideoObject schema guarantees accuracy and ensures the video is associated with the correct product page.
How to implement it
JX
JSON-LD Express for SEO
One of the very few Shopify apps that generates VideoObject schema. Merchants specifically cite video markup support in 2026 reviews alongside ShippingDetails and ReturnPolicy.
ℹReplace YOUR_VIDEO_ID with your YouTube video ID. Set uploadDate to when the video was published. duration uses ISO 8601 format — PT2M30S means 2 minutes and 30 seconds.
Contextual
LocalBusiness
Homepage or store locator page · physical stores only
Shopify default|Not included. Only relevant if you have a physical retail location — skip entirely if you are a pure online store.
What it does
LocalBusiness schema tells Google your physical store address, opening hours, phone number, and coordinates — the data that powers your appearance in local search results and Google Maps. Without it, Google has to infer this information from unstructured text on your page, which is less reliable.
If you are an online-only store, skip this schema type entirely. It does not apply.
Implementation
Liquid + JSON-LD · theme.liquid <head> — homepage only
ℹReplace all placeholder values with your real address, phone, coordinates, and opening hours. Remove the geo block if you prefer not to expose exact coordinates.
Step 5. Save the file and test immediately using the Rich Results Test on a product URL or the ahrefs extension. Do not wait until it is indexed. The tester reads the live page and tells you immediately if anything is broken.
2. App-based schema (no code required)
If you are not comfortable editing Liquid files, an app is the right choice. Apps automatically inject Product schema using your existing product data and update it when prices or availability change.
JSON-LD for SEO is a commonly used Shopify app for adding product schema
Before installing any schema app, run the Rich Results Test on a product page. If your theme already outputs Product schema, and the app also outputs it, Google will see two conflicting blocks on the same page. This is the most common schema error on Shopify stores, and it causes Google to ignore both blocks. Disable the theme's built-in schema before enabling the app, or use an app that automatically detects and handles theme conflicts.
How to add review stars to Shopify
Star ratings in Google search results come from the aggregateRating field in your Product schema. They matter, as studies and real-world data show that rich snippets with star ratings can improve CTR by 30% or more.
Adding review stars requires some manual work because Shopify's default theme schema does not include them.
You need a review app or a manual implementation. Without one of these, your listings will never show stars, regardless of how many reviews your products have.
How the aggregated rating structured data looks from the Ahrefs web extension
1. Via a review app
Judge.me, Yotpo, Loox, and Stamped all support aggregateRating schema output. The step is the same for all of them: go to the app settings, find the SEO or Google Integration section, and confirm that rich snippets or the AggregateRating Schema is enabled.
That toggle tells the app to inject the aggregateRating node into your Product schema with your live rating values and review count.
If you are not using a third-party review app but do have reviews stored in Shopify metafields, add the aggregateRating node directly to your Product schema block. The code in the example above includes a conditional: it only outputs the aggregateRating node if the product.metafields.reviews.rating value exists. This prevents Google from seeing empty or zero-value rating data, which can trigger a penalty.
How the liquid code looks in the Shopify admin
One rule that applies to all implementations
Only add the aggregateRating schema where actual customer reviews are visible on the page. A Schema that claims ratings exist when the page shows none is a policy violation. Google's bots check for consistency between markup and visible content.
Does your store have any gaps?
Structured data is not a 2026 trend. It is the foundation that search, and now AI, runs on.
The disappearance of FAQ rich results from SERPs is not a sign that schema matters less. It is a sign that the game has shifted. Google, Perplexity, and ChatGPT are all reading your store's structured data to decide whether to cite you, surface you, or buy directly from your store as AI agents become increasingly popular.
Most Shopify stores have enough schema to pass a surface check. But not enough to show up where AI answers have replaced the first three organic results. If you want a full audit, our SEO team can show you the gaps.
01How long does it take for rich results to appear after adding schema?
Google typically picks up schema changes within a few days of crawling the updated page. Seeing rich results in SERPs after that takes longer, usually two to six weeks, and is not guaranteed. Google decides whether to display a rich result based on multiple factors beyond the markup itself. If nothing appears after six weeks, run the Rich Results Test to confirm the schema is valid, then check Search Console for any errors that may be blocking it.
02Will editing my Liquid files to add Schema break my store?
It can if you make a syntax error while adding product schema, which is why you should duplicate your theme before touching any code. In your Shopify admin, go to Online Store> Themes> Actions> Duplicate. Work on the duplicate. Test it. Push it live only when the Rich Results Test confirms everything is clean. Editing a live theme without a backup is the only way this goes wrong.
03What about Shopify Markets and multi-currency stores?
This is where default schema often breaks. The priceCurrency field in the code example uses cart.currency.iso_code, which reflects the customer's active currency rather than your store's base currency. That is correct behavior, but it means Google may crawl your page in one currency and display pricing in another depending on when and where it crawls. For stores with multiple active markets, testing schema on a per-market basis in the Rich Results Test is worth doing before assuming the output is consistent.
04I already have an SEO app installed. Is it handling my schema?
Maybe, and that is the problem. Apps like Plug in SEO, SEO King, and Booster SEO all include some form of schema output, but the coverage varies and is rarely complete. The only way to know what your store is actually outputting is to run the Rich Results Test on a product page and read the results. If your SEO app is already outputting Product schema and you add a manual block on top of it, Google sees two conflicting sources and may ignore both. Audit before you add anything.
05Do I need to resubmit to Google after making schema changes?
You do not have to, but it speeds things up. In Google Search Console, go to the URL Inspection tool, paste the product URL you edited, and click Request Indexing. Google will recrawl that page sooner than it would on its regular schedule. Do this for a handful of representative product pages after making schema changes. You do not need to submit every product URL individually.
06Do my product images affect whether rich results appear?
Yes. Google has image quality requirements for Product rich results. Images must be crawlable and indexable, at least 50x50 pixels, and ideally 800px or wider for good display quality. Watermarked images, images blocked by robots.txt, and images served from domains that block Googlebot will all prevent rich results from rendering even when the schema is otherwise valid. If your schema is passing the Rich Results Test but stars are not appearing in SERPs, image accessibility is one of the first things to check.
Ildi Veliu
Ildi is a Technical SEO Specialist at Shero Commerce on a mission to help websites unlock their full organic potential. With a background in Informatics-Economics, he bridges the gap between technical web development and search engine algorithms, specializing in technical audits and search performance strategy. He is always looking for new ways to outsmart the algorithms and drive high-intent organic traffic.