Merchant Center field guide · published November 2026
Missing GTIN in Google Merchant Center: the 2026 fix
After Google changed its unique-identifier policy in January 2026, tens of thousands of products got flagged with Missing GTIN with no announcement. This guide explains the two correct fixes — a real, validated GTIN, or identifier_exists = false for items that legitimately have no barcode — and how to stop guessing wrong.
Quick answer
"Missing GTIN" means Google expects an identifier for this product but your feed or structured data doesn't carry one. There are exactly two valid fixes: (1) submit the manufacturer's real GTIN for each variant, or (2) set identifier_exists = false plus a real brand and mpn — but only for products that genuinely have no barcode. Never guess or invent a GTIN; a wrong check-digit is worse than none.
What changed in January 2026 (this is why it suddenly appeared)
Google's unique-identifier policy had long allowed sellers to file an "exemption" for products without a GTIN. On January 22, 2026, Google amended the policy text: exemption requests are now denied for products that "could reasonably be assigned a GTIN." The change shipped without a blog announcement — one line in the policy doc.
The result: private-label and handmade sellers woke up to large shares of their catalogs flagged "Missing GTIN" within weeks. If your products got flagged "out of nowhere," this is why.
The two correct paths (pick one, per product)
| Situation | Correct fix | Wrong move |
|---|---|---|
| You sell a manufacturer's product and have the barcode | Submit the real GTIN for each variant (size/color each has its own) | Copying one GTIN across all variants |
| Handmade, custom, own-brand with no registered barcode | identifier_exists = false + real brand + mpn | Leaving identifiers blank, or inventing a GTIN |
| Dropshipped product, supplier won't share the barcode | Ask the supplier; if unavailable, declare no identifiers (only if genuinely unknown) | Guessing a GTIN from a competitor's listing |
The trap most people hit: a GTIN exists for a resold product, so identifier_exists = false is technically wrong and can still be disapproved. Use it only when the product truly has no barcode.
Validate a GTIN before you submit it (check-digit)
A GTIN-12/13/14 is not a random number — the last digit is a checksum of the ones before it. Google and AI shopping surfaces reject or distrust products whose identifier fails this check. Before you paste a barcode, verify its check digit.
You can validate any GTIN instantly in our validator, which also flags whether the identifier is missing entirely — the exact signal Google uses. A wrong check-digit GTIN is treated as invalid data and does not clear the flag.
Platform-specific fixes
Shopify
The GTIN lives on the variant, not the product. Open the product → variant → the barcode field. Each variant (size, color) needs its own barcode. A common failure is filling the barcode on the parent product only, leaving every variant without one.
WooCommerce / WordPress
Set GTIN/MPN on each variation via the product-data meta fields (or a schema/feed plugin). Confirm the field maps into the feed output, not just the page.
Parts catalogs / supplier spreadsheets
When identifiers live in a supplier file that your platform can't map, use a supplemental feed — a second data source keyed on id that patches gtin (and other attributes) onto the primary feed without touching the platform.
Why this matters beyond Google: AI shopping reads GTIN
Perplexity Shopping de-duplicates products by GTIN and only compares retailers it can match. A product without a GTIN cannot enter that comparison, so you lose the "best price / fastest shipping" placement. ChatGPT Shopping and Google AI Mode read the same identifier field. In 2026 a missing GTIN is a failure in two channels: Google Shopping and AI shopping agents.
Branded product (has barcode)
"gtin13": "0075678164125",
"brand": {"@type":"Brand","name":"..."},
"sku": "...",One GTIN per variant, check-digit validated.
Handmade / no barcode
"identifier_exists": "no",
"brand": {"@type":"Brand","name":"..."},
"mpn": "HM-0042",No gtin field; declare no identifier with a real brand and MPN.
Fix checklist
- Determine whether the product genuinely has a barcode (branded vs handmade/custom).
- If branded: get the manufacturer's real GTIN per variant, validate the check digit.
- If unbranded: set
identifier_exists = false+ realbrand+mpn. - Fix the source (Shopify variant barcode, supplemental feed), not just the page markup.
- Re-submit the feed and request a re-check in Merchant Center.
Why most guides stop short
Most "fix Missing GTIN" posts tell you to "add the GTIN" but don't tell you which of the two paths is correct for your product, nor that a wrong check-digit GTIN doesn't clear the flag. That's the gap this guide — and the validator — closes: it checks the identifier, validates it, and distinguishes "needs a GTIN" from "legitimately has none."
Related
- Google Merchant Center price mismatch
- Shopify JSON-LD guide
- Schema for AI search (ChatGPT / Perplexity)
Google unique product identifiers · GS1 check-digit calculator