If you're seeing structured data warnings in Google Search Console or your Shopify products aren't showing rich results, you likely have duplicate product schema on your store. This is one of the most common Shopify SEO issues, and it's surprisingly easy to fix.
In this guide, we'll show you exactly how to identify and fix duplicate schema markup on Shopify, implement the recommended ProductGroup structured data, and ensure your products are eligible for Google's rich results and Merchant Center listings.
Product schema (also called structured data or JSON-LD) is code that helps search engines understand your products. When implemented correctly, it enables rich results in Google Search — those eye-catching listings that show star ratings, prices, availability, and product images directly in search results.
According to research, pages with rich results have up to 82% higher click-through rates than standard listings. Yet only 30% of websites currently use schema markup properly — making this a major competitive advantage for Shopify store owners who get it right.
Most Shopify stores unknowingly have multiple sources outputting product schema, creating conflicts that can hurt your SEO and ad performance:
- Google Search Console warnings about duplicate or conflicting structured data
- Google Merchant Center rejections that can stop your Shopping ads
- Inconsistent data (different prices, missing fields) confuses search engines
- Lost eligibility for rich results and product carousels
- AI search engines like ChatGPT and Google AI may extract incorrect product data
Before you can fix duplicate schema, you need to understand where it's coming from. Here are the most common culprits:
1. Your Shopify Theme's Built-in Schema
Most Shopify themes (including Dawn and its derivatives) automatically output product schema using the {{ product | structured_data }} Liquid filter. This outputs a ProductGroup with variants — which is correct, but conflicts with other schema sources.
2. Review Apps
Apps like Reviews.io, Judge.me, Yotpo, Loox, and Stamped often inject their own Product schema with aggregateRating data. This creates a second (or third) Product entity on the same page.
3. SEO Apps
Apps like JSON-LD for SEO, Schema App, or Smart SEO may add their own structured data, potentially duplicating what your theme already outputs.
4. Manual Code Additions
If you or a developer previously added custom schema markup to your theme, this could conflict with other sources.
Here's how to identify if you have duplicate product schema:
- Visit any product page on your store
- View the page source (Ctrl+U on Windows, Cmd+Option+U on Mac)
- Search for "application/ld+json" — each occurrence is a schema block
- Count how many contain "@type": "Product" or "@type": "ProductGroup"
- If you find more than one product-related schema block, you have duplicates
You can also use Google's Rich Results Test (search.google.com/test/rich-results) to see exactly what structured data Google detects on your page.
In February 2024, Google expanded support for ProductGroup structured data, which is now the recommended approach for products with variants (sizes, colours, etc.).
How ProductGroup Works
- ProductGroup represents the parent product — the umbrella item all variants belong to
- Each variant is a separate Product with its own price, SKU, and availability
- Variants link back to the parent using isVariantOf
- Shared data (brand, description, reviews) lives on the ProductGroup, reducing duplication
This structure is particularly important for Google Merchant Center and Shopping ads, as it helps Google understand your product variants and display the correct information.
The fix is straightforward: use ONE source for your product schema and disable all others. Here's how to do it step by step.
For Dawn theme (and most modern Shopify themes), find and comment out the structured_data filter:
{%- comment -%} Disabled for single schema source
{{ product | structured_data }}
{%- endcomment -%}Common locations to check:
- theme.liquid (in the <head> section)
- main-product.liquid
- product.json or product.liquid
Search your theme files for "structured_data" or "application/ld+json" to find all instances.
If you use a review app, you'll need to disable its schema output while keeping the review data accessible.
For Reviews.io:
- Go to Dashboard → Integrations → Shopify
- Ensure "Sync review data to Shopify metafields" is enabled
- Go to Widgets → SEO
- Disable "Product Schema" or "Structured Data" output
This way, your review ratings are still available via metafields (which ProductEasy reads), but Reviews.io won't output conflicting schema.
For Judge.me:
- Go to Settings → SEO
- Disable "Add structured data to product pages"
For Yotpo, Loox, Stamped:
Check their settings for "Structured Data", "Schema Markup", or "SEO" options and disable schema output.
After making changes, verify everything is working correctly:
- Clear your Shopify theme cache (Theme Settings → Clear cache)
- View your product page source — you should see only ONE ld+json block with product data
- Verify the schema contains "@type": "ProductGroup" with a "hasVariant" array
- Test with Google's Rich Results Test to confirm no errors
- Check Google Search Console over the following days for any new warnings
A properly configured ProductGroup schema includes:
- Product name, brand, and description
- High-quality product images
- Aggregate rating and review count (from your review app)
- Per-variant data: SKU, GTIN/barcode, price, availability
- Properly formatted prices with currency
- Real-time availability (InStock/OutOfStock)
- Variant linking via isVariantOf
Setting up schema correctly can be technical and time-consuming. That's exactly why we built ProductEasy.
ProductEasy automatically generates complete, Google-compliant ProductGroup schema for all your products. It includes:
- Automatic ProductGroup + Variants structure following Google's latest guidelines
- AI-generated product descriptions that enhance your schema content
- Seamless Reviews.io integration — we read your ratings directly from metafields
- Proper GTIN formatting (gtin8, gtin12, gtin13, gtin14) based on barcode length
- Real-time pricing and availability synced from Shopify
- Smart fallbacks for products without AI descriptions
- One-click toggle to enable or disable schema output
Simply install ProductEasy, disable your theme's native schema, and you're done. No code editing, no technical knowledge required. We handle all the complexity so you can focus on growing your business.
Does duplicate schema hurt SEO?
While Google says duplicate schema isn't inherently penalised, it can cause issues. Conflicting data (different prices, missing fields) confuses search engines and may result in your rich results not showing. For Google Merchant Center, duplicate or incomplete schema can cause ad rejections.
How do I check for duplicate schema on Shopify?
View your product page source and search for "application/ld+json". If you find multiple blocks containing Product or ProductGroup data, you have duplicates. You can also use Google's Rich Results Test for a clearer view.
What is the difference between ProductGroup and Product schema?
ProductGroup is the parent container for products with variants. It holds shared data like brand, description, and reviews. Each variant is a separate Product entity linked back via isVariantOf. This is Google's recommended structure since February 2024.
Do I need to disable my theme schema if I use ProductEasy?
Yes. ProductEasy outputs complete ProductGroup schema, so you should disable your theme's {{ product | structured_data }} to avoid duplicates. We provide step-by-step guidance during setup.
Will fixing schema affect my Google Merchant Center listings?
Yes, positively. Clean, complete schema helps Google Merchant Center accurately understand your products and variants. This can resolve feed errors and improve your Shopping ad eligibility.
How long until I see rich results after fixing my schema?
Google needs to recrawl your pages to detect the updated schema. This typically takes a few days to a few weeks. You can use Google Search Console to request indexing of specific pages to speed up the process.
Duplicate product schema is one of the most common — and most fixable — SEO issues on Shopify stores. By consolidating to a single schema source and implementing proper ProductGroup structured data, you'll improve your chances of earning rich results, keep Google Merchant Center happy, and provide clearer signals to AI-powered search engines.
Whether you fix it manually or let ProductEasy handle it automatically, the important thing is to take action. Your search visibility — and your sales — will thank you.