How to download all your WooCommerce product images

WordPress has no button that downloads your product photos. WooCommerce’s product export lists every image, but as links. Here is how to get the files for free, and a faster way to get one organized ZIP.

Before you start

  1. WordPressProducts → All Products → Export → Generate CSV
  2. Product CSVImage links in Images, separated by commas
  3. ParcelConfirms your store, tests a few images, downloads the rest
  4. One ZIPA folder per product, variation photos included
From WordPress to an organized folder of product photos.

Where the images are in the export

wc-product-export.csv
IDType1SKU2NameParent3Images4
101variableMUG-01Trail Mughttps://your-store.com/wp-content/uploads/…/mug-1.jpg, https://your-store.com/wp-content/uploads/…/mug-2.jpg
102variationMUG-01-BTrail Mug - BlueMUG-01https://your-store.com/wp-content/uploads/…/mug-blue.jpg
103simpleTea Towelhttps://your-store.com/wp-content/uploads/…/towel-1.jpg

Columns without a note are left out here; your file has them too.

  1. Type tells products and variations apart. A variation row’s photo goes into its product’s folder.
  2. SKU names folders and files. The tea towel has none, so its folder is named after its ID: id-103.
  3. Parent on a variation row names the product it belongs to.
  4. Images holds full links on your own site, separated by commas; the first is the main image.

The free manual method

  1. Export your products as above and open the CSV in a spreadsheet.
  2. Copy the Images column and split it at the commas between links, so each link has its own line. A comma that is part of a link is exported as \,: don’t split there, and change it back to a plain comma.
  3. Paste the links into a bulk-download browser extension or a download script.
  4. Sort the files into a folder per product and rename them. The files keep their upload names, so look up each one’s product and SKU in the CSV.

You can also copy the wp-content/uploads folder from your hosting account, but it mixes product photos with every other upload and holds several resized copies of each image (for example -300x300), so it is hard to tell which file belongs to which product.

Free method

Downloads/

  • mug-1.jpg
  • mug-1-300x300.jpg
  • mug-1-768x768.jpg
  • blog-header.png
  • towel-1-150x150.jpg
  • …

A copy of wp-content/uploads: product photos mixed with other uploads and several resized copies of each.

Parcel

parcel-1a2b3c4d.zip

  • MUG-01/
    • MUG-01-1.jpg
    • MUG-01-2.jpg
    • MUG-01-B-3.jpg
  • id-103/
    • id-103-1.jpg
  • manifest.csv

Only product photos, full size, a folder per product with variation photos inside, named by SKU (or ID).

The faster way: Parcel

Upload the same WooCommerce CSV to Parcel and confirm your store’s address. You get one ZIP file:

Parcel downloads only from your store’s address, as ParcelBot, two images at a time. If a security plugin or firewall blocks it, Parcel tests a few images before you pay, so you find out first. Nothing is installed on your site and Parcel never asks for your WordPress login.

What it costs

Up to 25 products is free; larger catalogs are a one-time $9, $19, or $39 depending on size. No subscription.

One payment per export, no subscription. A free export can carry up to 300 MB of images; a paid one up to 1 GB.
What fits in one Parcel export

Files stay available for 24 hours after the export is ready.

If something goes wrong

Parcel says “Choose a .csv file exported from WooCommerce Products”
The file isn’t WooCommerce’s product export. Export again from Products → All Products → Export with every column selected, and upload that file.
Parcel says links were skipped
Parcel downloads only from the store address you confirmed. Images hosted on another website, such as a CDN or an old domain, are counted on screen and left out; check the address, or save those images by hand.
The test downloads failed
A security plugin, firewall or host may be blocking ParcelBot. If none of the test images download, the export isn’t started and you aren’t charged; see how ParcelBot downloads, allow it, and try again. If only some fail, the export goes ahead and lists them in failed-downloads.csv.
A folder is called id-something
That product has no SKU, so Parcel uses its WooCommerce ID. Add SKUs in WooCommerce and export again if you need SKU names.
An image is listed in failed-downloads.csv
Its link didn’t return an image, for example because the file was deleted from the media library. Open the original_url from the report in a browser to check.

Questions

How do I download all WooCommerce product images?

Export your products from Products → All Products → Export and use the links in the Images column: download them with a browser extension or script, or upload the CSV to Parcel for one organized ZIP.

Do I get the full-size images or thumbnails?

The full-size files. The export links to the images you uploaded, not the resized copies WordPress makes for your theme, and Parcel saves them as your website serves them.

Where do variation images go?

Into their product’s folder. With the SKU option, a variation’s photo is named after the variation’s own SKU when it has one, or the product’s SKU when it doesn’t.

Does the export include alt text?

No. WooCommerce’s product export has no alt text column, so Parcel’s image details spreadsheet has none for WooCommerce products.

Does Parcel need my WordPress login or a plugin?

No. You export the CSV yourself and upload it. Parcel downloads the images from your public website, as ParcelBot, and nothing is installed.

Upload WooCommerce CSV

Parcel is an independent tool, not affiliated with WooCommerce.