How to fix duplicate SKU errors in a WooCommerce CSV
WooCommerce uses product IDs and SKUs to decide whether a CSV row creates a product or updates one. A repeated or mismatched identifier can make rows fail, update the wrong product, or be skipped.
Why WooCommerce reports an existing SKU or skips the row
WooCommerce expects SKUs to identify products uniquely. During a normal import, a row can be rejected when its SKU or ID already belongs to a product in the store. During an update import, WooCommerce matches the row to an existing product by ID or SKU; rows with no match are skipped.
1. Check for duplicates inside the CSV
Sort the SKU column or scan the file for repeated non-empty values. A parent product and each of its variations need their own distinct SKUs. Remove accidental duplicate rows, or assign a new SKU when the rows represent different products. Do not “fix” duplicates by blanking identifiers if you intend to update existing products.
2. Check whether the SKU already exists in the store
Search the WooCommerce product list for the SKU named in the import log. Include variations and items in the trash. If the CSV row is meant to update that product, keep the matching SKU and select Update existing products on the importer screen. If it is a genuinely new product, give it a new unique SKU.
3. Use IDs and SKUs in the format WooCommerce expects
The core importer accepts an existing product ID with an id: prefix, such as id:100. SKU references do not use a prefix. Avoid spreadsheet formulas, trailing spaces, or number formatting that silently changes a SKU such as 00124 into 124.
SKU exists + same product → keep it and run an update import.
SKU exists + different product → assign the new product a unique SKU.
SKU repeated in the file → remove the duplicate row or correct the identifier.
4. Recheck variation SKUs and parent references
A variation’s own SKU must be unique, but its Parent column should point to the parent product’s SKU or ID. Do not copy the parent SKU into the variation’s SKU field. For example, a parent can use tshirt, while variations use tshirt-s and tshirt-m.
5. Test a small corrected batch
Back up the store or use staging, then import only a few corrected rows. Review the import log before processing the full catalog. If the error remains, export the affected products from WooCommerce and compare their identifiers with your source file.
Get row-level answers without uploading your catalog.
Scan 25 product rows free, or unlock unlimited offline repairs for $9 once.