JPG Compressor — Compress JPG Online (Free)

Reduce JPG / JPEG file size in your browser. Drag and drop, choose quality, see the before/after sizes. The file never leaves your device.

75%
1920px
100% private — processed in your browser. No upload, no server.

Why compress JPG?

Image weight is the biggest single contributor to slow page loads. A modern phone shoots 4–8 MB photos out of the box, and even a single such image embedded in a web page delays Largest Contentful Paint significantly. Google's Core Web Vitals — the speed signals that affect search ranking — punish heavy images directly. Compressing JPGs to 100–400 KB instead of multi-MB pays off twice: pages load faster for users, and search engines reward you for it.

Even outside the web, smaller JPGs matter. Email attachments under 25 MB total are a soft rule for most providers. Disk space on phones, on iCloud, on Google Drive — every byte counts. A single compress-and-replace pass typically cuts a photo library's footprint by 70–85% with no visible loss.

How JPG compression works

JPG is a "lossy" format — it intentionally discards data the human eye is least likely to notice in exchange for dramatic file-size reductions. The encoder splits the image into 8×8 pixel blocks, transforms each block into frequency components using a Discrete Cosine Transform, then aggressively quantises the high-frequency components (the fine details we don't notice much) while preserving the low-frequency ones (the broad shapes and tones we do notice).

The "quality" setting controls how aggressively the high-frequency components are discarded. Lower quality = more discarded = smaller file = more visible artefacts at extreme settings. Higher quality = less discarded = larger file = more faithful to the original. There's a sweet spot for every image, typically between 70–85, where the file is dramatically smaller and you'd struggle to tell the result apart from the original.

Quality settings — what each range gives you

Bonus: resize + compress for maximum savings

If your source JPG is much larger than its display size, the single biggest size win is resizing — not compressing. A 4000-pixel-wide phone photo displayed at 800 px wide is carrying ~25× more data than necessary. Untick "Keep original dimensions" and pull the max-width slider to your display size; the compressed output will be a fraction of the source's weight without any visible quality loss at the intended size.

A common recipe for hero web images: max width 1920, quality 80. Result is usually 150–300 KB from a 4 MB source.

How this compressor works

Your JPG is decoded into a hidden canvas, optionally resized, then re-encoded as JPG at your chosen quality. The whole pipeline runs in your browser using canvas.toBlob('image/jpeg', quality). Nothing is uploaded. The encoder is the same one your browser uses everywhere else; output quality matches what you'd see in Squoosh or any other browser-based tool.

Tips and best practice

JPG compression FAQs

Does this strip EXIF / GPS data?

Yes. The Canvas API drops all metadata when re-encoding — a privacy plus.

Is anything uploaded?

No. Everything runs in your browser.

Why is my compressed JPG bigger than the original?

Either you've increased the quality beyond what the source had, or you're enlarging instead of shrinking. Drop quality to 75 and keep dimensions to see typical savings.

Can I compress many JPGs at once?

Not yet — one file at a time.

What's the maximum file size?

Soft 50 MB. Real limit is browser memory.

Will this hurt the original image?

No — the source on your disk is untouched. The tool produces a new file.

Related JPG tools