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
- You can open Products → All Products → Export in WordPress.
- You know your store’s address, such as
your-store.com. Parcel downloads only from it. - A security plugin or firewall won’t block ParcelBot, or you can allow it. Parcel tests a few images before you pay.
- Your site is online. Export before moving hosts or taking the store down.
- WordPressProducts → All Products → Export → Generate CSV
- Product CSVImage links in
Images, separated by commas - ParcelConfirms your store, tests a few images, downloads the rest
- One ZIPA folder per product, variation photos included
Where the images are in the export
- Export: in WordPress, open Products → All Products, click Export, leave every column selected and click Generate CSV.
- Images: the
Imagescolumn holds each product’s image links, separated by commas. The first link is the main image. They point at your own website, usually under/wp-content/uploads/. - Variations: each variation has its own row (
Typeisvariation) with its own image link, and itsParentcolumn names the product it belongs to. - Drafts and private products are exported too, so their images are listed as well.
| ID | Type1 | SKU2 | Name | Parent3 | Images4 |
|---|---|---|---|---|---|
| 101 | variable | MUG-01 | Trail Mug | https://your-store.com/wp-content/uploads/…/mug-1.jpg, https://your-store.com/wp-content/uploads/…/mug-2.jpg | |
| 102 | variation | MUG-01-B | Trail Mug - Blue | MUG-01 | https://your-store.com/wp-content/uploads/…/mug-blue.jpg |
| 103 | simple | Tea Towel | https://your-store.com/wp-content/uploads/…/towel-1.jpg |
Columns without a note are left out here; your file has them too.
- Type tells products and variations apart. A
variationrow’s photo goes into its product’s folder. - SKU names folders and files. The tea towel has none, so its folder is named after its ID:
id-103. - Parent on a variation row names the product it belongs to.
- Images holds full links on your own site, separated by commas; the first is the main image.
The free manual method
- Export your products as above and open the CSV in a spreadsheet.
- Copy the
Imagescolumn 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. - Paste the links into a bulk-download browser extension or a download script.
- 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:
- One folder per product, with variation images in their product’s folder
- Files named by variation SKU, product SKU or ID, or the original filename
- The full-size files your website serves, not thumbnails
- An image details spreadsheet listing every saved image with its link, product and SKU
- A failed-downloads report listing any image that could not be fetched
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.
- 10,000images per export
- 20 MBlargest single image
- 300 MBof images, free export
- 1 GBof images, paid 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_urlfrom 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.
Parcel is an independent tool, not affiliated with WooCommerce.