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.
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:
- Export a backup of your current products from Shopify Admin → Products → Export → All products.
- Import a test batch of 2-5 products first. Verify they look right on the storefront.
- If the test looks good, run the full import.
- Verify a sample of the results. Check prices, variants, and images on a few products.
- 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.
