images
Free Image Compressors That Never Upload Your Files (and How to Tell)
TinyPNG, iLoveIMG and Compressor.io upload your images. Squoosh, ImageOptim and our tools don't. Free limits checked October 2026, plus a 2-minute test.
Most “free image compressor” pages look the same: a big drop zone, a progress bar, a download button. The difference you can’t see is where the work happens. Some tools send your file to a server and send back a smaller one; others never let the file leave your browser, and you can check which kind you’re using in about two minutes. This post sorts the popular options into three groups, gives the free limits as each vendor states them, and then walks through the test.
Every limit below was read on the vendor’s own page on 2026-10-16, unless a different date is given. Free tiers change, so treat these as a snapshot.
Group 1: upload-based, with free-tier limits
These are good tools. They just work on a server, so your image is uploaded, processed, and held there long enough for you to download the result.
| Tool | Free limit (vendor’s wording) | Formats | What happens to the file |
|---|---|---|---|
| TinyPNG (web) | “up to 20 images at once, each with a maximum size of 5MB” | JPEG XL, AVIF, WebP, JPG, PNG, APNG | Uploaded to their servers for compression |
| TinyPNG (API) | “500 Free compressions each month” | Same | Uploaded through the API |
| iLoveIMG | Pricing table: 200 MB per compress task, with a count of 30 on free vs 120 on premium (most likely files per task; the table doesn’t label it) | JPG, PNG, GIF, others | FAQ: “We just keep the files in our servers to allow you download your edited images. After, your files are completely deleted from our system.” No time period given |
| Compressor.io | 10 MB max file, 50 compressions per day | JPG, PNG, GIF, SVG, WebP | FAQ: “Every image uploaded on compressor.io’s servers is automatically deleted after being compressed.” |
A note on Compressor.io: its live site returned HTTP 403 to our checks, so those figures come from Wayback Machine snapshots of its homepage (2026-10-15) and pricing page (2026-07-30).
TinyPNG’s free tier is generous for a handful of images and its PNG quantization is excellent. The 5 MB cap is the one most people hit first, since a single photo from a current phone can be bigger than that. It also limits free conversion to 3 images, which is separate from compression.
None of this makes these tools unsafe. Deleting files after processing is a reasonable policy. But a policy is a promise, and you can’t audit it from your side. For a client’s unreleased product shots, a scan of an ID, or anything under an NDA, “we delete it afterwards” is a weaker guarantee than “it was never sent.”
Group 2: genuinely client-side
These run the encoder in your browser. The page loads once, then your file is read from disk into memory and compressed locally.
Squoosh (squoosh.app, by Google Chrome Labs) is the best-known one, and it deserves its reputation. Its README is direct about it: “Squoosh does not send your image to a server. All image compression processes locally.” It compiles real codecs to WebAssembly: the repo’s codecs folder has MozJPEG, WebP, AVIF, JPEG XL, OxiPNG and imagequant, among others. It also has the side-by-side slider that makes quality tuning easy. One honest footnote from the same README: it uses Google Analytics and records “the before and after image size value.” Sizes, not pixels. If you want the most codec control on a single image, Squoosh is a great pick.
Our tools also run entirely in the browser. They’re simpler than Squoosh, and here’s exactly what they do:
- Image Compressor re-encodes one image to WebP or JPEG with a 1 to 100% quality slider, then shows the original size, new size, and percentage saved, with a before/after preview.
- Bulk Image Processor takes many files at once, outputs PNG, JPEG or WebP at a chosen quality, and can cap the width or height while it’s at it. It reports total savings across the batch. The quality slider only affects JPEG and WebP; the browser ignores it for PNG, which is lossless.
- Image Format Converter converts to PNG, JPEG or WebP and accepts HEIC from iPhones (background in HEIC vs JPG).
- Image Resizer changes dimensions, often the biggest saving of all (a 4000 px photo shown at 1200 px is mostly wasted bytes).
- PDF Compressor has a lossless mode (strips metadata and re-saves the structure; savings are a few percent at most, sometimes none) and a strong mode that turns each page into a JPEG at 40 to 90% quality. Strong mode makes text unselectable, and the tool warns you about that before you run it.
- EXIF Remover strips metadata from JPEG, PNG and WebP without re-encoding the pixels, so there’s no quality loss at all.
What they don’t do, so you can pick the right tool: our image tools use the browser’s built-in encoder (canvas toBlob), not WASM codecs. That means no AVIF output and no MozJPEG-style tuning. And Safari can’t encode WebP from a canvas at all. As of 2026-10-16, caniuse lists no Safari version, desktop or iOS, as supported. When a browser can’t make the requested format, toBlob quietly returns PNG instead (MDN), so in Safari our tools warn you and save the file as .png, which is usually bigger. On a Mac or iPhone in Safari, choose JPEG, or use Chrome or Firefox for WebP. A side effect worth knowing: re-encoding through a canvas drops EXIF, so the compressor’s output carries no GPS tags either. More on that in does your photo leak your location.
Like Squoosh, our pages load Google Analytics for page views and clicks. No request includes your image.
Group 3: desktop apps
If you compress images every day, a desktop app avoids the browser entirely.
- ImageOptim (Mac) is “free, open-source software under terms of the GPL v2 or later,” bundling MozJPEG, pngquant, Pngcrush, Zopfli, SVGO and others behind one drag-and-drop window. By default it’s lossless (“exactly preserves image quality”); lossy mode is a preference you turn on. It strips EXIF, including GPS and camera serial numbers, unless you uncheck “Strip JPEG metadata.”
- Command-line encoders like
cwebp,avifencandoxipngdo the same jobs in scripts and CI. Output is identical every time, which matters for build pipelines.
Desktop tools are local by definition. The trade-off is installing something, which isn’t always possible on a work laptop.
How to tell if a compressor uploads your file
Don’t take any site’s word for it, including ours. These checks take a couple of minutes.
1. Watch the Network tab. Open DevTools (F12, or Cmd+Option+I on a Mac), go to Network, and clear the list. Now drop an image in and compress it. An upload-based tool shows a POST or PUT request when you drop or compress. A client-side tool shows nothing new, or only small analytics pings.
2. Check the request size. Small requests can still be noise. Add the Size column (or sort by it) and compare it with your file. If a 3.2 MB photo produces a request around 3.2 MB, the photo was uploaded. Analytics beacons are a few hundred bytes to a few KB.
3. Try airplane mode. Load the page fully, then cut the network (Wi-Fi off, or DevTools Network set to Offline). Compress an image. A client-side tool still works. An upload tool fails or hangs. One caveat: a tool that loads its encoder lazily (WASM, HEIC decoding) may need one online run first so the code is cached.
4. Read the privacy wording carefully. “Files are deleted after one hour” means the file was uploaded. “Processed securely” means very little. Look for a plain statement like Squoosh’s “does not send your image to a server.” Then verify it with steps 1 to 3, because the wording only tells you what they claim.
Which format, and which quality setting
Format choice is a post of its own: see PNG vs JPG vs WebP vs AVIF. The short version: photos go lossy (JPEG, WebP or AVIF), screenshots and logos go lossless (PNG or lossless WebP).
For quality numbers, a useful anchor is Squoosh’s defaults: 75 for MozJPEG and WebP, 50 for AVIF (AVIF’s scale is different, so the numbers don’t compare directly). In practice:
| Content | Start at | Then |
|---|---|---|
| Photos (JPEG or WebP) | 75 to 85 | Zoom to 100% on a busy area (hair, foliage, sky gradients). If you can’t see blocks or banding, go lower in steps of 5 |
| Screenshots, UI, text | Lossless PNG or WebP | Lossy settings smear text edges. Use PNG quantization (TinyPNG, Squoosh’s imagequant, ImageOptim) instead of a quality slider |
| Logos, flat graphics | Lossless, or SVG if you have it | Small palettes compress very well losslessly |
“Visually lossless” depends on the image, so there’s no single magic number. Check one image side by side, settle on a setting, then apply it to the rest. Resize first, too: dropping a 4000 px photo to 1600 px often saves more than any quality change.
For a quick photo job that never leaves your machine, drop the files into the Bulk Image Processor, set a max width and quality 80, and compare the total before and after.