How to Import Products to WooCommerce Using CSV Files
A complete guide to importing products into your WooCommerce store using CSV files. Learn the correct format, handle product variations and images, and avoid common mistakes when importing thousands of products.
What is WooCommerce Product Import?
WooCommerce product import is the process of adding or updating products in bulk using a CSV (Comma-Separated Values) file. Instead of manually creating products one by one through the WordPress admin, you can prepare all your product data in a spreadsheet and upload it in minutes.
This method is essential for:
- Setting up new stores with hundreds or thousands of products
- Migrating from other eCommerce platforms like Shopify, Magento, or BigCommerce
- Bulk updating prices, inventory, or product descriptions
- Managing seasonal inventory changes efficiently
What Data Can You Import?
A WooCommerce CSV file can include all essential product information:
When to Import Products
New Store Setup
Launching a new WooCommerce store with a large product catalog. Importing lets you add hundreds or thousands of products in minutes instead of days.
Platform Migration
Moving from Shopify, Magento, BigCommerce, or another platform. Export your existing products and import them into WooCommerce with proper formatting.
Bulk Price Updates
Updating prices across your entire catalog or specific categories. Edit prices in a spreadsheet and reimport to apply changes instantly.
Inventory Management
Updating stock quantities after receiving inventory or conducting physical counts. Much faster than manual updates.
Seasonal Product Changes
Adding or removing seasonal inventory, holiday collections, or limited-time products efficiently.
Data Recovery
Restoring products from a backup file after data loss, site migration issues, or plugin conflicts.
Before You Begin
Critical: Backup Your Database
Before importing, create a complete backup of your WordPress database and files. WooCommerce imports can overwrite existing products, and while there's usually an undo option, it's safer to have a backup. Use plugins like UpdraftPlus or your hosting provider's backup tool.
Requirements Checklist
- 1WooCommerce Installed: Version 3.1 or higher required for CSV import feature
- 2Admin Access: WordPress administrator role to access product import
- 3CSV File: Properly formatted CSV with product data (UTF-8 encoding recommended)
- 4Product Images: Images hosted online with public URLs (if including images)
- 5Server Resources: Adequate PHP memory limit (256MB+ recommended for large imports)
Understanding WooCommerce CSV Format
WooCommerce uses a specific CSV structure for product imports. Each column represents a product field, and each row represents either a complete product or a product variation.
Essential CSV Columns
| Column | Required? | Description |
|---|---|---|
| ID | No | Product ID (leave blank for new products) |
| Type | Yes | simple, variable, grouped, external |
| SKU | No | Unique product identifier |
| Name | Yes | Product title/name |
| Published | No | 1 = published, 0 = draft, -1 = private |
| Regular price | Yes | Standard product price |
| Categories | No | Comma-separated category names |
| Images | No | Comma-separated image URLs |
Important CSV Fields Explained
Type
Example: simple
Product type: 'simple' for standard products, 'variable' for products with variations (sizes/colors), 'grouped' for product bundles, 'external' for affiliate products.
Name
Example: Premium Cotton T-Shirt
Product title as it appears on your store. Can include special characters and spaces.
Short description
Example: Soft, breathable cotton tee
Brief product summary shown on product listing pages. Plain text or basic HTML.
Description
Example: Full product details...
Complete product description shown on product pages. Supports full HTML formatting.
Regular price
Example: 29.99
Standard price (no currency symbols). Required for simple products.
Sale price
Example: 19.99
Discounted price (no currency symbols). Leave blank if no sale.
Categories
Example: Clothing, T-Shirts, Men
Comma-separated category names. Categories are created if they don't exist. Use > for hierarchy: 'Clothing > Men > T-Shirts'
Tags
Example: cotton, summer, casual
Comma-separated tags for organization and filtering.
Stock
Example: 100
Inventory quantity. Leave blank for unlimited stock or if not managing inventory.
In stock?
Example: 1
1 = in stock, 0 = out of stock. Overrides Stock quantity setting.
Weight
Example: 0.5
Product weight in your store's default unit (kg, lbs, etc.). Used for shipping calculations.
Length / Width / Height
Example: 10 / 5 / 2
Package dimensions in your store's default unit. Used for shipping calculations.
Pro Tip: Get Perfect CSV Files Instantly
Instead of manually creating CSV files, use ProdSift's WooCommerce Product Extractor to export products from any WooCommerce store in perfect CSV format. All fields are correctly formatted and ready to import.
Preparing Product Images
WooCommerce doesn't store images directly in the CSV file. Instead, it references image URLs and downloads them during import. This is a critical step that many people get wrong, so pay close attention.
How Image Import Works
Upload Images to a Server
Upload product images to your web server, CDN, or image hosting service. Images must be publicly accessible via direct URLs.
Add URLs to CSV
In the Images column, add the full URL to each image. For multiple images, separate URLs with commas.
WooCommerce Downloads During Import
During import, WooCommerce downloads each image from the URL and adds it to your WordPress Media Library. The first URL becomes the featured image, remaining URLs become gallery images.
Image URL Format
Common Image Import Mistakes
- ❌Dropbox/Google Drive share links: These redirect to preview pages, not direct image files
- ❌Local file paths: C:/Users/Documents/image.jpg won't work - images must be online
- ❌Password-protected URLs: Images behind login pages can't be accessed
- ❌Spaces in filenames: Use hyphens instead: shirt-front.jpg not "shirt front.jpg"
Where to Host Images
Recommended Options
- • Your web hosting server
- • Cloudflare Images or R2
- • Amazon S3 with public access
- • Image CDN services (ImageKit, Cloudinary)
Avoid These
- • Dropbox share links
- • Google Drive share links
- • Local computer paths
- • Password-protected servers
Step-by-Step Import Guide
Access WooCommerce Product Import
From your WordPress dashboard, navigate to Products → All Products, then click the Import button at the top of the page.

