How to Compress Images in Bulk — Free Methods, No Software Required
To compress images in bulk for free: use ImageOptim (Mac, drag-and-drop a folder) or Squoosh CLI (Windows/Mac/Linux, one terminal command processes an entire directory). Both are free, require no account, and handle JPEG, PNG, and WebP. For batches under 10 images, a browser-based tool like resizeimageonline.net lets you compress to an exact file size target without installing anything.
The right tool depends on your batch size and platform
There's no single best method — the right choice depends on how many files you're compressing, what operating system you're on, and whether you need to hit a specific file size target or just "smaller than this."
| Situation | Best free method | Install required? |
|---|---|---|
| 1–10 images, exact size target (e.g. under 200KB each) | Browser tool | No |
| 20+ images, Mac | ImageOptim | Yes (free app) |
| 20+ images, Windows or cross-platform | Squoosh CLI | Yes (Node.js) |
| Product photos for Shopify/WooCommerce | Squoosh CLI or ImageOptim → then upload | Yes (free) |
| WordPress media library (existing uploads) | Smush or ShortPixel plugin | WordPress plugin (free tiers available) |
How to bulk compress images in a browser — no install
Browser-based compression is the quickest option when you don't want to install anything and your batch is small. Our tool processes one image at a time but runs entirely in your browser — no upload to a server, no account.
- Open resizeimageonline.net in one tab.
- Drop your first image, set your target size (e.g. 200KB for product images, 150KB for blog images).
- Download the compressed file.
- Click "Compress Another" and repeat.
For 5–8 images, this takes about 3 minutes. Beyond 10 images, the CLI tools below save significant time.
ImageOptim — the fastest bulk method on Mac
ImageOptim is a free Mac app that compresses images by drag-and-drop. You drag an entire folder onto it and it processes every image in place, overwriting the originals with smaller versions. The key detail: it works losslessly by default (stripping metadata and applying lossless PNG compression), but you can enable lossy JPEG compression in Preferences → Quality to get the biggest file size reductions.
The non-obvious thing about ImageOptim: it overwrites your originals. Make a copy of your folder before running it if you might need the originals later. For ecommerce product photos, keep a master folder at original resolution and work from a copy.
Typical results with lossy mode enabled: JPEGs reduce 40–60%, PNGs reduce 20–40%. A folder of 100 product images takes 2–3 minutes.
Squoosh CLI — the cross-platform option for large batches
Squoosh CLI is Google's command-line image compression tool, built on the same engine as the Squoosh web app. It runs on Windows, Mac, and Linux, and can process a folder in a single command.
Install it with Node.js (free):
npm install -g @squoosh/cli
Compress all JPEGs in a folder to 80% quality WebP:
squoosh-cli --webp '{"quality":80}' --output-dir ./compressed/ ./originals/*.jpg
The output lands in a separate compressed/ folder — originals are untouched. For Shopify sellers processing 200 product photos, this is the fastest free option available.
What file size to target per image type
The right target depends on where the image appears and at what size it's displayed.
- Ecommerce product images (displayed 600–1200px wide): under 200KB. Shopify does not re-compress images — what you upload is what visitors receive. At this target, product photos load in under 200ms on a median 4G connection.
- Hero images and lightbox-view shots: 500KB–850KB. These are zoomed and scrutinised; quality headroom matters more than speed here.
- Blog post inline images: under 150KB. WordPress generates derivatives from your upload, so a lean source keeps the entire media library small.
- Thumbnail grids and gallery previews: under 80KB. At 150–300px display width, 80KB is more than sufficient for any screen density.
- Open Graph / social share images: under 300KB. Facebook and Twitter re-compress these, so you're optimizing for the source quality, not the delivered size.
The one thing most guides miss: Shopify doesn't compress your images
This is the detail that surprises most ecommerce sellers. When you upload a 6MB product photo to Shopify, Shopify serves that 6MB file to visitors. It generates responsive sizes for different breakpoints, but it does not apply lossy compression — it serves your upload at its original quality and file size.
This means pre-compressing your product images before uploading is not optional for performance — it's the only way to control what visitors actually download. A 500KB product image loads in under half a second on mobile. A 6MB original loads in 4–8 seconds on a median connection, which is a measurable conversion impact.
WordPress behaves differently: it applies 82% JPEG quality to derivative sizes it generates, but starts from your original. A compressed 150KB source produces leaner derivatives across the board. Both platforms reward pre-compression, but Shopify's behavior makes it more urgent.
Frequently asked questions
What is the fastest free way to compress images in bulk?
On Mac: ImageOptim processes a folder by drag-and-drop with no configuration. On Windows and all platforms: Squoosh CLI processes entire folders from the terminal in one command. Both are free and install without a subscription.
Does bulk compression reduce image quality?
At JPEG quality 80–85, quality loss is not visible on screen for typical product and blog photos. Quality loss becomes visible below 70 — you'll see block artifacts in smooth gradients and skin tones. ImageOptim and Squoosh CLI both default to settings in the 75–85 range.
Should I compress images before uploading to Shopify?
Yes. Shopify serves your uploaded file as-is — it does not apply lossy compression. Pre-compressing product images to under 500KB before uploading is the only way to control what file size visitors actually receive.
Can I compress a whole folder of images at once in a browser?
Most browser-based tools, including ours, process one image at a time. For true folder-level batch processing without installing anything, browser tools aren't the right fit — use ImageOptim (Mac) or Squoosh CLI (all platforms) instead.
How do I bulk compress images already uploaded to WordPress?
Use a plugin: Smush, ShortPixel, or Imagify all offer free tiers that batch-compress your media library and regenerate derivative sizes. For new uploads, compress before uploading to keep the library clean from the start.