Merchant Center
How to Fix Duplicate Products in a Merchant Center Product Feed
What counts as a duplicate in Merchant Center, the setups that create them, and how to clean them up without losing product history.
Duplicate products usually aren’t a typo. They come from a setup where two sources send the same items, where IDs change or collide, or where variants are modeled the wrong way. Fixing them is mostly about deciding which source owns each product and keeping IDs stable.
This guide explains Google’s ID rules, the common setups that create duplicates, how to tell variants from duplicates, and a safe order for cleaning up.
Short answer: Duplicates appear when the same product is submitted more than once in an account, usually through two primary data sources (for example an app and a file, or separate online and local sources) or IDs that change. Keep one primary source per product, give each product one unique, stable ID, and model variants with item_group_id rather than repeating products.
Key Takeaways
- Every product needs a unique, stable ID of 1 to 50 characters; Google recommends the SKU.
- Changing an ID overwrites the product and its history, so don’t change IDs to fix duplicates.
- Don’t send the same products in separate online and local primary sources; Google recommends one primary source.
- Casing doesn’t make IDs unique: abc123 and ABC123 can be confused.
- Using the same IDs across separate Merchant Center accounts is fine and won’t cause duplicate disapprovals.
Google’s ID rules in brief
Every product needs an id between 1 and 50 characters. Google’s ID specification recommends using the SKU and sets out these rules:
| Rule | What it means in practice |
|---|---|
| Unique per product | Two different products (or variants) can’t share an ID |
| Stable | Changing an ID overwrites the product and its performance history |
| Same product, same ID | Use the same ID for a product across countries and languages |
| Don’t rely on casing | abc123 and ABC123 may be treated as the same, including when matching supplemental data |
| No reuse | Don’t reuse IDs for different products, variants, a rotating “deal of the day” item, or new products |
| Clean characters | Avoid whitespace, use UTF-8, and avoid invalid Unicode such as control characters |
| Separate accounts are fine | The same IDs in different Merchant Center accounts won’t cause duplicate product disapprovals |
Don’t “fix” duplicates by renaming IDs in bulk. A new ID is a new product to Google, and the old history is lost.
Common causes of duplicate products
These are the setups that create duplicates most often, roughly in order of how often they come up in practice.
Two primary sources sending the same products
Only primary data sources can add products. If a platform app and a manually uploaded file (or two apps, or an old feed nobody switched off) both add the same catalog, you get two copies. Google’s data source guide recommends keeping all products in a single primary source and excluding them from destinations with excluded_destination rather than splitting them.
Separate online and local primary sources
Google says not to submit the same products in separate online and local primary sources. If you sell the same items online and in stores, manage them in one primary source rather than duplicating them.
IDs that changed
A platform migration, a feed plugin swap or a new ID template (for example switching from a numeric post ID to the SKU) can resend the whole catalog under new IDs while the old items still exist. Each product then appears twice until the old ones are removed.
IDs that differ only by case or whitespace
IDs like “SKU-100” and “sku-100 ” may look different to your system but can be confused by Google. Normalize them at the source.
Reused or recycled IDs
Assigning an old ID to a new product, or rotating a single ID across a daily deal, makes Google treat different products as one, and mixes their data and history.
Variants modeled as separate products
If sizes or colors are sent as unrelated products with near-identical titles and the same image, they can look like duplicates. That’s a variant setup problem, covered below.
Variants vs duplicates
Variants are legitimate separate products. According to the item_group_id specification, each variant has its own unique id and shares an item_group_id. Three sizes in three colors are nine products.
| Variants (correct) | Duplicates (problem) | |
|---|---|---|
| IDs | One unique ID per variant | Same product under two IDs, or one ID for two products |
| item_group_id | Shared by all variants of one product | Missing, or used for unrelated items |
| Landing page | Distinct URL per variant that preselects it | Two items pointing to the same page and options |
| Attributes | color, size and similar values differ | Values identical |
| Images | Each variant shows its own color or finish | Same image reused |
Google also says not to submit the parent product as a separate item; use the parent SKU as item_group_id. See how to manage product variants in feeds.
How to find duplicates
- In Merchant Center, list your primary data sources under Settings > Data sources. Note every source that adds products and what feeds it.
- Compare the product count in Merchant Center with the number of sellable items (including variants) in your store. A count close to double is a strong signal.
- Download the product list and sort by title, link and GTIN. Rows with the same link and variant values but different IDs are duplicates.
- Lowercase and trim the IDs in a spreadsheet copy and look for collisions.
- Check Products > Needs attention for duplicate-related issues and note the affected IDs.
For a broader look at data source problems, see how to diagnose data source errors.
How to fix duplicates safely
- Choose one owner per product. Decide which primary source (app, file, API) should supply each product. Usually that’s the platform connection.
- Keep the IDs with history. Where two copies exist, keep the ID that has been live longer, unless it breaks the rules above.
- Remove the extra source or products from it. Delete or stop the duplicate primary source, or remove the duplicated items from it.
- Use supplemental sources for extra attributes. If the second source exists only to add data (custom labels, better titles), turn it into a supplemental source, which can update attributes but can’t add products.
- Fix the ID template at the source. Make IDs consistent in case and characters in the platform or feed tool, not by attribute rules alone.
- Fix variants. Add item_group_id, distinct variant URLs and variant attributes.
- Recheck counts after the next processing and compare with the store again.
Supplemental sources match products by ID exactly, and their feed label must match the primary source. ID casing problems can break that match. See supplemental feeds explained.
If you need to hide products temporarily while you sort this out, Google recommends pause (up to 14 days) or excluded_destination rather than deleting them, because re-added items take significant time to show again.
Platform notes: Shopify and WooCommerce
On both platforms, the most common duplicate setup is two tools adding the same catalog: the official app or extension plus a separate feed plugin, a feed management tool or an old scheduled file.
- Shopify: the Google & YouTube app syncs products as a primary source. If you also upload a file or use another feed app as a primary source for the same products, remove one of them, or turn the extra one into a supplemental source.
- WooCommerce: when switching from one feed plugin to another, check whether the new plugin uses the same ID format (for example SKU vs post ID). If it doesn’t, the switch resends every product under new IDs.
- Both: after reinstalling or reconnecting an app, confirm the product count in Merchant Center before and after the first sync.
Platform connection details are in connecting Shopify and connecting WooCommerce.
Same IDs across countries and accounts
Google wants the same ID for the same product across countries and languages. You don’t need a separate copy per country; a single data source can target several countries. See how to handle multiple countries and currencies.
If you run more than one Merchant Center account (for example separate brands or a Multi-Client Account with sub-accounts), using the same IDs in each is acceptable and won’t cause duplicate products disapprovals, according to Google.
How to prevent duplicates
- Keep a written list of which source owns which products, and review it when you add an app or feed tool.
- Switch off the old connection before connecting a new one, and confirm counts after the first sync.
- Freeze your ID format. If you must change it during a migration, plan the cutover and accept the loss of history.
- Never recycle IDs for new products or rotating deals.
- Compare Merchant Center product counts with the store each month.
A monthly routine is included in the Merchant Center account audit.
When to get help
Duplicates after a migration, or across several data sources and apps, can be tricky to unwind without losing history. If you’re unsure which source to keep, get a second opinion before deleting anything.
Our product feed optimization service covers data source structure, ID strategy and variant setup.
Frequently asked questions
Why are my products showing twice in Merchant Center?
Usually because two primary data sources add the same products, or because IDs changed and the old items still exist. Keep one primary source per product and stable IDs.
Can I use the same product IDs in two Merchant Center accounts?
Yes. Google says using the same IDs across multiple Merchant Center accounts is acceptable and won’t cause duplicate products disapprovals.
Are product variants considered duplicates?
No, if they’re set up correctly. Each variant needs a unique ID, a shared item_group_id, distinct attribute values and its own landing URL.
Should I change my product IDs to remove duplicates?
Avoid it. Changing an ID overwrites the product and its history. Remove the extra copy instead and keep the established ID.
Does Merchant Center treat ABC123 and abc123 as different IDs?
Don’t rely on it. Google says IDs that differ only by casing may be confused, including when matching supplemental data.
Need help untangling duplicate products?
We map your data sources and IDs, decide what owns each product and clean up duplicates without throwing away history.
Sources
- Google Merchant Center Help — ID [id]
- Google Merchant Center Help — Create a product data source
- Google Merchant Center Help — Item group ID [item_group_id]
- Google Merchant Center Help — Availability [availability]
- Google Merchant Center Help — The Needs attention tab
Last reviewed October 10, 2026 against the official documentation listed above. Google changes Merchant Center features and policies regularly — always confirm details in your own account.
