Before you import
The safest starting point is an export from your own store: it has the column names WooCommerce expects, and you can delete the columns you don't need.
Common errors and their fixes
Rows skipped because the product already exists
Cause: A product with the same SKU or ID is already in the store, and Update existing products wasn't ticked, so WooCommerce leaves those rows out.
Fix: Tick Update existing products when you're updating, or give new products SKUs that aren't in use yet.
Rows skipped because the ID doesn't match
Cause: The ID column is only for updating existing products. If an ID doesn't match a product in the store, the row is skipped, and you can't choose an ID for a new product.
Fix: Leave ID blank for new products, and match updates by SKU or by the IDs from a fresh export.
Variations missing or attached to nothing
Cause: Each variation row needs Type set to variation and a Parent column pointing at the variable product, by its SKU or as id:123. Without it, WooCommerce can't tell which product the row belongs to.
Fix: Give the parent row Type variable, and every variation row Type variation, its own SKU and name, and the parent's SKU in Parent. See product variants in a CSV.
Variation options that don't appear
Cause: The parent row lists every value of an attribute in Attribute 1 value(s), separated by commas; each variation row gives just one. A value on a variation that isn't in the parent's list has nothing to match.
Fix: List every value on the parent row, spelled exactly as on the variation rows.
Images not imported
Cause: Images are fetched from the URLs in the file. Some hosts block the request, need a login, or return a web page instead of the image.
Fix: Use direct links to the image files that open without signing in, or upload the images to the Media Library first.
Categories or tags split in the wrong place
Cause: Commas separate multiple values in a cell, so a category name that contains a comma is split in two.
Fix: Put a backslash before commas that belong inside a value, such as Places\, People\, Cities. Use > for subcategories, such as Home goods > Audio.
Yes and No values ignored
Cause: True or false columns such as In stock? expect 1 or 0, and Published expects 1 (published), 0 (private), -1 (draft) or 2 (pending review).
Fix: Replace Yes, No, TRUE and FALSE with the numbers WooCommerce expects.
Accents and symbols garbled
Cause: The file wasn't saved as UTF-8, which the importer expects.
Fix: Save as CSV UTF-8 from Excel, or export from Google Sheets, which uses UTF-8. See saving Excel files as CSV.
"Sorry, this file type is not permitted for security reasons."
Cause: Some servers reject a CSV that contains HTML, for example in product descriptions.
Fix: Upload the file to your site's uploads folder with SFTP or your host's file manager, then enter its path under Show advanced options.
File too large
Cause: The maximum upload size is set by your server, so a big catalog can exceed it.
Fix: Split the file into smaller batches, or ask your host to raise the limit.
A variable product that imports
One parent row lists every size; each variation row has its own SKU, its one size, its price and the parent's SKU.
Type,SKU,Name,Parent,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global,Regular price variable,TEE-01,Logo T-shirt,,Size,"S, M, L",1,0, variation,TEE-01-S,Logo T-shirt - S,TEE-01,Size,S,,0,25 variation,TEE-01-M,Logo T-shirt - M,TEE-01,Size,M,,0,25 variation,TEE-01-L,Logo T-shirt - L,TEE-01,Size,L,,0,27
Attribute 1 global is 0 for an attribute that only exists on this product, or 1 for one set up under Products, then Attributes. From WooCommerce 11.1, turning a simple product into a variable one works in a single import, as long as the parent row comes before its variations; before that, it takes two.
Checklist before you import
Getting product data from a supplier or client?
Send them a form instead of a spreadsheet. The WooCommerce products template uses WooCommerce's column names, checks prices, stock and yes/no columns as they're entered, and downloads a CSV ready for the importer. See also collecting product data from suppliers.
Try the WooCommerce templateRelated Guides
Relevant Templates
Import Builder is an independent product and is not affiliated with, endorsed by, or sponsored by Automattic Inc. WooCommerce is a trademark of Automattic Inc. Import rules as described in the WooCommerce documentation, October 2026.