Skip to main content

Duplicate GTINs across variants: auditing GTIN already exists at scale

M
Muhammad Norafif
Aug 25, 2026 7 min read

The error reads like a dead end. "GTIN already exists", item disapproved. It is not a glitch and it will not clear if you resubmit, because two items in your account are claiming to be the same physical product and Merchant Center will not list both until that conflict is gone.

What you'll take away

  • It's a collision, not a bug — one GTIN is appearing on items with different ids, titles, or landing pages.
  • Variants cause most of them — platforms store the barcode once on the parent and copy it down to every child.
  • Two situations, opposite fixes — collect the real per-variant barcodes, or remove the gtin attribute entirely.
  • Audit before you edit — one COUNTIF column tells you which of the two you are looking at.

What the error actually means

A GTIN identifies one sellable unit: one product, one variant, one pack size. The same EAN on two different boxes means the same physical thing, and Google treats it exactly that way.

Merchant Center checks the gtin attribute for collisions in two places. Across the items inside your own account, and against the product data Google has already associated with that GTIN. When one identifier appears on items with different item ids, different titles, or different landing pages, one of those claims is wrong, and both items are held until the data agrees.

Two keys, two behaviours

The item id is your key for the offer: price, availability, link. The GTIN is the key for the physical product. Duplicate item ids merge quietly. Duplicate GTINs collide loudly, and that difference is the whole error.

There is a quieter version of the same message. A mistyped digit can land on someone else's valid barcode. The number passes its check digit, the brand and title do not match Google's catalogue entry, and you get "already exists" because that identifier genuinely is assigned to another product.

Why variants are the usual culprit

Almost nobody hits this because two different products share a barcode. They hit it because one product's variants all carry the same one.

Many ecommerce platforms store the barcode once, at parent level. When the feed is built, every child variant is written as a separate item with its own item id, and the parent's GTIN is copied down to each. Six sizes, one GTIN, six items. Google reads that as six items claiming to be one physical product, and the collision lands in Diagnostics.

SituationWhat's trueThe fix
Variants have their own GTINsFootwear, apparel and most branded goods ship with per-variant barcodes you never collectedEnter the real barcode per variant, at source
Variants never had GTINsPrivate label, bundles and made-to-order items were often barcoded once, or neverRemove the gtin attribute from those items
One product, two itemsThe catalogue was imported twice, or two feeds carry it under different idsOne item id per product per account

The error message is identical in all three cases. That is why the audit comes before the edit.

Audit the feed before touching anything

The spreadsheet method

Export the feed, or the product list from Merchant Center, with these columns: item id, title, gtin, item group id, and the variant attributes you use. Add a helper column beside the data, with C as your gtin column:

=COUNTIF(C:C, C2) > 1

Fill it down and filter to TRUE. Every item sharing a GTIN with another item is now on the table. A pivot table with gtin as rows and a count of item ids as values scales better once the feed runs to thousands of rows.

Then comes the judgment no formula can make. Group the flagged rows by item group id. Duplicates that are siblings under one parent are the variant case. The same GTIN across different item group ids, titles, or brands is a genuine data error, usually a bad supplier import or a barcode copied from an old catalogue.

A spreadsheet of product data open on a screen
One helper column separates a variant problem from a data-entry problem. Everything after that is one edit per collision.

The faster method

Run the same check without the export

The free feed validator runs this pass against the whole feed at once and returns duplicate GTINs grouped by identifier, with the item ids sharing each one listed beside it. It flags invalid check digits on the same attribute too, which show up as a formatting error rather than a duplicate.

The fix, case by case

Variants that have their own GTINs

Collect the per-variant barcodes from the supplier spreadsheet, the case labels, or the GS1 lookup, and enter them per variant in your platform's product fields. Fixing the exported file by hand is a trap, because the edit dies the next time the feed regenerates. Once each child carries its own GTIN the collision disappears, since each item now points at a different physical product.

Variants that never had GTINs

Remove the gtin attribute from those items entirely. Keep the brand. Keep the item group id so Google can still group the variants. Let the absence stand. Submitting the parent's barcode on each child is the error you are trying to clear, and inventing a number opens a worse one.

One product, two items

Sometimes the duplicate is the whole item: the catalogue was imported twice, or one product feeds two Merchant Center feeds in the same account under different ids. Google resolves duplicates by item id, so pick one id per product per account and route everything into it. That consistency has to live in the source data rather than in a trimmed feed file.

Fixes that make it worse

Four ways to turn a disapproval into a bigger problem

  • SKUs in the gtin field — internal SKUs are not GS1 identifiers, and a 12-digit one that looks like a UPC fails check-digit validation.
  • Editing a digit to force uniqueness — the last digit is computed from the others, so the result is invalid, and a pattern of invented identifiers can escalate to an account-level misrepresentation problem.
  • Delete and resubmit — the error lives in the data, so re-adding the item with the same GTIN reproduces it exactly.
  • Patching the export — feed files regenerate, so corrections belong in the platform fields or the feed rules.

Checking that it cleared

Once the corrected feed has been fetched, open Diagnostics, filter item issues to the identifier warning, and watch the count. Affected items return as Google reprocesses the feed, so give it a fetch cycle instead of resubmitting items one at a time.

If the count drops and then stalls above zero, run the duplicate check again. What is usually left is a mix: variants with real GTINs you have fixed, sitting in the same item group as variants that never had any.

The short version
The audit is the job. The fix afterwards is one edit per collision.
Find which item ids share a GTIN, decide whether they are variants that each deserve their own or duplicates that should be one item, then correct it at the source.

Common questions

What does "GTIN already exists" mean in Merchant Center?

It means the same GTIN appears on more than one item that Google can tell apart by id, title, or landing page. Since a GTIN identifies one sellable unit, two items claiming it cannot both be right, so both are held until the data agrees.

Can two product variants share the same GTIN?

No. Each variant that has its own manufacturer barcode needs its own GTIN in the feed. Where variants were never barcoded separately, send no gtin attribute at all and keep them grouped with item group id.

Will removing the GTIN hurt my Shopping performance?

Less than a disapproval does. Items without a GTIN lose some catalogue matching, so the title, brand, images and product type carry more weight. An item with no identifier is a normal, reviewable listing. An item with a contradictory one stays disapproved.

How do I find duplicate GTINs in a large feed?

Export item id, title, gtin and item group id, then flag duplicates with a COUNTIF helper column or a pivot table on the gtin field. For feeds in the thousands of rows, run the feed through a validator that groups duplicates by identifier and skip the export entirely.

Free tool

Not sure if your feed has errors?

Run your Google Shopping, Meta, or TikTok product feed through our free validator and get a prioritized error report before channels reject your products.

Check my feed for errors

Editorial note

Written by Muhammad Norafif

This article was published on August 25, 2026 and last updated on August 25, 2026. NextFeed builds product feed management software for Shopify, Google Shopping, Meta, and other commerce channels.

Share this insight

Comments (0)

Please login to leave a comment.

No comments yet. Be the first to comment!

Never miss a feed update

Join merchants who receive our weekly insights on ecommerce data automation and strategy.

Get in touch

Get answers before feed issues cost you revenue.

Reach out for onboarding help, channel setup questions, custom workflow advice, or partnership conversations.

Typical reply

1 business day

Best for

Setup & fixes

Coverage

100+ channels

We'll never share your info with third parties.