Most guides on the "missing GTIN" error stop at step one: find the barcode, copy it into the feed. That fixes the easy half. The other half turns up in nearly every account eventually, and it is the product that genuinely has no GTIN because nobody ever assigned one.
What you'll take away
- Blank is a claim, not a blank — identifier_exists defaults to yes, so an empty gtin column says you withheld a number that exists.
- Three states, one switch — send the GTIN, or declare there isn't one. Anything else is a mismatch Google flags.
- The switch covers the whole set — GTIN, MPN and manufacturer brand travel together. You cannot declare no GTIN but yes MPN.
- Setting no on a branded product is worse — it moves you from a missing-value warning to an incorrect-identifier flag.
What Google actually does with a GTIN
A GTIN is the umbrella term for the barcode number family: 12-digit UPCs, 13-digit EANs and JANs, 8-digit codes on small items, ISBNs on books, 14-digit ITF-14s on cases. Google's product data specification accepts a maximum of 14 digits per value. The number is a join key. Google keeps a catalogue of physical products assembled from manufacturer and retailer data, and a valid GTIN attaches your offer to the right entry in it.
That attachment is what groups your listing with other sellers of the same item, pulls in product detail attributes and ratings, and makes your offer eligible for the formats that depend on catalogue matching. Leaving the cell blank does not opt you out of any of it.
Blank doesn't mean "not applicable". It means "you told us identifiers exist, then didn't send one".
Every item carries that implicit claim because identifier_exists defaults to yes. So an empty gtin column with the default in place reads as a broken promise rather than a neutral state, and Google flags it as missing.
Three states, one switch
Every product in your feed sits in exactly one of three states. Two of them are fine and the middle one is the problem.
| State | What you send | What Google does |
|---|---|---|
| Identified | gtin filled, identifier_exists untouched | Validates the check digit and matches the catalogue entry |
| Mismatched | gtin empty, identifier_exists left at yes | Missing-value issue: a warning or a disapproval, by category |
| Declared | gtin empty, identifier_exists set to no | Records the product as having no manufacturer identifiers |
The attribute is one switch across the whole identifier set: GTIN, MPN, and brand as a manufacturer would assign it. You cannot declare "no GTIN, but yes factory MPN". If an identifier exists in any of those forms, the switch stays on yes and your job is tracing the value. Sending brand is still right when the brand is genuinely yours, like a shop name on a handmade piece, because that isn't a manufacturer identifier you're holding back.
Products that legitimately have no GTIN
The no-identifier path exists for real categories rather than as an escape hatch. Four of them cover almost every honest case.
Where identifier_exists=no is the correct answer
Bundles need a decision before you claim them
Google separates multipacks (identical items sold together) from bundles (a main product plus additions). A multipack carries the GTIN of the single item inside it. A bundle carries the GTIN of its main product. Only a combination that exists solely in your store, with no main product holding a barcode, belongs on the no-identifier path. "It's a bundle" is not a reason on its own.
The syntax
In a spreadsheet feed, add an identifier_exists column and set it to no for the affected rows. In XML it looks like this:
<item>
<g:id>SHOP-123</g:id>
<g:title>Made-to-order walnut cutting board</g:title>
<g:brand>Northwood Workshop</g:brand>
<g:identifier_exists>no</g:identifier_exists>
</item>
Send no gtin and no mpn for that item. Keep the title, image, and product type unusually specific, because with no external identifier your own data is the only description of the offer Google has. The item re-evaluates on the next processing run, so trigger a fetch instead of watching the diagnostic for an instant change.

The trap: "no" doesn't mean "none available"
Declaring no on a branded product costs you more than the warning did
Google's catalogue already holds manufacturer data for mass-produced goods. Set identifier_exists to no on a listing whose brand, title, and image clearly belong to one of them, and the contradiction surfaces as an incorrect-identifier issue instead of a missing-value one. That reads as a claim about the product rather than a formatting slip, and it is treated accordingly.
The neighbouring shortcut fails the same way. Lookup sites of unknown provenance hand out numbers that either fail the check digit or belong to a different product entirely. A GTIN is valid only when its prefix is licensed to the brand owner, and renting a slice of someone else's prefix does not make the digits yours. For products that do carry a barcode, the number is printed under the bars, on the supplier invoice, or traceable through GS1.
The spreadsheet bug that looks like fraud
Paste a UPC into an unformatted cell and most tools strip the leading zero, turning twelve digits into eleven. The value then fails validation exactly as a fabricated number would. Format the gtin column as text before pasting anything into it.
The question behind the error
The diagnostic says missing. What it is asking is whether your product is one of a kind in the industrial sense. If it is, say so with identifier_exists set to no, and leave the gtin column empty on purpose rather than by accident. If it isn't, the number exists somewhere and the work is tracing it.
Common questions
What does identifier_exists=no actually do?
It tells Google the product has no manufacturer-assigned identifiers at all: no GTIN, no MPN, no manufacturer brand. The missing-value issue clears because your declaration now matches your data, and the item stops being scored against a catalogue entry it was never going to match.
Can I set identifier_exists to no just to clear the warning?
No. Google cross-checks the claim against brand, title, and image. On a mass-produced product the declaration contradicts data Google already holds, and the missing-value warning is replaced by an incorrect-identifier issue that is harder to argue with.
Do handmade products need a GTIN to advertise on Google Shopping?
They do not. Handmade, custom, and one-of-a-kind items have no manufacturer identifier to send, so setting identifier_exists to no is the correct declaration. Send brand when the brand is your own shop name, and put extra work into the title and images.
Where do I find a GTIN that does exist?
Read the digits printed beneath the barcode on the packaging, check the supplier invoice or product datasheet, or look the product up through GS1. Avoid third-party UPC databases, which frequently return numbers licensed to a different brand owner.
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.
Editorial note
Written by Muhammad Norafif
This article was published on August 22, 2026 and last updated on August 22, 2026. NextFeed builds product feed management software for Shopify, Google Shopping, Meta, and other commerce channels.