Powered by Smartsupp

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.

Updated: February 202618 min read

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:

Product names, SKUs, and IDs
Prices (regular and sale)
Descriptions (short and long)
Categories and tags
Product images (via URLs)
Stock quantities and status
Product variations (sizes, colors)
Dimensions and weight

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

  • 1
    WooCommerce Installed: Version 3.1 or higher required for CSV import feature
  • 2
    Admin Access: WordPress administrator role to access product import
  • 3
    CSV File: Properly formatted CSV with product data (UTF-8 encoding recommended)
  • 4
    Product Images: Images hosted online with public URLs (if including images)
  • 5
    Server 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

ColumnRequired?Description
IDNoProduct ID (leave blank for new products)
TypeYessimple, variable, grouped, external
SKUNoUnique product identifier
NameYesProduct title/name
PublishedNo1 = published, 0 = draft, -1 = private
Regular priceYesStandard product price
CategoriesNoComma-separated category names
ImagesNoComma-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

1

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.

2

Add URLs to CSV

In the Images column, add the full URL to each image. For multiple images, separate URLs with commas.

3

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

Correct Format (Comma-separated URLs):

https://example.com/images/shirt-front.jpg, https://example.com/images/shirt-back.jpg, https://example.com/images/shirt-detail.jpg

✅ First URL = Featured image
✅ Additional URLs = Gallery images

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

1

Access WooCommerce Product Import

From your WordPress dashboard, navigate to Products → All Products, then click the Import button at the top of the page.

WordPress dashboard showing Products page with Import button highlighted

Path: WordPress Admin → Products → All Products → Import

2

Upload Your CSV File

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

WooCommerce CSV import screen showing file upload and options

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

3

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.

WooCommerce column mapping interface showing CSV columns mapped to product fields

How column mapping works:

  • • WooCommerce auto-maps common column names
  • • Manually select the correct field for each column
  • • Choose "Do not import" to skip unwanted columns
  • • Save mapping for reuse in future imports
4

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
5

Review Import Results

After completion, WooCommerce displays a summary showing successful imports, updates, and any errors encountered.

WooCommerce import completion screen showing success summary

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

SKUNameTypePublished
SHIRT-001Cotton T-Shirtvariable1

Step 2: Add Variation Rows

Each variation gets its own row with Type: variation and Parent referencing the parent SKU.

SKUTypeParentAttribute 1 nameAttribute 1 valueRegular price
SHIRT-001-SvariationSHIRT-001SizeSmall29.99
SHIRT-001-MvariationSHIRT-001SizeMedium29.99
SHIRT-001-LvariationSHIRT-001SizeLarge29.99

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

Can I import products from Shopify to WooCommerce?

Yes! Export products from Shopify as CSV, then convert the format to match WooCommerce's structure. The easiest way is to use ProdSift's WooCommerce Product Extractor to get products in perfect WooCommerce format, or use our Shopify to WooCommerce migration tool which handles the conversion automatically.

What's the maximum number of products I can import at once?

WooCommerce doesn't have a hard limit, but server resources matter. Most shared hosting can handle 1000-2000 products per import. For larger catalogs, split into batches. If imports timeout, reduce batch size to 500 products or contact your hosting provider to increase PHP memory limit and execution time.

Will importing products overwrite my existing products?

Only if you check 'Update existing products' AND the CSV contains matching IDs or SKUs. If unchecked, WooCommerce skips products with matching IDs/SKUs and only adds new products. Always backup before importing with update enabled.

Why aren't my product images importing?

Most image import failures are due to incorrect URLs. Images must be hosted online with publicly accessible direct URLs. Common mistakes: using Dropbox/Google Drive share links (these redirect to preview pages), local file paths (C:/images won't work), password-protected servers, or URLs with spaces. Test each URL in your browser - it should display the image immediately.

Can I import product reviews and ratings?

Not with the native WooCommerce importer. Reviews require a plugin like 'Product Import Export for WooCommerce' (paid) which supports review imports. Alternatively, you can import reviews directly to the database, but this requires technical knowledge.

How do I import products with multiple variations?

Create one row for the parent product with Type: variable, then create separate rows for each variation with Type: variation and reference the parent SKU in the Parent column. Include attribute names (Size, Color) and values (Small, Red) for each variation. Each variation needs its own unique SKU.

What if my CSV import times out or crashes?

This usually means your CSV is too large or server resources are limited. Solutions: (1) Split CSV into smaller batches (500-1000 products), (2) Increase PHP memory_limit to 256MB and max_execution_time to 300 seconds, (3) Import products without images first, then add images in a second import, (4) Use a more powerful hosting plan or contact your provider.

Can I schedule automatic product imports?

Not with the native WooCommerce importer. You need a plugin like 'WP All Import Pro' or 'Product Import Export for WooCommerce' which support scheduled imports via cron jobs. These are useful for dropshipping or regularly updated inventory feeds.

How do I import products with custom fields or meta data?

Use the Meta: column prefix in your CSV. For example, Meta: custom_field_name as the column header. WooCommerce will import these as product meta data. Make sure the field names match exactly what your theme or plugin expects.

What's the difference between ID and SKU?

ID is WooCommerce's internal database ID (auto-generated, numeric). SKU is your custom product identifier (you create it, can be letters/numbers). For new products, leave ID blank. For updating existing products, use either ID or SKU to match products. SKU is more flexible and portable across stores.

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.