← Blog

How to Batch Compress Images on Mac Without Losing Quality

/ 7 min read

You’ve got 50 product photos for your website. Or 200 screenshots for documentation. Or a folder of blog images that are each 4 MB because your phone shoots 48-megapixel photos now.

You need to compress them. All of them. Without turning them into blurry messes.

Here are four ways to batch compress images on Mac, from the tool you already have to dedicated compression apps.

When You Need Batch Compression

The most common scenarios:

  • Web development: Every extra MB slows your page load. Google penalizes slow sites in search rankings. A hero image doesn’t need to be 8 MB.
  • Email attachments: Most email providers cap attachments at 25 MB. Ten uncompressed photos will blow past that easily.
  • Blog images: Your readers are on mobile with spotty connections. Smaller images mean faster loading and less data usage.
  • Storage management: You’ve got 80,000 photos and your iCloud plan is maxed out.

Before jumping into tools, a quick primer on how compression works.

Lossless vs. Lossy Compression

Lossless compression reduces file size without removing any image data. The decompressed image is identical to the original, pixel for pixel. Think of it like zipping a file. You get 10-30% size reduction typically. Tools like ImageOptim do this by stripping metadata and optimizing how the existing pixel data is encoded.

Lossy compression removes some image data to achieve much smaller files. A JPEG saved at 80% quality throws away the least noticeable details first. You might get 60-80% size reduction with minimal visible difference. Push the quality slider too low and you’ll see compression artifacts: blocky areas, color banding, blurry edges.

The sweet spot for most web images is lossy compression at 75-85% quality. You get dramatically smaller files with differences that are nearly invisible on screen.

Method 1: Preview.app (Built-in, Free)

You already have this. Preview can resize and re-export images in batch, though the process is a bit manual.

Steps

  1. Select all your images in Finder
  2. Right-click and open them all in Preview
  3. In Preview’s sidebar, press Cmd+A to select all images
  4. Go to File > Export Selected Images…
  5. In the export dialog, click Options
  6. Choose your format (JPEG, PNG, HEIC) and adjust the quality slider
  7. Pick a destination folder and export

What Preview Does Well

It’s free, it’s already installed, and it handles basic JPEG quality reduction. For a quick batch resize, it works.

The Catch

Preview’s compression options are limited. You can adjust JPEG quality and that’s about it. No WebP export. No AVIF. No fine-grained control over compression settings. And the quality slider gives you a generic “Low / Medium / High / Best” without showing actual file size estimates.

For a one-off job with JPEGs, Preview is fine. For anything more, keep reading.

Method 2: ImageOptim (Free)

ImageOptim is a must-have for web developers on Mac. Drag images onto it and it strips unnecessary metadata, optimizes PNG compression, and reduces JPEG file size without changing quality. All lossless by default.

Steps

  1. Download ImageOptim from imageoptim.com
  2. Drag your images (or an entire folder) onto the app window
  3. It processes automatically. Done.

That’s it. No configuration needed for basic use.

What Makes It Good

ImageOptim runs multiple optimization tools under the hood (MozJPEG, pngquant, Zopfli, SVGO). It picks the best result from each and keeps the smallest file. For PNGs specifically, the savings can be significant since PNG files often have room for better compression without any quality loss.

You can enable lossy mode in preferences for more aggressive compression. With lossy enabled, it can reduce JPEG files by 50-70% with minimal visible impact.

The Catch

ImageOptim only outputs the same format as the input. Drop a JPEG in, get a JPEG out. It can’t convert to WebP, AVIF, or JPEG XL. In 2026, format conversion is where the biggest file size wins are. A modern format like AVIF can be 50% smaller than an optimized JPEG at the same visual quality.

Method 3: sips Command Line (Built-in, Free)

macOS ships with sips (scriptable image processing system) in the terminal. If you’re comfortable with the command line, it’s fast and automatable.

Common Commands

Resize all images in a folder to a max width of 1200px:

sips --resampleWidth 1200 *.jpg

Convert all PNGs to JPEG at 80% quality:

for f in *.png; do sips -s format jpeg -s formatOptions 80 "$f" --out "${f%.png}.jpg"; done

Get image dimensions:

sips -g pixelWidth -g pixelHeight image.jpg

What Makes It Good

It’s already on your Mac. No install needed. It’s scriptable, so you can build it into automated workflows. Fast for bulk operations.

The Catch

sips doesn’t support WebP, AVIF, or JPEG XL output. The compression optimization isn’t as sophisticated as dedicated tools. And if you’re not comfortable with terminal commands, the learning curve is steep for a simple task.

Method 4: Sqz (Paid)

Sqz is a Mac app I built specifically for the “I have a folder of images and need them smaller in the best format” workflow. Full disclosure: I’m the developer.

What makes it different from the options above is format support. You can compress to JPEG, PNG, WebP, AVIF, and JPEG XL. Drag a folder of images in, pick your target format and quality, and it processes everything locally on your Mac. Nothing gets uploaded anywhere.

The quality slider shows real-time file size estimates, so you can find the exact tradeoff between size and quality before committing.

When Sqz Makes More Sense

If you regularly need to convert images to WebP or AVIF for web projects, the built-in tools can’t do that. ImageOptim can’t do that. sips can’t do that. You’d need to install command-line tools like cwebp or cavif via Homebrew and script the conversion yourself.

Sqz wraps all of that into a drag-and-drop interface. For a one-time batch of JPEGs, ImageOptim is probably enough. For an ongoing workflow with modern formats, a dedicated tool saves time.

Format Comparison: Which Format Should You Use?

Here’s a practical comparison for a typical photo compressed to similar visual quality:

FormatRelative SizeBrowser SupportBest For
JPEG100% (baseline)UniversalCompatibility, email, social media
WebP~65-70% of JPEG97%+ browsersWeb images (safe default in 2026)
AVIF~50-55% of JPEG93%+ browsersBest compression, web-forward projects
JPEG XL~55-60% of JPEGGrowing (Safari, partial Chrome)Future-proof, progressive loading
PNG200-500% of JPEGUniversalScreenshots, graphics with transparency

For most web projects in 2026, WebP is the safe default. Almost every browser supports it, and the size savings over JPEG are substantial.

AVIF gives the best compression but encoding is slower and browser support, while good, isn’t quite universal yet.

JPEG XL is technically impressive (progressive decode, lossless JPEG recompression) but browser support is still inconsistent. Keep an eye on it.

If I’m preparing images for a website, here’s what I do:

  1. Resize first. No point compressing a 4000px-wide image if it displays at 800px. Resize to 2x your display size (so 1600px for an 800px container, for retina).
  2. Pick WebP as your default format. It’s the best balance of compression and compatibility right now.
  3. Set quality to 80. For most photos this is visually indistinguishable from the original.
  4. Use AVIF with a JPEG fallback if you want to squeeze every byte and can handle the <picture> element in your HTML.
  5. Run the result through ImageOptim for a final lossless pass. Even compressed WebP files sometimes have room for a few more KB of savings.

Target file sizes for web: hero images under 200 KB, content images under 100 KB, thumbnails under 30 KB. These aren’t hard rules, but if your images are significantly larger, they’re slowing your site down.

The built-in tools are good enough for occasional use. If image compression is part of your regular workflow, a dedicated tool pays for itself in time saved.