Compress JPG
MozJPEG, running on your own processor.
Nothing is uploaded
Drop files here, or click to choose
Accepts JPG, JPEG. No size limit, no sign-up.
Reduce the size of a JPG without sending it anywhere. The encoder here is MozJPEG, the same one used by the tools professional teams reach for, compiled to WebAssembly and running inside this tab.
Recompressing a JPG is a second loss
This is the fact that separates compressing a JPG from compressing anything else. Your file has already been through lossy compression once. Decoding and re-encoding it does not go back to the original image — it compresses an already-degraded copy, and the damage accumulates.
The practical rule is to do it once, at the lowest quality you can accept, rather than repeatedly nudging the slider down. Two passes at quality 80 look worse than one pass at 70 and usually save less space.
A real size cliff at quality 90
JPEG stores brightness and colour separately, and it normally stores colour at half resolution — a trick called chroma subsampling that works because human vision is far more sensitive to brightness detail than colour detail. Above a certain quality, encoders switch to storing colour at full resolution, and the file jumps.
We measured exactly where. On a 1600×1000 photograph the output goes 61 KB at quality 70, 72 KB at 75, 82 KB at 79 — then jumps to 114 KB the moment quality reaches 80 with automatic subsampling left on. Forcing half-resolution colour at that same setting gives 88 KB instead.
Because a 39% size jump for one notch of the slider is not something a user can reasonably predict, we hold colour at half resolution up to quality 89 and only allow full-resolution colour from 90 upwards, where you have clearly asked for maximum fidelity. The table below reflects that behaviour.
Choosing a number
For photographs on a website or sent through a chat app, 70 to 80 holds up almost always. The default here is 75. For print or further editing, use 90 or above and accept the larger file. Below roughly 60, smooth areas such as sky and skin start to show blocking.
If the image is a screenshot, a diagram or contains text, JPEG is the wrong format entirely — it produces visible ringing around hard edges no matter how high you set the quality. Those belong in PNG or WebP.
Why there are no limits here
The well-known compression sites upload your file, process it on their hardware and send it back. Server time costs money, so the free tier gets rationed — one popular service caps free web uploads at 15 MB per file, another allows two tasks per hour and watermarks anything beyond that.
Nothing is uploaded here, so nothing needs rationing. No size cap, no quota, no watermark, no account. Open DevTools, watch the Network tab, and compress something.
Measured: photograph, 1600×1000
Continuous tone with no hard edges — the content JPEG was designed for.
| Quality | JPEG | WebP | WebP vs JPEG |
|---|---|---|---|
| 40 | 33.7 KB | 27.6 KB | -18% |
| 50 | 40.9 KB | 31.7 KB | -23% |
| 60 | 48.9 KB | 35.7 KB | -27% |
| 70 | 61.3 KB | 41.6 KB | -32% |
| 75 | 72.0 KB | 44.3 KB | -38% |
| 80 | 88.2 KB | 55.0 KB | -38% |
| 85 | 106.8 KB | 70.8 KB | -34% |
| 90 | 252.1 KB | 103.8 KB | -59% |
| 95 | 372.9 KB | 172.3 KB | -54% |
| Source PNG | 1153.7 KB | ||
| Optimised PNG (lossless) | 848.6 KB | ||
Measured in Chromium with the same WebAssembly encoders this site ships. Your results will differ with your own images — the point is the shape of the curve, not the exact bytes. Measured: 2026-08-08
Frequently asked questions
Does compressing the same file twice halve it again?
No, and it degrades the image. Each pass permanently discards detail from an already-lossy file. Compress once at the lowest quality you can accept.
Why does the file jump in size at quality 90?
Because the encoder switches from storing colour at half resolution to full resolution. We hold that switch until 90 so the slider behaves predictably below it.
What quality should I use?
70 to 80 for web and messaging, 90 or above for print or further editing. Below about 60 you will see blocking in sky and skin tones.
Can I compress a screenshot with this?
You can, but you should not. JPEG produces visible ringing around text and sharp edges. Use PNG or WebP for screenshots instead.
Is my file uploaded?
No. MozJPEG runs as WebAssembly inside your browser tab. You can verify it in the DevTools Network tab.
Other tools
- JPG to PDFPhotos in, one PDF out — without uploading anything.
- PDF to JPGEvery page becomes an image, at the resolution you pick.
- PDF to PNGLossless pages, transparency kept.
- Merge PDFSeveral documents in, one document out.
- Split PDFOne file per page, without handing the document over.
- HEIC to JPGYour photos never leave your device.
- Compress ImageSmaller files, without handing them over.
- WebP to JPGFor every program that still refuses to open .webp.
- PNG to JPGMuch smaller files — when the image is a photograph.
- JPG to PNGLossless from here on — but read this first.
- HEIC to PNGWhen you need transparency or a lossless copy.
- JPG to WebPMeaningfully smaller at the same quality setting.
- PNG to WebPThe only common target that keeps transparency and gets small.
- WebP to PNGFor transparency plus software that will not open .webp.
- AVIF to JPGThe newest format, converted to the one everything reads.
- AVIF to PNGWhen the AVIF has transparency you cannot afford to lose.
- GIF to PNGOut of 256 colours and 1-bit transparency.
- BMP to JPGBMP stores every pixel raw. The savings are enormous.
- SVG to PNGVector to pixels — a one-way trip, so choose the size well.
- Compress PNGGenuinely lossless. Not a palette reduction in disguise.
- Compress WebPAlready the efficient format — squeeze it further.
- QR Code GeneratorStatic codes. No redirect, no tracking, no expiry.
- Word CounterCounts CJK properly. Your text never leaves the page.
- PNG to SVGReal paths you can edit — not a bitmap hidden inside an .svg file.
- What Is My IP AddressEverything on one page. We do not log any of it.
- Internet Speed TestFour numbers, measured honestly, with the method shown.