2026-10-27

WooCommerce: "Missing or incorrect GTIN" in Google Merchant Center — what to enter, and when to set identifier_exists to no

"Missing or incorrect GTIN" means Google looked at the product identifiers in your feed and found one missing, or found a number it doesn't recognise as valid. Google's help article for this issue is How to fix: Missing or incorrect GTIN. Some older Merchant Center notices and forum threads word the same problem as "Limited performance due to missing value [gtin]".

The fix is not always "add a GTIN". Some products have one and some genuinely don't, and Google wants a different answer for each. This guide covers what the message means, where a WooCommerce store keeps GTIN, brand and MPN, which products have a GTIN, what to send for the ones that don't, and how to get Google to read the feed again.

Not sure which products are affected? Run the free Merchant Center Check.

Run the free Merchant Center Check

What the message means

A GTIN is the number under a product's barcode: a UPC, EAN, JAN, ISBN or ITF-14. Google uses it to recognise that your product is the same item other shops sell. Google's GTIN attribute page says products with a missing or incorrect GTIN "may have limited visibility". It also says that if a product does have a GTIN assigned and you don't submit it, the product "could be disapproved". So for most stores this starts as a warning about reach, not a takedown, but it's worth fixing before it becomes one.

Google's help article gives the rule in one line: each product needs either an accurate GTIN, or both an MPN (manufacturer part number) and a brand. A product that is one-of-a-kind or vintage doesn't need an identifier, and you tell Google so with the identifier_exists attribute. Depending on the country you sell to and the product's category, Google may ask for identifiers or for that statement.

Where WooCommerce keeps GTIN, brand and MPN

GTIN. WooCommerce has a built-in GTIN field, launched in WooCommerce 9.2 according to WooCommerce's GTIN documentation. Open the product, go to Product data → Inventory, and fill the box labelled GTIN, UPC, EAN, or ISBN. Each variation of a variable product has its own box. Our guide to adding GTINs in WooCommerce walks through each screen, including variations and checking the number shows up in the product page's markup.

If you use Google for WooCommerce, its GTIN documentation says GTINs in the core field are synced to Merchant Center automatically, and stores that kept GTINs in the extension's own field before can migrate them into the core field.

Brand and MPN. These usually come from your feed plugin rather than the product screen. In Google for WooCommerce, go to Marketing → Google for WooCommerce → Attributes and click Create attribute rule; its attribute mapping page lists Brand, MPN and GTIN among the attributes you can set. Other feed plugins add their own brand, MPN and "identifier exists" fields, either per product or as a rule for a whole category. Whichever plugin builds your feed, the values have to end up in the feed itself: a brand shown in your theme's product title doesn't count if the feed's brand is empty.

Keep the GTIN out of the SKU box. The SKU is your own stock code. A feed plugin that sends the SKU as the MPN is fine if the SKU really is the manufacturer's part number; if it's your warehouse code, it isn't an MPN.

Which products have a GTIN, and which don't

Products that have one. Branded goods you resell almost always do: the number is printed under the barcode on the pack, and your supplier's price list or product sheet usually has a column called EAN, UPC or barcode. If you're the manufacturer and you bought numbers from GS1, the GTIN is the number you assigned. For these products, send the real GTIN. Google's article on incorrect GTINs says the GTIN must be the one the manufacturer provided and that you shouldn't create new ones.

Products that don't. Google's identifier exists page gives two groups of products that may have no unique identifiers:

Own-brand products that never had barcode numbers issued also have no GTIN. If they have a brand and your own part numbers, sending brand plus MPN satisfies the rule above.

When to set identifier_exists to no

For a new product with no GTIN, and no brand-and-MPN pair, send identifier_exists as no (or false). Google's page says the value must be in English and that you should use it "only if you're certain" the product has no unique product identifier. If you set it to no on a product where Google finds evidence that an identifier exists, the product gets a warning.

Two mistakes to avoid:

How you send it depends on the feed plugin: look for a per-product "identifier exists" or "no GTIN" setting, or a rule by category. Google for WooCommerce's attribute mapping page doesn't list identifier_exists, so check how your version handles products without identifiers.

Never invent or buy reused GTINs

Google's GTIN page says: "When in doubt don't provide a GTIN (for example, don't guess or make up a value)." A made-up number can fail Google's check digit test or, worse, match someone else's product. Google's incorrect GTIN article says this error "tends to occur when the GTIN from another product is accidentally re-used". Google's GTIN page also says GTINs in the restricted prefixes 02, 04 and 2, and the coupon prefixes 05, 98 and 99, aren't allowed.

Some websites sell cheap barcode numbers that don't come from GS1. GS1 Australia's barcode FAQ says: "If you buy barcode numbers from a reseller you do so at your own risk", and that there's "no guarantee that the number will remain unique within the GS1 System". If your own products need barcodes, get them from your country's GS1 organisation. If they don't need barcodes, identifier_exists set to no is the honest answer.

To check a number you already have, the GS1 check digit calculator tells you whether its last digit is right. A typo usually fails that test.

Filling many products at once

For more than a handful of products, use WooCommerce's own CSV tools. According to WooCommerce's importer documentation:

  1. Go to Products → All Products and click Export. The GTIN column is called GTIN, UPC, EAN, or ISBN.
  2. Fill that column from your supplier's list, matching rows on SKU. Format the column as text first, so the spreadsheet doesn't drop leading zeros or turn long numbers into "5.01235E+12".
  3. Back on Products → All Products, click Import, choose the file and tick Update existing products. Rows are matched by ID first, then by SKU, so keep the ID or SKU column in the file.

Import two or three products first and check them in the product editor before you run the whole file. Brand, MPN and identifier_exists usually live in your feed plugin, so fill those through the plugin's own bulk tools or rules.

Getting Google to read the feed again

  1. Let your feed plugin send the changes. For Google for WooCommerce, the queued sync jobs are under WooCommerce → Status → Scheduled Actions. If they aren't moving, our guide to products not syncing has the order to check things in.
  2. In Merchant Center, open Products → Needs attention, filter by the issue and check a fixed product. Google's Missing or incorrect GTIN article says it "may take some time" for the change to show there; its incorrect GTIN article says changes may take 24 to 72 hours, and that if a product or the account was disapproved, you should request a review after the fix.

Google decides when a warning clears, and filling identifiers isn't a guarantee of more clicks or sales. It removes one reason for Google to hold a product back.

If Merchant Center also shows a price mismatch, our guide to fixing "Mismatched value (page crawl) [price]" covers it. If the whole account is suspended, identifiers are only part of the job: our Merchant Center misrepresentation guide covers what reviewers check across the whole store.

Check your store

Our free Merchant Center Check reads your store's public pages and lists the Merchant Center issues it can see, so you know where to start. No account, no card.

Run the free Merchant Center Check

If you'd rather hand it over, our Google Merchant Center help offers a written Health Check for $29 and a Fix for $99 that corrects the product data and settings behind issues like this one. Independent service, not affiliated with Google. Google decides every review, and we never promise approval.

Is your WooCommerce store readable by AI shopping agents?

The free LeyMish AI Readiness plugin gives you a 0–100 score, one-click fixes and product feeds, and runs on your site. LeyMish Pro adds AI visibility checks, AI fixes and agents.

Download the free plugin See Pro