Shopify CSV Validator

Check a Shopify product CSV for import errors before you upload it, and download a cleaned-up copy.

Describe the result you need. AI will set up the tool and ask for any missing details.

Configure with AI

Enter to submit · Shift + Enter for a new line

Sent to AI. Leave out passwords and private customer data.

Drop your Shopify product CSV here or browse files

CSV up to 25 MB. It's read in your browser and never uploaded.

In the fixed file, Handle becomes URL handle, Variant Price becomes Price and so on.

What the validator checks

It reads the file the way Shopify's importer does and checks each rule from Shopify's CSV documentation. It accepts the current column names (URL handle, Price, Product image URL) and the older ones (Handle, Variant Price, Image Src), because Shopify still accepts both.

CheckWhat Shopify expects
Required columnsTitle and URL handle (Handle in older files)
Variant rowsThe same URL handle on every row of a product, with the rows kept together. Title, Description, Vendor and Tags go on the first row only.
OptionsUp to 3 options. Option names on the first row, a value on every variant row, and no two variants with the same combination.
Variant limitUp to 2,048 variants per product
NumbersPrices with no currency symbol (19.99), Weight value (grams) as whole grams, Inventory quantity as a whole number
Fixed valuestrue or false for Published, Charge tax, Requires shipping and Gift card. Status is active, draft or archived. Continue selling is deny or continue. Weight unit is g, kg, lb or oz.
DuplicatesRepeated SKUs, barcodes, option combinations, images and image positions
Images and textFull https:// image URLs, alt text up to 512 characters, SEO title up to 70 and SEO description up to 320
The fileUTF-8 encoding, commas between values and 15 MB at most

Errors are problems that stop the import or bring products in wrong. Warnings are worth a look but won't block anything. Each one gives the row number as it appears in the preview table.

What the fixed file changes

When a problem has only one sensible fix, the download fixes it for you:

  • Trims spaces from the start and end of every value.
  • Changes yes/no and 1/0 to true/false, and yes/no in Continue selling to continue/deny.
  • Cleans prices: $1,299.00 becomes 1299.00 and 19,99 becomes 19.99.
  • Turns weights like 680g or 150.4 into whole grams, and units like lbs into lb.
  • Encodes spaces in image URLs as %20.
  • Repairs garbled characters such as ’ when the original text can be recovered.
  • Switches semicolon or tab separators to commas, and removes empty rows.
  • Optionally renames old column names to Shopify's current ones.

It never changes handles, option values or SKUs, because those decide which product and variant each row updates. Shopify warns that changing option values deletes the variant IDs and creates new ones, which can break apps that rely on them.

The sample file

Products / variants
4 / 10
Row 6
Status "Published" (error: use active, draft or archived)
Row 9
Same options as row 8, L/XL / Black (error)
Row 11
Option1 value empty for Size (error)
Rows 6 and 9
Compare-at below price, duplicate SKU (warnings)

3 errors and 2 warnings. The download also fixes 8 values, including $28.00, 12,50, Yes, No, 680g, 24.0 and a space in an image URL.

Importing the file into Shopify

  1. 01

    Open the importer

    In your Shopify admin, go to Products and click Import.

  2. 02

    Add the file

    Click Add file and pick the fixed CSV.

  3. 03

    Choose whether to overwrite

    To update products that already exist, tick Overwrite products with matching handles. Shopify then replaces the values in every column the file includes.

  4. 04

    Check the preview

    Click Upload and continue, read the summary, then click Import products.

With overwrite on, a blank cell blanks the existing value, and a column you leave out keeps its current values. So when you update, delete the columns you don't mean to change.

Common Shopify CSV import errors

  • Strange characters like ’ or �. The file wasn't saved as UTF-8, which Shopify requires. In Excel, use Save As → CSV UTF-8.
  • Barcodes like 8.5E+11. Excel turned a long number into scientific notation and dropped digits. Format the column as Text before you paste the codes back in.
  • Variants import as separate products. The rows don't share exactly the same URL handle, or they aren't kept together.
  • Missing option values. A product has an option name but one of its variant rows has no value for it.
  • Stock doesn't change. Inventory quantity only applies to stores with a single location. With more than one, update stock with Shopify's inventory CSV instead.

Questions people ask

Why does Shopify reject my CSV header?

Usually a column name is misspelled, a column appears twice, or the file uses semicolons instead of commas. The validator lists unknown and duplicate columns and the separator it found.

What's the file size limit for a Shopify product CSV?

15 MB. Split bigger files by product, keeping every row for a product in the same file.

Do old CSV templates with Handle and Variant Price still work?

Yes. Shopify keeps backward compatibility with older column names, but recommends moving to the current format. Turn on the rename option to convert the header for you.

How many variants can a Shopify product have?

Up to 2,048 variants, built from a maximum of 3 options such as Size, Color and Material.

Is my file uploaded anywhere?

No. It's read in your browser and never leaves your computer.

Want this builtinto your store?

I'm Emmanuel, a Shopify and WooCommerce developer. If this tool pointed at something you'd rather have fixed for you (a faster store, cleaner product data, a migration, a custom feature), send me a note.

Emmanuel Asika

Emmanuel Asika

Shopify & WooCommerce developer, Dublin

I build and fix online stores: new builds, migrations, speed, SEO and the custom bits apps can't do.

hello@emmanuelasika.com