You exported 400 products, tweaked your spreadsheet for two hours, and hit import. Shopify spits out a wall of red text. You have now met shopify csv import errors up close and personal.

This matters beyond the frustration. Every hour those products are not live is inventory your store is not selling. Here is what is actually going wrong, and how to stop it.

🎯 Quick Summary

  • Most failures trace back to wrong column headers, incorrect file encoding, and broken or duplicate handles
  • Always start from Shopify's own sample CSV, not a blank spreadsheet
  • Save as UTF-8 (Google Sheets handles this automatically on export)
  • Handles must be unique, lowercase, and hyphenated with no special characters
  • For large or inconsistent catalogs, hidden data issues almost always surface at import time

⚠️ The Most Common Shopify CSV Import Errors

Shopify's CSV format is strict. One bad cell can reject the whole file. These three culprits are behind the overwhelming majority of shopify csv import errors.

Wrong column headers. Shopify expects exact names: "Title", "Body (HTML)", "Vendor", "Variant Price". Change the casing, add a space, or use a synonym and the column becomes invisible. Your data goes nowhere.

File encoding. Excel saves files in Windows-1252 encoding by default. Shopify wants UTF-8. Any character outside basic ASCII (accented letters, Arabic text, special punctuation) turns into garbage. Products with "Café" in the title show up as "Café", or the import fails with a cryptic error that points you nowhere useful.

Handle problems. The Handle column is the product's web address name (for example, "red-t-shirt"). It must be unique and written in lowercase with hyphens. Duplicate handles can overwrite existing products instead of creating new ones, and every row of the same product needs the exact same handle.

When your Shopify CSV import is not working, these smaller issues are also worth checking:

  • Prices formatted as "$29.99" instead of "29.99" (no currency symbols allowed)
  • Dates not in ISO 8601 format (YYYY-MM-DD HH:MM:SS)
  • Extra blank rows or hidden columns left over from Excel filtering
  • Variant rows with no Handle value when a product has multiple options

If you are moving from another platform, your old system's export almost never maps cleanly to Shopify's format. The pre-migration checklist is worth reading before you open the spreadsheet.

🔧 How to Clean the File So It Imports First Try

Ready to fix your Shopify product import? CartWorks cleans your file, fixes the errors, and imports it for you, so your products arrive correctly the first time.

Fix encoding:

  • If you need Excel, choose "CSV UTF-8 (Comma delimited)" when saving, not the plain "CSV" option.

Fix handles. Every product needs a clean, unique handle in lowercase with hyphens, and anything with punctuation or numbers needs checking for duplicates.

For products with variants, every row that belongs to the same product needs the exact same Handle value. Title, Body, Vendor, and image columns only need to be filled in on the first row for that handle. Variant rows below can leave those cells blank.

💡 Pro tip: Import a test batch of 5 to 10 products first. Catch the format problems before you push 2,000 rows and come back to 400 errors.
ErrorWhat's WrongFix
Unknown column nameHeader casing or spelling does not match Shopify exactlyCopy headers from Shopify's sample CSV
Symbols replacing charactersThe file was saved in the wrong formatRe-export from Google Sheets or re-save as UTF-8
Existing products overwrittenDuplicate handle values in your fileAudit handles and make each one unique
Variants not grouping correctlyHandle missing or different on variant rowsCopy the parent product's handle to every variant row
Price column rejectedCurrency symbol in the price cellNumbers only: 29.99, not $29.99

For stores with more than a few hundred products, these edge cases add up fast. The guide on bulk editing large Shopify catalogs covers when a spreadsheet approach starts costing more time than it saves.

CartWorks

🔧 Catalog import giving you grief?

CartWorks can map, clean, and import your product data as part of a store build or migration. Tell us what you are working with and we will take a look.

Get help with your data →

🚀 When Expert Help Is Worthwhile

For a clean 50-product store, you can fix a CSV import in an afternoon with the steps above. For anything bigger, the edge cases multiply.

Duplicate SKUs in legacy data. Images that need re-hosting before they can go into the CSV. Metafields that do not exist in the standard Shopify format. Products with 100 variants where a single handle typo breaks an entire group. The file work can require a structured cleanup project.

CartWorks handles product data imports as part of store builds and migrations. We map your data to Shopify's format, run a test import with a small batch, and do the full import once the structure is confirmed. We can also set up a repeatable import process if you add products in bulk on a regular basis.

If your catalog is the thing standing between you and a live store, send us a quick message and we will work out what it actually takes.

Frequently Asked Questions ❓

The header does not exactly match what Shopify expects. Headers are case-sensitive and must be copied precisely. Download the sample CSV from the Products import screen in your admin and use its column names as your template.
Most failed imports come from a file that does not match the layout Shopify expects. If your import keeps failing, CartWorks can clean the file and import it for you.
Shopify uses the Handle column to identify products. If your import file contains handles that already exist in your store, Shopify treats those rows as updates to existing products. Audit your handles and ensure every new product has a unique value.
Yes. The Image Src column accepts a publicly accessible URL. Shopify fetches the image from that URL during import. Local file paths do not work, so your images need to be hosted somewhere accessible before you run the import.
A handle is the unique identifier Shopify assigns to each product and it also becomes the URL slug. For example, red-t-shirt maps to /products/red-t-shirt. During a CSV import, it tells Shopify which rows belong to the same product and whether to create a new record or update an existing one.
Shopify can import some rows and skip others without stopping the import. Check the summary email for errors. Missing or mismatched Handle values on variant rows are the most common cause. For large imports, the bulk catalog editing guide covers how to verify the results after the fact.
Yes, but when saving choose CSV UTF-8 (Comma delimited) rather than standard CSV to prevent encoding errors that scramble special characters, accents, and currency symbols. If your product names or descriptions include non-English characters, Google Sheets is a safer alternative because it preserves UTF-8 encoding automatically.
This usually means every row was skipped due to formatting errors, or the file contained only the header row with no product data beneath it. Check that the Handle column has a value in every product row and that required fields like Title are not blank. If you cannot spot the issue, a Shopify specialist can review the file directly.
CW

CartWorksWe are a Shopify agency. We design, build, migrate, and grow stores for brands worldwide.

Get a free quote →