Skip to content

Public preview · Free feed checks are available. Paid reports and downloads are not available yet.

How to fix duplicate product IDs in a Google feed

Each offer needs a stable unique ID. Determine why multiple rows share an identifier before changing IDs, merging products or removing records.

Reviewed October 4, 2026 · Independent guidance · Static feed check with contextual limitations

What does this issue mean?

Product ID identifies your submitted offer over time. It is not the manufacturer barcode or the variant family identifier. Variants normally have distinct offer IDs even when they share item_group_id. Duplicate IDs can make records ambiguous, while unnecessarily changing established IDs can disrupt historical associations and integrations.

Why this happens

Repeated rows can come from joining inventory and image tables, exporting the parent ID for every variation, or appending feed snapshots without deduplication. An image gallery row structure from another platform is not automatically a separate valid Google product offer. Repair the generation logic rather than deleting arbitrary rows from the final export.

How to diagnose and fix it

  1. Group the affected records by ID and compare their variation attributes, links, prices and source references.
  2. Identify whether the rows are true duplicate offers, separate variants or repeated records created by a join.
  3. Give distinct offers their correct stable source IDs; retain the shared parent identity in item_group_id when applicable.
  4. Regenerate the feed and check the entire ID column for uniqueness before replacing the operational source.

Before and after example

The examples are illustrative. Replace them with verified information for your own offer; copying an example identifier, amount or URL would introduce incorrect data.

Before

id,item_group_id,size
SHIRT,SHIRT,S
SHIRT,SHIRT,M

After review

id,item_group_id,size
SHIRT-S,SHIRT,S
SHIRT-M,SHIRT,M

Feed Doctor does not delete duplicate rows or invent replacement IDs. Its duplicate count refers to affected records, and existing ID changes should be reviewed against your integrations.

Shopify fix

Find the affected product and exact variant in your Shopify catalog, then identify which product field or Google & YouTube channel setting supplies id. If a separate feed app generates your export, inspect its mapping instead of assuming the channel settings control that file. Change verified source data, save it, and obtain a fresh export.

Compare one affected variant and one previously correct offer before making a bulk change. Do not change stable IDs just to improve a report score. If the issue involves identifiers, verify whether the connector reads barcode, brand or manufacturer reference data. If it concerns a live page or shipping account setting, a feed-column edit alone may not resolve it.

WooCommerce fix

Open the relevant product or variation and inspect the attribute consumed by your Google feed integration. Google for WooCommerce can map product attributes into feed attributes; third-party feed generators may use different mappings. Check both the stored value and the exported result, especially when parent attributes are inherited by variations.

Update the source value or mapping deliberately and regenerate the feed. Keep product identity, currency and variant relationships consistent. Avoid editing only a downloaded snapshot if a scheduled exporter will replace that change. For an account or website issue, repair the effective configuration and public offer as well as reviewing the file.

Verify the repair before submitting

Keep the original feed as a backup and compare the same affected product IDs in the regenerated file. Confirm that the expected product count remains unchanged and that no unrelated fields disappeared. If you applied a bulk rule, inspect offers outside the original affected set as a control; an overly broad mapping can fix one problem while creating another.

Run a new static scan, then separately check live product information and your Merchant Center diagnostics. File format validation cannot determine every policy, account, image or website condition. Processing and recrawling take place in Google’s systems, so a corrected file is not an immediate promise of approval. Use the actual updated diagnostics to decide whether additional investigation is required.

Scan your feed for this issue

Check all parsed products in an XML, CSV or TSV feed. Preview the score and issue samples free; unlock affected-product details and downloadable reports with a one-time payment. Conditional findings remain marked for review.

Check My Feed

Frequently asked questions

Does this finding always mean my product is disapproved?

Feed Doctor does not delete duplicate rows or invent replacement IDs. Its duplicate count refers to affected records, and existing ID changes should be reviewed against your integrations.

Can Feed Doctor fix id automatically?

Only deterministic formatting changes are available in Fix & Export. Missing identifiers, prices, business facts and ambiguous values require manual action. Review every change and remaining finding before submitting a repaired feed.

Should I fix the exported file or my store?

Correct the source product or feed integration whenever possible. A downloaded file edit may be overwritten by the next scheduled export. Keep a backup and compare the exact affected IDs in a fresh feed snapshot.

Do I need to connect Google to scan a feed?

No. Feed Doctor accepts a Google-format XML, CSV or TSV file, or a public HTTPS feed URL. It checks the feed without accessing your Merchant Center account. Reports are private to your browser and expire after 7 days.

Related feed issues

Official references: Google product data specification, Shopify Google & YouTube requirements, WooCommerce attribute mapping. Requirements can vary by product, country and account setup.