Feed Optimization
identifier_exists: When to Use It, When Not To, and What Happens If You Get It Wrong
A practical decision tree for identifier_exists. Covers branded vs unbranded products, GTIN vs MPN scenarios, both accepted values (false and no), and the…
The attribute that declares an absence
Most feed attributes exist to add information. identifier_exists exists to declare a legitimate absence — specifically, the absence of a GTIN and/or MPN. Without it, Google treats missing identifiers as an error. With it set correctly, Google understands: this product genuinely has no manufacturer-assigned identifier.
Get it wrong in either direction and you pay a price: set it incorrectly to false on a branded product, and Google may suppress or disapprove it. Leave it out when no GTIN or MPN exists, and you accumulate identifier warnings that reduce your overall feed quality score.
The two accepted values
Google’s product data spec accepts two values for identifier_exists:
-
false— the modern, recommended value -
no— legacy value, still accepted and processed identically
Both map to the same internal behavior: Google marks the product as not requiring GTIN/MPN and does not flag missing identifiers as data quality issues. There is no functional difference between them. Use false in new implementations; if your feed tool already outputs no, there is no reason to change it.
Note: yes and true are the opposite values, but they are also the default. You do not need to submit identifier_exists: true — the absence of the attribute has the same effect.
When identifier_exists: false is correct
Set it to false when all three conditions are true:
-
The product has no GTIN (no EAN, UPC, ISBN, JAN, or ITF-14)
-
The product has no MPN (no manufacturer part number)
-
The product genuinely has no manufacturer-assigned identifier — you’re not just failing to look it up
Products that typically have no manufacturer-assigned identifiers:
-
Custom or handmade products — one-of-a-kind jewelry, custom furniture, personalized gifts
-
Vintage or antique items — pre-barcode era products where original GTIN is unknown
-
Private-label products without GS1 registration — if you’ve registered a GS1 prefix, use your GS1-assigned GTIN instead
-
Art and collectibles — original artworks, limited editions without a standard product code
-
Small local manufacturers who have never applied for GTINs
Decision tree
Is the product from a recognizable brand (Nike, Samsung, IKEA, etc.)?
YES → Does the brand assign GTINs to this product line?
YES → Find and submit the GTIN. identifier_exists defaults to true. Do NOT set false.
NO → Submit brand + MPN if available. Consider false only if no MPN either.
NO → Is the product manufactured by anyone with a GS1 prefix?
YES → Track down the GTIN from the supplier/manufacturer. Submit it.
NO → Is this custom, handmade, vintage, or private-label without GS1?
YES → Set identifier_exists: false. Submit brand (your name) if applicable.
NO → Research further. Most manufactured goods have GTINs.
Branded products: identifier_exists: false is almost always wrong
The most common and damaging misuse is setting identifier_exists: false on branded products to bypass GTIN requirements. This creates two problems:
1. Google detects the mismatch. Google’s Shopping Graph contains GTINs for most major branded products. If your title says “Nike Air Max 90” and you’ve set identifier_exists: false, Google knows Nike Air Max 90s have a valid UPC. The mismatch is flagged as a data quality violation, which can suppress the listing.
2. You lose auction advantages. Products with valid GTINs receive priority in Shopping auctions because Google can confidently identify the exact product and enrich it with Shopping Graph data (reviews, competitive pricing, specs). Setting identifier_exists: false on a product that has a GTIN permanently disqualifies it from these enrichments.
The correct fix for “I don’t have the GTIN” is to find the GTIN. Sources: manufacturer’s website, product packaging, your supplier, GS1’s GEPIR database, or a barcode lookup service.
The GTIN vs. MPN scenario
Some products have an MPN but no GTIN. This is common in auto parts, industrial equipment, and electronics accessories from smaller manufacturers.
In this scenario: submit brand + mpn, and do not set identifier_exists: false. The brand + MPN pair functions as a valid unique identifier. Setting identifier_exists: false would tell Google no identifier exists — which is incorrect, because the MPN serves that role.
Google’s identifier hierarchy:
-
Option A: GTIN (preferred when available)
-
Option B: Brand + MPN (acceptable when GTIN does not exist)
-
Option C: identifier_exists: false (only when neither GTIN nor MPN exists)
Common mistakes at a glance
| Scenario | Correct action | Wrong action |
|---|---|---|
| Branded product with GTIN | Submit GTIN. Leave identifier_exists at default (true). | Setting false to skip GTIN lookup. |
| Branded product, GTIN unknown to you | Find the GTIN from manufacturer or supplier. Submit it. | Setting false because “we don’t have it on file.” |
| OEM part with MPN, no GTIN | Submit brand + MPN. Leave identifier_exists at default. | Setting false alongside the MPN. |
| Handmade product, no GTIN, no MPN | Set identifier_exists: false. Submit your brand name. | Leaving all identifier fields empty without declaring false. |
| Private label with GS1-registered GTIN | Submit your GS1-assigned GTIN. Leave identifier_exists at default. | Treating your own private label as “no identifier exists.” |