Most Shopify product CSV import errors come from five things: the file is not UTF-8, the column headers do not exactly match Shopify’s template, URL handles contain spaces or duplicates, blank cells overwrite data you meant to keep, or the file was sorted in Excel and images lost their rows. Fix these before you upload. CSVPrune, a Windows CSV cleaner, includes Shopify recipe packs and export fix presets, keeps barcodes and SKUs with leading zeros intact, and shows original versus cleaned values so you can check every change before the file reaches your store.
Every rule below comes from Shopify’s own help center, so you can trust it for your import.
Clean a Shopify product CSV on your PC, with leading zeros and handles intact.
Get it from Microsoft
What does Shopify require in a product CSV?
From Shopify’s Using CSV files to import and export products:
- New products: “the only required column is Title.” If you add variants, “the URL handle column is also required.”
- Updating products: “the only required columns are URL handle and Title.”
- Handles: “A valid URL handle can contain letters, dashes, and numbers, but it can’t contain any spaces.”
- Encoding: save the file “in UTF-8 format using LF-style linefeeds.”
From Shopify’s Importing products with a CSV file:
- Size: “Your product CSV can’t exceed 15 MB.”
- Headers: “Column header names are case-sensitive,” for example “use Handle instead of handle.” Compare your column titles against the sample file.
- Quotes: “all quotes and apostrophes must be UTF-8 encoded and in the correct position.” Shopify gives the example that non-UTF-8 quotation marks display curled while UTF-8 ones are straight.
What do the common Shopify CSV errors mean?
| Error or symptom | What Shopify says causes it | Fix before upload |
|---|---|---|
| Illegal quoting error | Non-UTF-8 encoded commas and quotation marks | Re-save as UTF-8; replace curly quotes |
Network error: Unexpected token < in JSON at position 0 | Column titles do not exactly match the template headers | Copy headers from Shopify’s sample file |
| ”Line is invalid (No details)“ | Possibly conflicts with existing variant options | Check Option names and values for those lines |
| Images missing after import | File was sorted in Excel or Apple Numbers | Never sort; restore the original row order |
| Fields blank in the store after an update | Blank non-required cells overwrite existing values | Remove columns you are not updating |
| Import fails on images | Products or images removed after export, URLs not updated | Update or remove stale image URLs |
Why does sorting in Excel break images?
Shopify warns: “Importing a CSV file that has been sorted by a spreadsheet editor such as Microsoft Excel or Apple Numbers might cause your products to be removed from their relevant image links on the CSV, and your product’s images will be lost.”
The reason is structure. Extra images and variants sit on extra rows under the product’s first row, linked by the handle. Sort by price or title and those rows drift away from their product.
Use filters to look at data, not sort. If you need a different order to review the file, work in a copy and import the original order.
Why did my update wipe out fields?
This catches many store owners. Shopify’s import guide explains how “Overwrite products with matching handles” behaves:
- “If a non-required column in the import CSV file is blank, then the matching value in the product list is overwritten as blank.” Its example: a blank Vendor cell overwrites “John’s Apparel” with nothing.
- “If a non-required column isn’t included in the import CSV file,” the existing value “remains the same.”
- If you do not select the overwrite option, “products that match an existing handle are ignored.”
So the safe pattern for a partial update is: keep URL handle, Title, and only the columns you are changing. Delete every other column.
There is one more caution about variants. Shopify says “changing data in the Option1 value, Option2 value, or Option3 value columns of the product CSV file deletes existing variant IDs, and creates new variant IDs,” and “any change to variant IDs values can break third-party dependencies on variant IDs.” Do not touch option values in a bulk update unless you mean to.
Toggle original and cleaned values to see exactly what will change before you import.
Get it from Microsoft
What is a safe pre-upload checklist?
- Start from a Shopify export or the sample file, so headers match exactly.
- Keep the original file untouched.
- Check the encoding is UTF-8 and replace curly quotes with straight ones.
- Check handles: letters, numbers, and dashes only, no spaces. Rows that share a handle are normal for variants and extra images, but two different products must not share one.
- Check required values: Title on every product row; URL handle on every row for updates and variants.
- Remove columns you are not updating to avoid blank overwrites.
- Leave Option values alone unless you intend new variant IDs.
- Do not sort. Filter instead.
- Check file size is under 15 MB; split large catalogs into several files if needed.
- Import a small test file of a few products first.
How does CSVPrune help with a Shopify CSV?
CSVPrune is a Windows app for cleaning CSV files locally. For Shopify work, the useful parts are:
- Shopify presets. The product page lists built-in Recipe Packs for Shopify, plus one-click Common Export Fix presets for Shopify, HubSpot, Google Forms, and EU semicolon or UTF-16 files, and a header normalizer that canonicalizes column names.
- Encoding and delimiter fixes: UTF-8, UTF-16, and Latin-1, with comma, semicolon, tab, and pipe delimiters.
- Values stay text. Barcodes, SKUs, and IDs with leading zeros are not converted, unlike opening the file in Excel. See why Excel removes leading zeros.
- Find and replace with regex, scoped to a column, for fixing handles (for example replacing spaces with dashes) or quotes.
- Profiling with a “show only invalid rows” filter, to find blank titles or malformed handles. Be careful with dedupe here: rows that share a handle are how Shopify stores variants and images, so never dedupe on the handle column alone.
- Original versus cleaned toggle, so you see every change before export.
- Audited export with a before and after sidecar JSON recording every changed cell.
- Recipes that replay the same cleanup on next month’s export, or a watch folder that cleans new files automatically.
It runs with no network connection, so supplier price lists and product data stay on your PC. For a different order without breaking rows, review in CSVPrune’s grid and export the file in its original order.
Frequently asked questions
Why does Shopify say my CSV is not UTF-8?
The file was saved in another encoding, often by Excel, or contains curly quotes. Re-save as UTF-8 and replace curly quotes.
Can I import a Shopify CSV larger than 15 MB?
Shopify says a product CSV can’t exceed 15 MB. Split the file into several smaller files.
Why are my product images gone after import?
The most common cause Shopify lists is sorting the CSV in a spreadsheet app, which separates image rows from their product.
Does CSVPrune upload anything to Shopify?
No. It cleans the file on your PC. You upload the cleaned CSV in Shopify admin as usual.
Try CSVPrune
Get CSVPrune from the Microsoft Store, read the CSVPrune product page, and see batch clean CSV files automatically for recurring exports.
Fix the file once, save the recipe, and reuse it on every catalog update.
Get it from Microsoft
Shopify is a trademark of Shopify Inc. Microsoft, Windows, and Excel are trademarks of the Microsoft group of companies. Apple Numbers is a trademark of Apple Inc. Other product names are trademarks of their owners. CSVPrune is not affiliated with or endorsed by any of them.
Last updated 17 October 2026. Published by Automata Labs, a software company in Canada.