Remove duplicate product schema Shopify errors usually show up right after a theme change, an SEO app install, or adding a reviews app. As a result, Google may detect two (or more) Product entities on one product URL and show “Multiple items detected” in Search Console.
In this guide, you’ll find the duplicate source fast, remove the extra markup safely, and confirm the fix with Google’s testing tools without breaking your theme.
Duplicate structured data is rarely “random.” Instead, it comes from two systems outputting similar Product markup at the same time.
Most modern Shopify themes output Product schema automatically. Many apps do too.
Typical combinations that create duplicates:
Because Google expects a clear, unambiguous entity per page, you can trigger warnings in the Search Console Enhancements reports. Google documents structured data and rich result requirements.
When Google says “multiple items detected,” it typically means:
You can still rank, however this can reduce rich result eligibility or cause unstable snippets. Therefore, it’s worth fixing.
Next, look for clues:
Google’s Rich Results Test focuses on rich result features. For a full schema view, also use Schema.org’s validator:
This helps you spot Microdata (itemtype/itemprop) that a theme may output, even when an app outputs JSON-LD.
Now you need the exact source. In most Shopify builds, it’s either (1) theme code or (2) app injections.
Open your product page in Chrome, then:
If you see multiple JSON-LD scripts containing Product, you’ve found the issue.
In OS 2.0, Product schema commonly appears in:
If your theme still uses older templates, also check:
Shopify explains theme code editing basics here: https://help.shopify.com/en/manual/online-store/themes/theme-structure/extend
To remove duplicate product schema Shopify issues long term, decide what should generate the final Product entity.
Choose this if:
Then you disable Product schema output from SEO apps or review apps.
Choose this if:
Then you remove schema from the theme.
Either way, the goal is the same: one Product entity per product URL.
In Shopify Admin:
Online Store → Themes → … → Duplicate
Next, edit the duplicated theme. This keeps rollback simple.
Go to:
Online Store → Themes → Edit code → sections/main-product.liquid
Search for a block that looks like:
liquid
<script type=”application/ld+json”>
{ “@context”: “https://schema.org”, “@type”: “Product”, … }
</script>
Then either:
For example, you can disable it temporarily:
liquid
{% comment %} Disabled to prevent duplicate Product schema {% endcomment %}
{%- comment -%}
…JSON-LD block here…
{%- endcomment -%}
After that, save and retest the live URL.
If you see markup like:
You must remove or refactor it, because it can create a second Product item. In that case, keep JSON-LD and remove Microdata attributes where they appear in product title, price, and description blocks.
Review apps often inject:
If your theme already includes rating fields or your SEO app does, you’ll get duplicates.
First, check the app settings for “Structured data” toggles. Many apps let you disable schema output without code changes.
If you still see duplicates, search theme code for app snippets, for example in:
Then remove the snippet include (only if the app’s docs confirm it’s safe).
Because schema issues are easy to reintroduce, retest in this order:
In Google Search Console, use URL Inspection → Request indexing. Google explains URL Inspection.
Even so, enhancements reports can take days or weeks to fully refresh. Therefore, keep a changelog and monitor trends, not just one-day snapshots.
Aim for one Product entity that includes:
Schema reference: https://schema.org/Product
If two apps both claim “rich snippets,” they can both output Product JSON-LD. As a result, duplicates return after the next update.
Write down:
If you want a second set of eyes, run a structured data audit as part of a technical SEO review. You can start at https://artzen.io/ and map schema issues alongside indexation and crawl signals.
Duplicate product schema is a common Shopify issue, especially after adding a new theme, SEO app, or review app. The good news is you can fix it without guessing. First, confirm the problem with Google’s testing tools, then choose one trusted source for your product details, and remove the extra markup. After that, retest and request indexing so Google updates faster. If you’d rather not touch code, a professional SEO audit can handle it safely and correctly.
Google detects two Product entities when both your theme and an app output Product markup. For example, your theme may output JSON-LD, while a reviews app injects another Product with aggregateRating. Use Rich Results Test to confirm how many Product items Google sees.
You can, but it’s risky for product pages. If Google sees multiple Product entities on a single URL, it may flag “Multiple items detected” and ignore one of them. In most Shopify stores, one clear Product entity per product URL performs best.
In Dawn (Online Store 2.0), Product JSON-LD is usually inside sections/main-product.liquid or a snippet that file includes. Search your theme code for application/ld+json or @type”:”Product” to find the exact block before editing.
Start in the app settings and disable “structured data” or “rich snippets” output if available. If duplicates remain, check theme.liquid and main-product.liquid for app snippet includes. Then remove only the schema-related snippet, based on the app’s documentation.
Duplicate schema usually doesn’t cause a direct ranking penalty. However, it can break rich results eligibility or create unstable snippets, which can reduce click-through rate. Because rich snippets influence visibility, cleaning duplicates is a practical SEO win.
After you fix duplicate Product schema, Google must recrawl and reprocess the page. That can take a few days, and Search Console enhancements can lag longer. Request indexing in URL Inspection to speed up discovery, then monitor the Enhancements report over time.
JSON-LD is usually easier to manage because it lives in one script block and doesn’t require itemprop attributes across HTML. Microdata can accidentally duplicate entities when apps also inject JSON-LD. For Shopify, keeping one clean JSON-LD Product is often the simplest approach.