Guide · Shopify CSV Import Checklist

Shopify CSV Import Checklist
15 checks before you upload.

Every merchant who has broken a catalog with a bad import wishes they’d spent five more minutes checking the file first. This is that five minutes — distilled into 15 checks you can run before every Shopify CSV import.

The order matters. Handle the structural checks first, then the data-quality checks, then the encoding checks. If a structural problem exists, data-quality checks are meaningless — Shopify won’t read the file correctly anyway.

📋
How to use this checklist.

Run through it once before any import. Or scan the file with a validator that runs all 15 checks automatically and shows you the results in one report.

Part 1 — File structure (checks 1-4)

These are the “the import will fail entirely” checks. Fix any of these before moving on.

1. File extension is .csv

Not .xlsx. Not .xls. Not .numbers. Shopify only reads .csv files. If you edited in Excel and didn’t choose “CSV UTF-8” on save, your file is probably in the wrong format.

2. First row contains column headers

Shopify expects row 1 to be the column names: Handle, Title, Variant Price, etc. If your file has a title row or a blank row above the headers, delete it.

3. File is comma-delimited, not semicolon

Open the file in a plain text editor. If the first line reads Handle;Title;Vendor instead of Handle,Title,Vendor, your file uses the wrong delimiter. Re-export as comma-separated.

4. Required columns are present

For new products: Handle and Title are required, plus Variant Price to make products sellable. For updates: only Handle is required. Any missing required column fails the entire import.

Part 2 — Product identity (checks 5-8)

These determine whether Shopify matches rows to the right products — and whether the products end up with clean, indexable URLs.

5. Every product has a Handle

No blank handles. Handle is the only column Shopify uses to match rows to products. See our handle errors guide for the full explanation.

6. Handles follow Shopify’s format

Lowercase letters, numbers, and hyphens. No spaces, uppercase, underscores, or accents. If you see Blue T-Shirt in the Handle column, fix it to blue-t-shirt before importing.

7. Each product appears once as a parent

The first row of each product has the Title. Subsequent rows of the same product (variant rows, image rows) should have a blank Title. If two rows with the same Handle both have Titles, Shopify merges them.

8. Every product has a Title

Blank Title = Shopify creates a product with an auto-generated name. It won’t rank in search, it looks unprofessional on the storefront, and it’s usually a sign that something else is wrong with the row.

Part 3 — Variants & SKUs (checks 9-10)

Variant problems are the most common reason merchants lose half their catalog after an update. See our variant errors guide for the deeper dive.

9. Every variant row has a Handle

A variant row without a Handle is orphaned. Shopify can’t attach it to a product. It either gets dropped or creates a duplicate product. Copy the parent’s Handle into every variant row.

10. No duplicate option combinations

Within one product, each variant needs a unique combination of Option values. “Small/Red” and “Small/Red” is a duplicate — Shopify silently drops one.

Part 4 — Prices & inventory (checks 11-12)

11. Prices are numeric, no symbols

19.99 is correct. $19.99, 19,99, and nineteen ninety nine are all wrong. Shopify expects a dot for the decimal separator and no currency symbol.

12. Inventory quantities are whole numbers

42 is correct. 3.5, -5, and blank cells in an included Variant Inventory Qty column are all problematic. Shopify expects a non-negative integer.

Part 5 — The destructive blank check (check 13)

This is the most important check for anyone updating existing products. See our blank overwrites guide for the full mechanism.

13. No blank cells in included columns

For every column you’ve included in the CSV, check for blank cells. Shopify treats blanks as intentional clears on matching products.

Ask yourself for each column:

  • Are there blank cells in this column?
  • If yes — do I want those products to have this field cleared?
  • If no — should I fill them in, or remove the column entirely?

The safest path: include only the columns you’re actively changing, and make sure every cell in those columns has a value.

Part 6 — Encoding & content (checks 14-15)

14. File is UTF-8, no BOM

Open the file in Notepad++, VS Code, or Sublime Text. The encoding indicator should read “UTF-8” — not “UTF-8 with BOM,” not “Windows-1252,” not “ISO-8859-1.” See our encoding errors guide for details.

15. No smart quotes or typographic characters

Search the file for ", ", ', ', —, and …. If any of these appear, Shopify’s CSV parser may misread the field boundaries. Replace them with straight quotes and hyphens.

The fast version — one minute, one scan

Fifteen manual checks on a 500-row file take 30-60 minutes. On a 5,000-row file, they take an afternoon. And even then, you’ll miss things — the eye can’t spot a smart quote in a 200,000-character file.

A validator runs all 15 checks in a single pass. It shows you which rows have which problems, sorted by severity, with the specific cell value that needs attention.

Run all 15 checks in 30 seconds

Autonom Shopify Guard scans your CSV for every issue on this list — plus 20 more — before you upload it. Free, browser-based, no account needed.

Open Shopify CSV Validator →

After the checks pass

Even with a clean file, the safest import path is:

  1. Export a backup of your current products from Shopify Admin → Products → Export → All products.
  2. Import a test batch of 2-5 products first. Verify they look right on the storefront.
  3. If the test looks good, run the full import.
  4. Verify a sample of the results. Check prices, variants, and images on a few products.
  5. Keep the backup until you’re confident the import worked.

If something does go wrong, the backup lets you restore the previous state by re-importing it. This is the single most important safety practice for bulk imports — and almost nobody does it.

Related guides

Frequently asked questions

How often should I run this checklist?

Every time before you import a CSV that touches existing products. For new-product imports, checks 1-11 are the critical ones. For update imports, check 13 (destructive blanks) becomes the most important one.

What’s the most common cause of failed Shopify imports?

In our testing, the top three are: missing Handle values, blank cells in included columns (destructive blanks), and duplicate option combinations. These three account for the majority of “silent” import failures.

Can I import a CSV without a backup?

You can, but it’s risky. If the import modifies products in ways you didn’t intend, you can’t restore them without re-entering data manually. Always export a backup first — it takes 30 seconds.

Do I need to run every check every time?

For small imports (under 50 rows) you can usually eyeball checks 1-4 and be done. For anything larger, run all 15. The validator handles this automatically.

What’s the safest way to test an import?

Create a small test CSV with 2-5 products — either new ones you’ll delete afterward, or existing products you can manually verify. Import that first. If it works, run the full file.

What if my import already failed?

Re-export your products from Shopify Admin. The current state of your store is the new “truth.” From there, run the CSV through the validator, fix the errors it finds, and try again.

Are there checks specific to Shopify Plus?

The checks are the same. Plus stores support more variants per product (up to 2,000 vs 100), so check 10 (duplicate option combinations) applies to a much larger space of combinations.

Scroll to Top