How to compress multiple images at once comes down to one move: drop the whole folder into a browser batch tool that applies one setting to every file in a single pass. A free batch compressor takes dozens of images at a time, at quality 80, and hands back every file ready to download within seconds, no per-image clicking and no software to install.
Doing this one file at a time is the real time sink, and it does not need to be. Twenty photos from a phone shoot average four and a half megabytes each, ninety megabytes total, and running them one at a time means opening, waiting, and downloading twenty separate times. Online batch tools, the bulk image compression features already built into your OS, and the command line all solve the same problem: one setting applied once instead of twenty repeats. This is the batch-specific companion to the complete guide to compressing an image, covering every route for a whole folder instead of one file.
Three routes cover almost every situation: a browser batch tool for most people, the resize option already built into your OS for a quick pass, and the command line when a folder is too large for either.
| Method | Images at once | Install required | Best for |
|---|---|---|---|
| Browser batch tool | Up to 30 free, 100 on Pro | None | Most people, most folders |
| Built-in OS tool (Preview, PowerToys) | A handful, selected together | Already on your machine | A quick resize-and-save pass |
| Command line (jpegoptim, optipng, GIMP) | Entire folder tree, no cap | Terminal, one-time install | Hundreds of files, developers |
What does batch compressing images actually do?
Batch compressing images means applying one quality setting and one output format to every file you drop in, rather than adjusting each image by hand. The tool reads each file, re-encodes it at that setting, and hands each one back individually, so a folder of fifty photos takes the same handful of clicks as a folder of one, just a longer wait while the queue works through it.
The tradeoff is that everything in the batch gets treated the same way. A quality level that is invisible on a photograph can visibly soften a screenshot or a flat-color logo, because lossy compression smears the sharp edges lossless formats are built to protect. Group by content type before you batch, photos in one pass and graphics in another, and the setting right for one will not wreck the other.
This is different from zipping a folder. A ZIP archive wraps files in a lossless container and barely shrinks JPEGs or WebPs any further, because those formats already removed the redundancy a general-purpose archiver looks for. When you compress multiple photos at once with a real image compressor, each file is individually re-encoded, which is why the batch total drops by tens of percent instead of by almost nothing.
A batch job is also not the same job as a single-file compression, even though it uses the same engine underneath. A single file gives you room to eyeball the result and adjust; a batch of fifty asks you to trust one setting across all of them, which is exactly why the next few sections exist: to show you where that trust is earned and where it is not.
How to compress multiple images at once
The fastest route for almost everyone is a browser batch tool, because there is no install and no learning curve. I built the compressor on this site to work exactly this way, so here is the whole process, start to finish.
- Open the free compressor and drop your whole folder, or select multiple files, onto it. The free tier takes up to 30 images per batch, 25 MB each, no signup required.
- Leave quality at 80, the default the tool ships with and visually lossless for photographs.
- Let the batch run. Each file processes on its own, and EXIF metadata, including GPS coordinates and camera details, is stripped from every file by default.
- Download each result. Originals stay untouched on your device, and the uploaded copies are deleted from storage within the hour.
If you regularly work through more than 30 images in a sitting, a Pro plan at $12 a month raises the batch size to 100 and the per-file cap to 50 MB, with no per-image charge at any volume. Re-compressing a file already in the session, at a different quality or format, never counts against that limit either, which matters if the first pass at quality 80 was not aggressive enough for one stubborn file in the batch.
Say the folder is twenty photos from a phone, each around 4.5 MB, ninety megabytes total. Run them one at a time and you are opening, waiting, and downloading twenty separate times. Run them as a batch and the same twenty files land back around 900 KB apiece, eighteen megabytes total, in one pass instead of twenty separate ones. That is what batching buys you: you now know how to compress multiple images at once without touching a single file by hand, twenty or fifty times over.
Can you batch compress images without installing anything?
Yes. Both macOS and Windows can batch-process images natively, though neither compresses as aggressively as a dedicated tool, because both work primarily by resizing rather than by re-encoding at a quality setting.
macOS Preview: batch resize by selection
On a Mac, open all the target images in one Preview window, select them in the sidebar, and choose Tools, then Adjust Size. Preview resizes every selected image at once and shows the resulting size as you adjust dimensions, a workflow Apple documents in its own support guide (Apple Support on resizing in Preview). It is primarily a resize tool rather than a quality-based compressor, so a large flat PNG will not shrink much this way, and there is no equivalent of a quality-80 slider to fall back on.
Windows PowerToys: batch resize by right-click
On Windows, Microsoft's free PowerToys utility adds a Resize pictures option to the right-click menu. Select a folder of images, right-click, choose resize, and PowerToys writes resized copies alongside the originals without touching the source files. Like Preview, it cuts pixel dimensions rather than adjusting quality, so pair it with a quality pass afterward if bytes are still the problem once the dimensions are right.
Neither tool needs an install beyond what is already on the machine or a single free download, and both are the right call when you want a quick pass without leaving your desktop. Where they fall short is exactly where a browser compressor or the command line picks up: a real quality-based re-encode instead of a resize standing in for one.
Batch export in Photoshop or Lightroom
Professional editors already have a batch route built into the software they use daily. Photoshop's File menu includes Scripts, then Image Processor, which applies one export setting, format, quality, and destination folder, to an entire folder of source files in a single run. Lightroom works the same way from the other direction: import the shoot into one catalog, select every photo, and Export with one file setting applied across the whole selection.
Neither is the fastest option if you do not already have the software open for other reasons; installing a full editing suite just to shrink a folder of photos is a lot of tool for the job. But if Photoshop or Lightroom is already part of the workflow, batch exporting through it means one less app in the loop and one less place for a file to get lost.
How do you batch compress a folder from the command line?
For a photography archive or a folder too large for either point-and-click tool, the command line beats both because it never has you clicking anything, and it can walk an entire folder tree in one run.
jpegoptim and find for JPEGs
jpegoptim --max=85 --strip-all *.jpg compresses every JPEG in a folder in one command and strips metadata as it goes (DigitalOcean's guide to reducing image file size in Linux). It overwrites the source file by default, so add a --dest flag to write to a separate folder if you want your originals left alone, which you should. To reach every subfolder instead of just one, point the same tool at a folder with find rather than a wildcard: find /path -type f -name "*.jpg" -exec jpegoptim --max=85 --strip-all {} +. The + form batches files into fewer process launches and runs noticeably faster on a tree with hundreds of files than the equivalent command using \;.
optipng for PNGs
PNGs need a different tool, since jpegoptim only understands JPEG. find /path -type f -name "*.png" -exec optipng -o5 {} + losslessly optimizes every PNG under a tree, the same recursive pattern as the JPEG command above, with no quality loss because PNG compression is lossless by definition.
GIMP for a scripted batch export
GIMP can also batch-export headlessly from a script, useful if a folder mixes formats you would rather funnel through one tool. The catch is version-specific: the file-jpeg-save procedure that older Script-Fu batch commands rely on works on GIMP 2.10 and is gone in GIMP 3.0, so a script copied from an old forum post may error out on a current install until it is rewritten against the newer export API.
Command-line batches scale to sizes nothing else here touches, hundreds or thousands of files in one run, but they demand a terminal and a willingness to read an error message instead of clicking a retry button. For a one-off folder of vacation photos, that trade is not worth making.
The measured results: 50 photos through the browser tool
Take the measured single-photo result already established for this tool, a 4.5 MB phone photo compressing to about 900 KB at quality 80, and scale it to a realistic batch: 50 phone photos average 225 MB total, and the same batch comes back around 45 MB, roughly an 80 percent reduction, all in one pass instead of fifty.
| Batch stage | Files | Total size |
|---|---|---|
| Original phone photos | 50 | 225 MB |
| After browser batch at quality 80 | 50 | ~45 MB |
That gap, 225 MB down to roughly 45 MB, is the difference batching makes even before you touch the command line or a desktop app: one setting, one wait, applied to the whole folder instead of adjusted fifty separate times by hand. The time saved compounds the same way the bytes do. Fifty individual uploads at even thirty seconds apiece is twenty-five minutes of clicking, opening a file picker, waiting for a preview, and downloading a result, fifty times over. One batch drop replaces all fifty of those cycles with the time it takes the queue to run, usually under a minute for fifty phone photos, because the tool processes each file the moment the one before it finishes rather than waiting on you to start the next upload.
When does batch compression backfire?
Batch tools assume one setting fits every file in the folder, and that assumption breaks in three predictable ways: mixed content, a session cap you did not check, and overwriting the only copy of your originals.
Mixed content in one batch
A quality-80 photo setting looks fine on every photograph in the batch and rough on the one flat-color logo or screenshot that snuck in with them, because lossy compression smears the sharp edges lossless formats are built to protect. Grouping images by type before you batch, photos in one pass and graphics in another, so the setting right for one does not wreck the other, is standard batch practice (BulkPicTools on batch compression best practices).
A free-tier cap you did not check
Twenty images is not an obvious limit until image twenty-one throws an error. Many free batch tools cap a session at 20 images, 5 MB each, a hundred megabytes total, before you need a second session or a paid plan (Tinify's web optimizer); if a WordPress media library is the target instead, the equivalent free cap on a bulk-optimize plugin runs around 100 images a month (WordPress.org's TinyPNG plugin listing). If a folder is close to a tool's cap, count first or split it into two passes rather than finding out mid-batch.
Overwriting your only copy
Command-line tools in particular tend to overwrite the source file by default; jpegoptim does exactly this unless you add a --dest flag. Compression cannot be undone, so confirm a batch job is writing to a separate output before running it on files you cannot replace. Preview one or two results before committing the whole folder, since a setting that is wrong shows up in the first file exactly as much as the five hundredth, and catching it early saves redoing the entire batch.
The ZIP myth
Zipping a folder of already-compressed JPEGs or WebPs barely shrinks it further, because JPEG and WebP compression already removed the redundancy a general-purpose archiver looks for. Zipping helps with uncompressed formats and with bundling many files into one download, not with making photos smaller. If the goal is a smaller batch, batch-compress the images first and zip the results only if you need one file to send.
Batch compressing to a KB limit, or into one PDF
Two batch requests come up often enough to name directly: hitting an exact KB limit across every file in a folder, and combining a batch of images into a single PDF.
For a KB target across a batch, resize before you compress, the same rule that applies to a single file. A form that wants every photo under 100 KB almost always wants a small display size too, and a 4000-pixel-wide original will not reach 100 KB at any quality worth keeping. Cut dimensions to roughly what the destination displays first, then run the quality pass across the whole batch, and the byte target becomes realistic instead of a fight with the slider on every single file.
Combining images into one PDF is a separate step from compressing them, and this tool does not merge files into a PDF. The straightforward order is to batch-compress the images first, so the PDF starts small, then combine the compressed copies using your OS's built-in tools, Preview's Print menu on a Mac or an online PDF joiner on Windows, so the merge step never has to work against fifty full-size originals instead of fifty already-shrunk ones. This comes up most often with scanned receipts, contracts, or a batch of whiteboard photos that need to leave as one document instead of fifty separate attachments, and the size difference is not small: a PDF built from fifty full-size phone photos can run past a hundred megabytes, while the same fifty images compressed first typically keeps the finished PDF under twenty.