My Shopify product CSV keeps coming in garbled after I edit it in Excel, why?
Excel's default CSV export can corrupt encoding, insert smart quotes, and leave formulas or blank helper columns in place, any of which can make a Shopify product import fail outright or come in broken without a clear error.
What's going on
You built your product list in Excel, everything looks fine on your screen, but when you upload the CSV to Shopify you either get a cryptic error about quoting, headers, or delimiters, or the import "succeeds" and then you notice titles and descriptions full of question marks, boxes, or mangled accented characters and currency symbols. Sometimes it's worse: certain products don't show up at all, or variants come in with missing prices or broken inventory settings, with no obvious reason why.
The frustrating part is that the file looks completely normal when you reopen it in Excel. The damage is invisible until Shopify tries to parse the raw text, because the problem usually isn't the data you typed, it's what Excel silently did to the file underneath when it saved it.
Why it happens
Excel's standard "Save As CSV" option often encodes the file using your operating system's regional or legacy character set rather than UTF-8, which is what Shopify's importer expects. Any accented letter, curly quote, em dash, or currency symbol outside plain ASCII can get translated into the wrong bytes, so it displays fine in Excel (which reads back its own encoding correctly) but turns into garbage or triggers a parsing error the moment Shopify reads it as UTF-8.
Excel also rewrites content in ways you didn't ask for: it auto-converts straight quotes into curly "smart quotes," it can leave formulas live instead of converting them to their calculated text values, and depending on regional settings it can even swap comma delimiters for semicolons on export. Each of these looks normal inside Excel but reads as corruption to Shopify's parser.
On top of the encoding issue, Shopify's CSV format has structural expectations that are easy to break by hand, including a specific header row and certain columns, like inventory tracking and inventory quantity, that need to be filled in together or left blank together. A spreadsheet's forgiving, visual display hides all of this until the file is read as plain text.
5 ways to fix it
Save it as UTF-8 CSV, and don't just hit "Save" in Excel
In Excel, use File > Save As and choose "CSV UTF-8 (Comma delimited) (*.csv)" specifically, not the plain "CSV (Comma delimited)" option, which uses your system's regional encoding and is what produces garbled accented characters and curly quotes. If you don't see a UTF-8 option, save as CSV normally, then reopen the file in a plain text editor (VS Code, Notepad++, Sublime) and use its "save with encoding" option to force UTF-8. This one change resolves the most common version of this problem.
Edit and export from Google Sheets instead of Excel
Google Sheets writes UTF-8 by default, so File > Download > Comma Separated Values (.csv) avoids the encoding problem entirely. If you're already comfortable in Sheets, it's the path of least resistance, and it's a common workaround merchants use when Excel keeps mangling special characters, symbols, or non-English text in titles and descriptions.
Strip out formulas, smart quotes, and extra helper columns before you save
Any cell with a live formula (like =VLOOKUP or =CONCAT) should be converted to its plain text result first: copy the column, then Paste Special > Values Only, before deleting the formula version. It's also worth running a find-and-replace in a text editor for curly "smart quotes" and swapping them for straight quotes, since Excel auto-inserts these and inconsistent or non-standard quote characters can cause a CSV parser to misread the file. Delete any blank spacer columns or rows you added for your own organization, since the importer expects the file to match its documented header row with no extra columns in between.
Check for columns that only work in pairs
A common cause of a partial or silently broken import is filling in one half of a related column pair while leaving the other blank, for example setting an inventory tracking column to "shopify" but leaving the inventory quantity column empty, or the reverse. Either fill in both columns or leave both blank; a mismatch like this doesn't always throw a hard error, it just quietly produces broken variants.
Open the raw file in a plain text editor before you trust it
Before uploading, open the .csv in Notepad, TextEdit (in plain-text mode), or a code editor rather than a spreadsheet program. This shows you the actual raw characters: encoding artifacts, semicolons where commas should be (common if Excel is set to a European locale), stray quote marks, and trailing whitespace on the header line. All of this is invisible in a spreadsheet view but can cause the file to fail validation on upload.
Bottom line
This is a file-formatting problem, not a Shopify bug, and it's fixable with tools you already have. If you're regularly pulling product data from suppliers, marketplaces, or a POS system and re-importing it into Shopify, a dedicated import/export or catalog-sync tool can save you this cleanup every time; for an occasional one-off CSV, the manual steps above are enough.
Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.