Upload Your CSV File
Click Choose File and select your CSV file. WooCommerce provides helpful options before starting the import.

Update existing products
Checked: Updates products with matching ID or SKU. Overwrites existing data with CSV values.
Unchecked: Only adds new products. Skips products with matching ID/SKU.
Advanced Options
CSV File Path: Import CSV from server path instead of upload
Delimiter: Character separating columns (usually comma)
Character Encoding: UTF-8 (default) or other encoding
Map CSV Columns to Product Fields
WooCommerce will analyze your CSV and show a mapping interface. Match each CSV column to the corresponding WooCommerce field.

Run the Import
Click Run the importer to begin importing products. The process may take several minutes for large catalogs.
⚠️ Don't close the browser: Keep the page open until import completes. Closing may corrupt the import.
What happens during import:
- Products are added/updated one by one
- Images are downloaded from URLs
- Categories and tags are created if needed
- Progress bar shows completion status
Review Import Results
After completion, WooCommerce displays a summary showing successful imports, updates, and any errors encountered.

✅ Import Complete!
Click "View Products" to see your imported products. You can now edit titles, descriptions, prices, and other details from the Products page.
Importing Product Variations
Variable products (products with multiple options like sizes, colors, or materials) require special CSV formatting. Here's how to set them up correctly.
Variable Product Structure
Step 1: Create Parent Product
The first row defines the parent product with Type: variable
Step 2: Add Variation Rows
Each variation gets its own row with Type: variation and Parent referencing the parent SKU.
Multiple Attributes (Size + Color)
For products with multiple attributes (e.g., Size AND Color), use Attribute 2 name and Attribute 2 value columns.
Example: A shirt with Small/Medium/Large sizes AND Red/Blue/Green colors would need 9 variation rows (3 sizes × 3 colors).
Common Import Issues & Solutions
Products import but images are missing
Common Causes:
- • Image URLs are not direct links to files
- • Images are hosted on password-protected servers
- • Using Dropbox/Google Drive share links instead of direct URLs
- • Image URLs contain spaces or special characters
Solutions:
- Use direct image URLs that end in .jpg, .png, .gif, etc.
- Test URLs in browser - they should show the image immediately
- Upload images to your web server or public CDN
- Replace spaces with hyphens in image filenames
- Ensure images are publicly accessible (not password-protected)
CSV import fails with 'Invalid file' error
Common Causes:
- • File is not saved in CSV format
- • CSV contains special characters or encoding issues
- • Required columns are missing
- • Excel auto-formatted data incorrectly
Solutions:
- Save file as 'CSV UTF-8 (Comma delimited)' in Excel
- Use Google Sheets instead of Excel to avoid formatting issues
- Ensure Type and Name columns are present
- Check file with a text editor (Notepad++) to verify format
- Remove any special characters or formulas from cells
Product variations not creating properly
Common Causes:
- • Parent product Type is not set to 'variable'
- • Variation rows missing Parent column
- • Attribute names don't match between parent and variations
- • Variation Type not set to 'variation'
Solutions:
- Parent product row must have Type: variable
- Each variation must reference parent SKU in Parent column
- Variation rows must have Type: variation
- Ensure attribute names match exactly (case-sensitive)
- Import parent product first, then variations
Existing products not updating
Common Causes:
- • 'Update existing products' option not checked
- • SKU or ID doesn't match existing products
- • Products exist but have different SKUs
Solutions:
- Check 'Update existing products' during upload
- Ensure SKU column matches existing product SKUs exactly
- Use product ID instead of SKU for matching
- Export existing products first to get correct IDs/SKUs
Import times out or crashes
Common Causes:
- • CSV file too large (thousands of products)
- • Server PHP memory limit too low
- • Too many images being downloaded at once
- • Server timeout settings too short
Solutions:
- Split large CSV into smaller batches (500-1000 products each)
- Increase PHP memory_limit to 256MB or higher
- Increase PHP max_execution_time to 300 seconds
- Import products first, then add images in second import
- Contact hosting provider to increase limits
Categories not being created or assigned
Common Causes:
- • Category names contain typos
- • Using category IDs instead of names
- • Category hierarchy format incorrect
Solutions:
- Use category names, not IDs: 'Clothing' not '23'
- For hierarchies, use >: 'Clothing > Men > Shirts'
- Check category names for extra spaces or special characters
- Categories are automatically created if they don't exist
Best Practices for Successful Imports
Always Backup First
Create a complete database backup before any import. Use plugins like UpdraftPlus or your hosting provider's backup tool.
Test with Small Batches
Import 10-20 products first to verify CSV format, image URLs, and data mapping before importing thousands.
Use UTF-8 Encoding
Save CSVs with UTF-8 encoding to prevent issues with special characters, accents, and international text.
Use Google Sheets
Google Sheets handles CSV better than Excel. Excel often auto-formats data incorrectly and breaks CSV structure.
Host Images Properly
Upload images to your web server or CDN. Use direct URLs, not Dropbox/Google Drive share links.
Split Large Catalogs
Import in batches of 500-1000 products to avoid timeouts and make troubleshooting easier.
Frequently Asked Questions
Need Help Importing Products?
ProdSift makes it easy to extract products from any WooCommerce or Shopify store in perfect CSV format, ready to import. Migrating platforms? Our tools handle format conversion automatically.