Google Merchant Center Feed Errors: Invalid GTINs, Tabs and UTF-8
When Google Merchant Center starts flagging “Invalid GTIN in unsupported format” or “Invalid UTF-8 encoding” right after someone edited the product feed in a spreadsheet, the damage almost always happened before the upload. Excel rewrites long barcodes in scientific notation — the 12-digit GTIN 879860004073 is saved as 8.7986E+11, which is no longer a run of numerals — strips the leading zero from codes that begin with 0, and writes text in the legacy Windows codepage instead of UTF-8. All three faults live in the saved file, and all three can be repaired in your browser before you resubmit, starting with the scientific notation fixer for any barcode with an E in it.
Google validates every submitted gtin value against the GS1 standard: it must be 8, 12, 13 or 14 digits with a correct check digit, and a value containing characters that are not numerals is flagged as an unsupported format.
Which invalid GTIN error is Merchant Center showing?
GTIN problems are reported as item-level issues — in current Merchant Center they surface under Products → Needs attention — and the exact wording tells you which fault you have:
- “Invalid GTIN in unsupported format” means the value is not shaped like any GTIN type: it contains characters that are not numerals (exactly what scientific notation produces), has a digit count other than 8, 12, 13 or 14, or fails check-digit validation. This is the classic post-Excel error, and Google’s own fix page points at the GS1 check digit calculator.
- “Invalid value [gtin]” is the same family of fault reported against the product data specification: a wrong length, bad characters or a failed checksum in the
gtinattribute. - “Incorrect GTIN” is different — the value passes format and checksum validation but is the wrong number for that product. Google notes it tends to occur when the GTIN from another product is accidentally re-used, and a barcode mangled into somebody else’s valid code lands here too. Never invent a GTIN to clear the error; submit the manufacturer’s number. Its sibling “Incorrect product identifier” fires when the gtin, mpn and brand combination doesn’t match the product.
- “Limited performance due to missing value: GTIN” is a warning rather than a rejection: the product has a manufacturer-assigned GTIN but the feed didn’t include it, and such offers may get limited visibility.
Two footnotes before you repair anything. “Restricted GTIN” means the code uses a GS1 prefix range Google won’t take — 02, 04 or 2 (restricted distribution) and 05, 98 or 99 (coupons) — and no spreadsheet repair fixes that. And severity varies: some GTIN faults block the offer while others only limit visibility, so trust the wording in your own account over any blog’s blanket “disapproved”. Whatever the length, submit digits only.
Why does the gtin column say 8.7986E+11?
Excel’s default General format displays long runs of digits — roughly 12 digits and up — in scientific notation, and when the sheet is saved back to CSV or tab-delimited text, that display string is what gets written into the file. The number itself is fine inside Excel: a GTIN is at most 14 digits, comfortably inside Excel’s 15-significant-digit precision, so nothing is rounded away while the workbook is open. The loss happens at the save, when 879860004073 leaves the sheet as the eleven characters 8.7986E+11. Merchant Center then reads those literal characters as your product’s gtin, sees an E, a dot and a plus sign, and correctly reports an unsupported format.
Recovery is honest but bounded. Expanding 8.7986E+11 yields 879860000000 — the five significant digits the display string kept, padded with zeros — and if the true barcode had non-zero digits in those trailing positions, they are simply not in the file any more. The check digit is the safety net: it is the rightmost digit of every GTIN, computed from all the others by GS1’s alternating 3-and-1 weighting, so a wrongly zero-padded expansion usually fails validation. 879860004073 checksums correctly; its padded expansion 879860000000 does not — and rows like that need a fresh export from your product database, not more guessing. The general mechanics are in the scientific notation guide.
Where did the leading zeros go — and why does length matter more than the checksum?
Opened by double-click, Excel types any digits-only cell as a number, and a number has no use for a leading zero — so a UPC that begins with 0 comes back 11 digits long. Eleven is not a valid length for any GTIN type, so the value fails Google’s format check before the checksum is even considered. That’s worth knowing because it shapes the repair: the fix is to restore the code to its standard width, not to hunt for a checksum error.
The sneaky case is the EAN-13 that begins with 0. Many North American products carry a 13-digit code that is just the 12-digit UPC with a zero in front, and the two forms share the same check digit — so a zero-stripped EAN-13 collapses into its perfectly valid UPC twin and can sail through validation without a single error. GS1 treats those as the same item, so nothing may break, but it means “no red rows” is not proof the column is intact: pad the column back to the width your catalog actually uses instead of only chasing the errors Google happens to raise. The wider story of this failure is in why leading zeros disappear from CSVs.
How do I repair the feed file before resubmitting?
Both repairs work on the raw file — comma- or tab-delimited; the separator is auto-detected — and nothing you drop on the page is uploaded anywhere. The site’s Content-Security-Policy sets connect-src 'none', so the browser blocks every data connection the page could open — including one back to us. Check it yourself in 30 seconds.
- Drop the feed on the scientific notation fixer and click Show me what Excel broke. It counts the damaged cells and expands them for you, across the whole file — but never on shape alone: a cell has to match what Excel’s own General format writes before it is touched, so a genuine part number like
2E5is left exactly as it is. - Download the repaired copy: every expanded value is written back as full digits, with the delimiter and column layout untouched.
- Run that file through the leading-zeros fixer. Padding is the one repair you pick columns for, because only you know how wide a code is meant to be: tick
gtinand set the standard width — 12 for UPC, 13 for EAN. A column whose header names a standard-width code (ZIP 5, UPC 12, EAN/GTIN 13) arrives pre-ticked at that width, provided no value in it still starts with a zero — one that does proves Excel never stripped the column; every other digit-only column is listed unticked with the width box pre-filled from its longest value, so read that number before you tick it. - Resubmit the feed. In current Merchant Center you can also fix items individually or download the affected-products
.csvfrom the issue page, and Google says changes can take 24–72 hours to reflect on the Needs attention page — so give a fix time to register before repairing the same rows twice.
Feed full of E+11 barcodes right now?
Drop the feed in and download a copy with every collapsed barcode expanded back to plain digits — then pad the missing zeros and resubmit.
Open the scientific notation fixer →🔒 Your file never leaves this tab — we can’t read, store or leak what we never receive. See the proof →
Does Merchant Center accept CSV, or does the feed have to be tab-delimited?
Google’s file-format documentation lists .txt, .xml and .tsv as the supported product file types — plus compressed .gz, .zip and .bz2 archives containing a .txt or .xml file, up to Google’s 4 GB feed limit. .csv is not on that list, and neither are native Excel workbooks. The picture is muddier than “CSV is rejected”, though: Google’s own fix flows hand you affected-product downloads as .csv. The dependable route is tab-delimited — Google’s documented Excel export is File → Save as → Text (tab delimited)(*.txt), and the Google Sheets equivalent is File → Download → Tab-Separated Values (.tsv).
A tab-delimited feed has structural rules of its own: the header must be the first line, one product per line, no trailing tabs at line ends, and no tabs or line breaks inside attribute values; where a comma inside a value is not separating repeated values, the value must be surrounded by quotes. Attribute names are submitted in English with underscores — image_link, not “Image Link”. If what you actually have is a comma-separated file, resist the find-and-replace instinct: swapping commas for tabs in a text editor also rewrites the commas inside product titles. The CSV ⇆ TSV converter re-serializes the file properly, keeping quoted fields intact either direction — the format differences are covered in the TSV to CSV guide.
What does “Invalid UTF-8 encoding” actually mean?
It means the bytes in the feed are not valid in the encoding Merchant Center is reading it as — Google’s help page sums it up as “Something is wrong with your encoding for text.” Merchant Center supports UTF-8, UTF-16, Latin-1 and ASCII, offers an Autodetect option, and reports mismatches at two levels. Item-level hits are typically shown with the affected attribute in brackets — “Invalid UTF-8 encoding [description]” is the form agencies report — while a mismatch across the whole file produces the data-source error “An invalid encoding was specified for the product data source”. For that one, Google’s fix in current Merchant Center is Settings → Data sources → your product source → Data source setup → Show advanced settings, the pencil next to Encoding, pick the encoding the file is really in, save, and resubmit the feed.
Diagnose before you change settings. The encoding checker reads the file’s actual bytes and tells you what it truly is — which regularly contradicts what the export dialog claimed — so you know whether to fix the file or the data-source setting. And note the counter-intuitive case: mojibake such as é or ’ baked into product titles is often perfectly valid UTF-8, so no encoding error fires at all — the feed processes cleanly and shoppers see the garbage in your listings. (Google raises a separate issue, “Invalid characters [title]”, only when a broken round-trip leaves private-use characters behind.) Baked-in mojibake needs the broken characters fixer, not a different encoding setting.
How do I stop Excel breaking the next feed?
Keep Excel from ever parsing the gtin column as a number. Microsoft’s documented workarounds are formatting the cells as Text — which only protects entries made after the formatting — or prefixing each code with an apostrophe. Better: import the file in a way that declares the barcode column as Text before Excel parses it, or keep the feed master in Google Sheets and download it as Tab-Separated Values (.tsv), which sidesteps the notation and codepage problems in one move. Above all, keep an untouched copy of every export — a repair can only restore what the file still holds.
Frequently asked questions
Why does Merchant Center say my GTIN is invalid when the number on the box is correct?
Because Merchant Center validates the value in the file, not the one on the box. If the feed was opened and saved in Excel, the gtin column often no longer holds the printed number — a long code becomes scientific notation such as 8.7986E+11, or a code that starts with 0 loses that digit and comes up short. Google requires 8, 12, 13 or 14 digits with a correct check digit, so a value with an E in it or a digit missing fails even though the barcode itself is fine.
My GTIN column shows 8.7986E+11 after saving in Excel — can I get the real numbers back?
Partly. Expanding the notation restores the digits Excel actually wrote into the file — 8.7986E+11 becomes 879860000000 — but positions the display string dropped come back as zeros, and digits that are no longer in the file cannot be recovered by any tool. The check digit is your safety net: expanded values that still fail GS1 check-digit validation were damaged beyond what the file holds, and those rows need re-exporting from your product database rather than guessing.
Excel deleted the leading zeros from my UPC codes — is that why Merchant Center says invalid GTIN?
Very likely. A UPC is 12 digits; strip the leading zero and 11 remain, which is not a valid length for any GTIN type — Google accepts 8, 12, 13 or 14 digits — so the value fails format validation before the checksum is even considered. The leading-zeros fixer pads the columns you tick back to a standard width, 12 for UPC or 13 for EAN. Nothing is padded unless you tick it, and a column whose header names a standard-width code is pre-ticked at that width, provided no value in it still starts with a zero — one that does proves Excel never stripped the column; for any other digit-only column the width box is pre-filled from the longest value present, so check it before you tick.
Does Google Merchant Center accept CSV files, or does the feed have to be tab-delimited?
Google’s file-format documentation lists .txt, .xml and .tsv product files, plus compressed .gz, .zip and .bz2 archives containing a .txt or .xml file — .csv is not on the list, although Google’s own fix flows export affected products as .csv for offline editing. The dependable route is to convert a comma-separated file to tab-delimited before upload rather than renaming the extension, and to keep quoted fields intact when you do.
What encoding does a Google Shopping feed need — do I have to save it as UTF-8?
UTF-8 is the safest choice, but Merchant Center also supports UTF-16, Latin-1 and ASCII, plus an Autodetect option. Encoding errors fire when the bytes in the file do not match the encoding Merchant Center is reading it as, so you have two fixes: re-save the file as genuine UTF-8, or change the encoding configured for the data source in its advanced settings in current Merchant Center and resubmit the feed.
Keep reading
The same Excel behaviors, taken one at a time:
- Excel turned my numbers into 1.23E+12 — scientific notation in CSV files
- CSV leading zeros disappear in Excel — why and how to fix it
- TSV to CSV — how the two formats differ and how to convert safely
- eBay CSV upload errors — template lines, UPC damage and encoding
- Amazon flat file upload errors — UPC zeros, tabs and encoding
- Browse all guides