We Ran 20 Images Through 6 Free Image Compressors
Every roundup of image compressors says which one is best. Almost none show the files. We put the same 20 images — photos, scans, screenshots, a logo, a gradient, a transparent PNG — through 6 free online compressors, one file at a time, each at the settings it opens with, and kept every output. Here is what came back, including where our own tool, MiniPx, did not come first.
The short version
| Tool | Files done | Median saved | Median SSIM | Median time | Where it ran |
|---|---|---|---|---|---|
| MiniPx | 20 of 20 | 85.8% smaller | 0.983 | 1.7 s | in the browser |
| Squoosh | 20 of 20 | 58.1% smaller | 0.983 | 0.5 s | in the browser |
| TinyPNG | 20 of 20 | 64.4% smaller | 0.982 | 9.8 s | uploaded to its server |
| FreeConvert | 9 of 10 | 0.2% larger | 0.998 | 7.0 s | uploaded to its server |
| imagecompressor.com | 20 of 20 | 61.5% smaller | 0.993 | 1.0 s | in the browser |
| compressjpeg.com | 13 of 13 | 48.2% smaller | 0.986 | 0.7 s | in the browser |
- Smallest file per image: MiniPx on 17, TinyPNG on 3, imagecompressor.com on 1 of the 20 files. One file was a tie — Flat logo (PNG, 4 colours), between MiniPx and imagecompressor.com — and a tie counts for each tool, so the counts add up to more than 20.
- Closest to the original (median SSIM on the like-for-like files below): FreeConvert at 0.998; furthest: MiniPx at 0.926. Size and quality pull against each other — read the two columns together.
- Uploads: TinyPNG and FreeConvert sent every file to their own servers, which matches what their own pages say. MiniPx and Squoosh did the work in the browser and kept working with the network switched off. imagecompressor.com and compressjpeg.com did not work offline; no upload of the file was seen in the request log.
- Two sites, one engine: imagecompressor.com and compressjpeg.com returned byte-identical files (the same SHA-256 checksum) on all 13 files both accepted, and their claims and terms read the same apart from the name. Read their rows as one compressor measured twice.
- Files that got bigger: Squoosh (2), FreeConvert (5). A compressor that returns a larger file than you gave it is worth knowing about.
- FreeConvert stopped us on file 10 of 20 with a daily-limit message on its free tier; per our rules we did not retry, so its rows cover the files before that.
- Defaults differ, and that is the point. Each tool was used the way a visitor meets it. MiniPx's default is “Auto”, which picked AVIF, WebP and PNG here; most of the others keep the input's format.
Like for like
Medians over each tool's own finished files hide that the tools did not all accept the same files. This table keeps only the files every tool finished, so each row is the same work.
| Tool | Files | Median saved | Median SSIM | All outputs together |
|---|---|---|---|---|
| MiniPx | 9 | 88.6% smaller | 0.926 | 2.45 MB |
| Squoosh | 9 | 59.6% smaller | 0.967 | 6.66 MB |
| TinyPNG | 9 | 68.5% smaller | 0.949 | 5.19 MB |
| FreeConvert | 9 | 0.2% larger | 0.998 | 20.2 MB |
| imagecompressor.com | 9 | 48.2% smaller | 0.970 | 9.57 MB |
| compressjpeg.com | 9 | 48.2% smaller | 0.970 | 9.57 MB |
Where MiniPx did not come first
MiniPx did not make the smallest file for 3 of the 20 images:
- Screenshot, light UI (PNG): TinyPNG made 24.0 KB against MiniPx's 57.8 KB (PNG, SSIM 1.000 against 1.000).
- Screenshot, dark code editor (PNG): TinyPNG made 21.9 KB against MiniPx's 24.7 KB (WebP, SSIM 0.997 against 1.000).
- Line graphic (chart, PNG): TinyPNG made 13.9 KB against MiniPx's 15.8 KB (PNG, SSIM 1.000 against 1.000).
On quality, MiniPx had the lowest SSIM of the tools that finished each file on 13 of the 20 files: 12 MP phone photo (cats, daylight), Portrait / headshot, Low light (street at night), Fine detail (mountain landscape), Product shot, 24 MP macro (orchid), Architecture (staircase), Animal (soft fur, shallow focus), Painting reproduction (museum scan), Scanned handwritten page, Already-compressed web JPEG (1600 px, q75), EXIF-rotated JPEG (Orientation 6) and Photo saved as PNG (1600 px). Its default trades some fidelity for size; if you need the closest copy, raise the quality slider or pick a format.
On speed, MiniPx was not the quickest: its median was 1.7 s per file, against Squoosh at 0.5 s, compressjpeg.com at 0.7 s and imagecompressor.com at 1.0 s. Its Auto default tries more than one format on each file before it picks; that costs time on every run.
One more honest caveat: MiniPx's Auto picked AVIF for 15 of the 20 files. AVIF is small and well supported by current browsers, but some upload forms — job portals, government sites, older content systems — still accept only JPEG or PNG. If yours does, choose JPEG in the format menu before you compress.
Every file, every tool
Hover or long-press a cell for the note behind it. “Not accepted” means the tool's own file picker does not take that format.
| File | MiniPx | Squoosh | TinyPNG | FreeConvert | imagecompressor.com | compressjpeg.com |
|---|---|---|---|---|---|---|
| 12 MP phone photo (cats, daylight) JPEG · 3.73 MB | 975.1 KB AVIF · 74.5% smaller SSIM 0.969 | 1.69 MB JPEG · 54.7% smaller SSIM 0.983 | 1.40 MB JPEG · 62.3% smaller SSIM 0.976 | 3.91 MB JPEG · 4.9% larger SSIM 0.998 | 2.11 MB JPEG · 43.3% smaller SSIM 0.986 | 2.11 MB JPEG · 43.3% smaller SSIM 0.986 |
| Portrait / headshot JPEG · 2.25 MB | 260.9 KB AVIF · 88.7% smaller SSIM 0.890 | 999.0 KB JPEG · 56.6% smaller SSIM 0.947 | 724.0 KB JPEG · 68.5% smaller SSIM 0.930 | 2.37 MB JPEG · 5.7% larger SSIM 0.995 | 1.31 MB JPEG · 41.7% smaller SSIM 0.956 | 1.31 MB JPEG · 41.7% smaller SSIM 0.956 |
| Low light (street at night) JPEG · 1.32 MB | 183.9 KB AVIF · 86.4% smaller SSIM 0.901 | 721.7 KB JPEG · 46.5% smaller SSIM 0.971 | 515.0 KB JPEG · 61.8% smaller SSIM 0.949 | 1.03 MB JPEG · 21.5% smaller SSIM 0.988 | 1.32 MB JPEG · 0.0% smaller SSIM 1.000 returned the file unchanged | 1.32 MB JPEG · 0.0% smaller SSIM 1.000 returned the file unchanged |
| Fine detail (mountain landscape) JPEG · 3.24 MB | 489.7 KB AVIF · 85.2% smaller SSIM 0.924 | 1,011.4 KB JPEG · 69.5% smaller SSIM 0.942 | 788.9 KB JPEG · 76.2% smaller SSIM 0.933 | 3.62 MB JPEG · 11.8% larger SSIM 0.998 | 1.41 MB JPEG · 56.3% smaller SSIM 0.950 | 1.41 MB JPEG · 56.3% smaller SSIM 0.950 |
| Product shot JPEG · 2.60 MB | 20.1 KB AVIF · 99.2% smaller SSIM 0.991 | 136.1 KB JPEG · 94.9% smaller SSIM 0.994 | 174.1 KB JPEG · 93.4% smaller SSIM 0.993 | 2.18 MB JPEG · 15.9% smaller SSIM 1.000 | 227.4 KB JPEG · 91.4% smaller SSIM 0.994 | 227.4 KB JPEG · 91.4% smaller SSIM 0.994 |
| 24 MP macro (orchid) JPEG · 1.23 MB | 143.2 KB AVIF · 88.6% smaller SSIM 0.976 | 769.9 KB JPEG · 38.7% smaller SSIM 0.984 | 449.9 KB JPEG · 64.2% smaller SSIM 0.978 | 1.23 MB JPEG · 0.4% larger SSIM 1.000 | 1.23 MB JPEG · 0.0% smaller SSIM 1.000 returned the file unchanged | 1.23 MB JPEG · 0.0% smaller SSIM 1.000 returned the file unchanged |
| Architecture (staircase) JPEG · 1.27 MB | 15.7 KB AVIF · 98.8% smaller SSIM 0.963 | 131.1 KB JPEG · 90.0% smaller SSIM 0.967 | 160.5 KB JPEG · 87.7% smaller SSIM 0.966 | 966.6 KB JPEG · 25.9% smaller SSIM 0.996 | 242.7 KB JPEG · 81.4% smaller SSIM 0.970 | 242.7 KB JPEG · 81.4% smaller SSIM 0.970 |
| Animal (soft fur, shallow focus) JPEG · 3.97 MB | 246.5 KB AVIF · 93.9% smaller SSIM 0.878 | 945.6 KB JPEG · 76.8% smaller SSIM 0.916 | 708.2 KB JPEG · 82.6% smaller SSIM 0.903 | 3.98 MB JPEG · 0.2% larger SSIM 1.000 | 1.26 MB JPEG · 68.4% smaller SSIM 0.926 | 1.26 MB JPEG · 68.4% smaller SSIM 0.926 |
| Painting reproduction (museum scan) JPEG · 934.5 KB | 171.4 KB AVIF · 81.7% smaller SSIM 0.926 | 377.8 KB JPEG · 59.6% smaller SSIM 0.956 | 353.0 KB JPEG · 62.2% smaller SSIM 0.948 | 917.3 KB JPEG · 1.8% smaller SSIM 0.999 | 483.9 KB JPEG · 48.2% smaller SSIM 0.964 | 483.9 KB JPEG · 48.2% smaller SSIM 0.964 |
| Scanned handwritten page JPEG · 2.17 MB | 336.4 KB AVIF · 84.8% smaller SSIM 0.919 | 1.04 MB JPEG · 51.8% smaller SSIM 0.965 | 943.1 KB JPEG · 57.5% smaller SSIM 0.950 | stopped | 1.50 MB JPEG · 30.6% smaller SSIM 0.982 | 1.50 MB JPEG · 30.6% smaller SSIM 0.982 |
| Scanned signature JPEG · 109.1 KB | 19.2 KB WebP · 82.4% smaller SSIM 0.993 | 29.4 KB JPEG · 73.0% smaller SSIM 0.990 | 26.1 KB JPEG · 76.1% smaller SSIM 0.986 | not run | 41.7 KB JPEG · 61.8% smaller SSIM 0.991 | 41.7 KB JPEG · 61.8% smaller SSIM 0.991 |
| Already-compressed web JPEG (1600 px, q75) JPEG · 49.8 KB | 6.23 KB AVIF · 87.5% smaller SSIM 0.992 | 33.2 KB JPEG · 33.4% smaller SSIM 0.997 | 37.5 KB JPEG · 24.7% smaller SSIM 0.997 | not run | 43.9 KB JPEG · 11.9% smaller SSIM 0.999 | 43.9 KB JPEG · 11.9% smaller SSIM 0.999 |
| EXIF-rotated JPEG (Orientation 6) JPEG · 317.5 KB | 11.9 KB AVIF · 96.3% smaller SSIM 0.991 | 74.2 KB JPEG · 76.6% smaller SSIM 0.993 | 66.4 KB JPEG · 79.1% smaller SSIM 0.992 | not run | 121.1 KB JPEG · 61.8% smaller SSIM 0.993 | 121.1 KB JPEG · 61.8% smaller SSIM 0.993 |
| Photo saved as PNG (1600 px) PNG · 3.06 MB | 47.9 KB AVIF · 98.5% smaller SSIM 0.891 | 168.7 KB JPEG · 94.6% smaller SSIM 0.923 | 998.5 KB PNG · 68.1% smaller SSIM 0.963 | not run | 946.2 KB PNG · 69.8% smaller SSIM 0.964 | not accepted |
| Screenshot, light UI (PNG) PNG · 67.9 KB | 57.8 KB PNG · 14.8% smaller SSIM 1.000 lossless: every pixel identical | 45.6 KB JPEG · 32.9% smaller SSIM 0.988 | 24.0 KB PNG · 64.6% smaller SSIM 1.000 | not run | 25.0 KB PNG · 63.1% smaller SSIM 1.000 | not accepted |
| Screenshot, dark code editor (PNG) PNG · 69.1 KB | 24.7 KB WebP · 64.2% smaller SSIM 0.997 | 34.7 KB JPEG · 49.7% smaller SSIM 0.989 | 21.9 KB PNG · 68.3% smaller SSIM 1.000 | not run | 22.6 KB PNG · 67.3% smaller SSIM 1.000 | not accepted |
| Line graphic (chart, PNG) PNG · 33.1 KB | 15.8 KB PNG · 52.3% smaller SSIM 1.000 lossless: every pixel identical | 53.9 KB JPEG · 62.8% larger SSIM 0.997 | 13.9 KB PNG · 58.0% smaller SSIM 1.000 | not run | 15.8 KB PNG · 52.3% smaller SSIM 1.000 lossless: every pixel identical | not accepted |
| Flat logo (PNG, 4 colours) PNG · 8.99 KB | 3.49 KB PNG · 61.2% smaller SSIM 1.000 lossless: every pixel identical | 18.1 KB JPEG · 101.6% larger SSIM 0.995 | 3.56 KB PNG · 60.3% smaller SSIM 1.000 lossless: every pixel identical | not run | 3.49 KB PNG · 61.2% smaller SSIM 1.000 lossless: every pixel identical | not accepted |
| Smooth gradient (PNG) PNG · 53.8 KB | 1.91 KB AVIF · 96.4% smaller SSIM 0.998 | 10.6 KB JPEG · 80.3% smaller SSIM 0.998 | 53.8 KB PNG · 0.0% smaller SSIM 1.000 returned the file unchanged | not run | 18.0 KB PNG · 66.6% smaller SSIM 0.994 | not accepted |
| PNG with transparency (soft shadow) PNG · 60.5 KB | 10.3 KB AVIF · 83.0% smaller SSIM 0.998 | 20.4 KB JPEG · 66.3% smaller SSIM 0.274 transparency removed | 23.1 KB PNG · 61.9% smaller SSIM 0.993 | not run | 20.9 KB PNG · 65.5% smaller SSIM 0.999 | not accepted |
Where each tool ran, in its own words
We quote each tool on where your file goes, then say what we saw, from three kinds of evidence: whether each compressed file came back from the tool's own server or was made in the page; a log of every request the page sent after it was given a file; and, for tools that say they work in the browser, a run with the network switched off. One caveat we found on the way: the browser reports an uploaded file's body as empty to automation, so a quiet request-size counter proves nothing — the request itself, a binary post to the tool's server, is what gives an upload away.
- MiniPx says: “Your image files never leave your browser.” (source). We saw: in the browser — it still compressed 2 files with the network switched off; every output was made in the page. Free tier: 5 files per batch on the free tier; no daily cap. Account: none. Watermark: none on compression output. Terms checked: minipx.com/terms/.
- Squoosh says: “Squoosh does not send your image to a server. All image compression processes locally.” (source). We saw: in the browser — it still compressed 2 files with the network switched off; every output was made in the page. Free tier: one image at a time. Account: none. Watermark: none. Terms checked: github.com/GoogleChromeLabs/squoosh/blob/dev/LICENSE.
- TinyPNG says: “Images uploaded to the Service are temporarily stored, optimized and deleted within 48 hours.” (source). We saw: uploaded to its server — 20 of its outputs were downloaded from its own server; the request log shows the file being posted to it. Free tier: “Free users have the flexibility to upload up to 20 images at once, each with a maximum size of 5MB.”. Account: none for the free web tool. Watermark: none. Terms checked: tinify.com/terms.
- FreeConvert says: “Files uploaded to FreeConvert are automatically and permanently deleted after 8 hours.” (source). We saw: uploaded to its server — 9 of its outputs were downloaded from its own server. Free tier: “Max file size 1GB.”. Account: none. Watermark: none. Terms checked: www.freeconvert.com/terms.
- imagecompressor.com says: “Your files never leave your device. All processing is performed locally in your browser using WebAssembly. No server-side processing is involved.” (source). We saw: in the browser — it did not work with the network switched off (0 of 2 tries); the request log showed no file sent on 2 checked runs; every output was made in the page. Free tier: “No registration required, no daily limits, no watermarks.”. Account: none. Watermark: none. Terms checked: imagecompressor.com/terms.
- compressjpeg.com says: “Your files never leave your device. All processing is performed locally in your browser using WebAssembly. No server-side processing is involved.” (source). We saw: in the browser — it did not work with the network switched off (0 of 2 tries); the request log showed no file sent on 2 checked runs; every output was made in the page. Free tier: JPEG input only (its file input accepts .jpg and .jpeg). Account: none. Watermark: none. Terms checked: compressjpeg.com/terms.
Method
Files. 11 photographs and scans from Wikimedia Commons, each released under CC0 or in the public domain;3 files our script made from them (a web-sized re-save, a phone-style rotated JPEG, a PNG save of a photo); and 6 drawn by the script (two screenshots, a chart, a flat logo, a gradient, a transparent badge), which we release as CC0 with the data. Every file is pinned by its SHA-256 checksum.
| File | Size | Origin | Licence |
|---|---|---|---|
| 12 MP phone photo (cats, daylight) | 4032 × 3024 · JPEG · 3.73 MB | Eruditus capra | CC0 |
| Portrait / headshot | 3264 × 4653 · JPEG · 2.25 MB | Halfsquareprints | CC0 |
| Low light (street at night) | 3264 × 2448 · JPEG · 1.32 MB | Daquella manera | CC0 |
| Fine detail (mountain landscape) | 3904 × 2604 · JPEG · 3.24 MB | Marco Bonomo | CC0 |
| Product shot | 4419 × 2946 · JPEG · 2.60 MB | W.carter | CC0 |
| 24 MP macro (orchid) | 4000 × 6000 · JPEG · 1.23 MB | Cyrill | CC0 |
| Architecture (staircase) | 3840 × 2160 · JPEG · 1.27 MB | Bart Lumber | CC0 |
| Animal (soft fur, shallow focus) | 4752 × 3168 · JPEG · 3.97 MB | 3dman_eu, dibatian | CC0 |
| Painting reproduction (museum scan) | 2471 × 1989 · JPEG · 934.5 KB | John Frederick Kensett (The Met, Open Access) | CC0 |
| Scanned handwritten page | 3349 × 4281 · JPEG · 2.17 MB | Elizabeth Polwhele, manuscript | CC0 |
| Scanned signature | 2041 × 617 · JPEG · 109.1 KB | scan by Dmitry Makeev | Public domain |
| Already-compressed web JPEG (1600 px, q75) | 1600 × 900 · JPEG · 49.8 KB | Made by our script from the architecture (staircase) file | CC0 |
| EXIF-rotated JPEG (Orientation 6) | 2000 × 3000 · JPEG · 317.5 KB | Made by our script from the product shot file | CC0 |
| Photo saved as PNG (1600 px) | 1600 × 1200 · PNG · 3.06 MB | Made by our script from the low light (street at night) file | CC0 |
| Screenshot, light UI (PNG) | 1440 × 900 · PNG · 67.9 KB | Drawn by our script | CC0 |
| Screenshot, dark code editor (PNG) | 1440 × 900 · PNG · 69.1 KB | Drawn by our script | CC0 |
| Line graphic (chart, PNG) | 1600 × 1000 · PNG · 33.1 KB | Drawn by our script | CC0 |
| Flat logo (PNG, 4 colours) | 1024 × 1024 · PNG · 8.99 KB | Drawn by our script | CC0 |
| Smooth gradient (PNG) | 1920 × 1080 · PNG · 53.8 KB | Drawn by our script | CC0 |
| PNG with transparency (soft shadow) | 1200 × 1200 · PNG · 60.5 KB | Drawn by our script | CC0 |
Runs. Measured on 2026-10-06 in desktop Chromium, one file at a time, a fresh page per file, at least12 seconds between steps, one run per file per tool, default settings, no account. A captcha or limit page would have ended that tool's run and been recorded as the result. MiniPx was run from a local copy of the same build, so the test created no visits or usage records on minipx.com.
Quality. SSIM is the structural similarity index of Wang, Bovik, Sheikh and Simoncelli (2004), computed on brightness with scikit-image; PSNR is in the data file. Both compare each output with the original as you would see it: rotation from the camera tag applied, transparency laid over white. A tool that returned a sideways image would get no score and a note, not a quiet correction.
Time. From the moment the tool starts work to a download being ready, excluding the page load. One run on one laptop and one home connection: good for “seconds or minutes”, not for ranking tools a few tenths apart. Server tools include the upload and the download in their time.
Sizes are shown the way MiniPx shows them (1024-byte kilobytes, three significant figures). The data file has exact byte counts.
Who was left out, and why. We read every tool's terms before running it and ran only tools whose terms do not forbid automated use or publishing results.
- iLoveIMG: Its terms bar reverse engineering “including, but not limited to, monitoring or tracking inputs and outputs flowing through a system or application” and extracting data “for data mining purposes” without written permission. Measuring inputs against outputs is close enough to that wording that we did not run it. (terms)
- 11zon: Its terms say “You agree not to reproduce, duplicate, copy, modify, stream, sell, resell or exploit any part of the Service, use of the Service or access to the Service and Content.” Publishing measurements of the service on a competing site could be read as exploiting its use, so we did not run it. (terms)
- Compressor.io: Answered HTTP 403 to plain requests on 2026-10-06, so its terms could not be read; not run.
- Optimizilla: Not counted separately: Optimizilla's compressor now runs at imagecompressor.com, which is measured above (our own earlier comparison page already linked there as Optimizilla's home). optimizilla.com itself did not answer (connection timed out) on 2026-10-06.
Data. Download the full data (JSON) — every input with its source, licence and checksum, every output with its size, format, dimensions, SSIM, PSNR, time and upload record. The drivers, the corpus builder and the scoring script live in the MiniPx repository under scripts/bench/benchmark-2026-10/. Third-party tools change without notice; a re-run is a new study with a new date.
If you only need one thing from this: MiniPx compresses in your browser and never uploads the file, and its Auto default favours small files. If a form demands JPEG, or you want the closest copy, change the format or the quality first. The roundup of free compressors covers the desktop tools this test did not.
Frequently asked questions
Related tools
More from the blog
Compress, convert, and resize images in your browser. Nothing gets uploaded.
Open MiniPx →