Squish

JPG to WebP.
Same photo, fewer bytes.

Photographs typically land 25-35% smaller than the JPEG at matching quality - drop one or a few hundred and check every result before it ships.

Processed in memory - never stored.

Why WebP wins on photographs

JPEG and WebP work the same way in outline: split the image into blocks, transform them, throw away detail the eye is bad at noticing. WebP just does the guessing part better - stronger prediction between blocks and tighter entropy coding - so the same perceived quality fits into roughly a quarter to a third fewer bytes. Photos are where that pays off most: continuous tone, no hard vector edges, nothing that needs pixel-exact reproduction.

On a page, the saving usually shows up in the metric you care about. Hero shots and product photos are almost always the largest resource on a page, which makes them the thing Largest Contentful Paint is waiting on. Cutting a 480 KB hero to 320 KB moves that number in a way another round of minified CSS never will.

Converting a whole photo library

Drop the entire folder at once. Each image converts in parallel and lands in the grid with its old and new size side by side, so you can see which files actually moved. Set an optional max width if your originals are 6000px straight off a camera and the layout only ever shows 1600. Rename on export with {name}-{index} tokens, save the whole configuration as a preset for next time, and take the lot as a zip. The bulk image compressor page goes deeper on the batch workflow.

Before you ship, open any image in the compare slider. Drag across the seam, zoom into the skin tones, gradients and fine texture where lossy encoders give themselves away, and if one photo needs more care than the rest, override its quality without touching the batch.

Common questions

How much smaller will my JPGs really get?
25-35% is the honest typical range for a normal-quality photo. A JPG that has already been squeezed hard has little left to give, and converting it at a high quality setting can even come out bigger - the encoder is faithfully preserving compression artifacts. Squish shows you the delta per image, so you can spot that case immediately. Re-encoding also can't recover detail the original JPEG already discarded.
Can I make every photo fit a performance budget?
Yes. Target size mode binary-searches the quality setting per image until it lands under your KB limit, so a simple photo keeps high quality while a busy one gets compressed harder to fit the same ceiling. Pick your own number or start from the 100 KB default.
Is WebP safe to serve now?
Every current major browser supports it, including Safari since version 14. If you still need a JPG fallback for very old clients, keep both copies and let a picture element choose.
What about logos and screenshots?
Different job. JPG has no transparency, so nothing is at risk here, but flat graphics with hard edges and text are better served by lossless handling. See compress PNG for those, or the WebP compressor if you want everything, photos and graphics alike, ending up as WebP.
What happens to my photos?
They are processed in memory and never stored on a server - nothing is retained once the converted file comes back. Free, no signup, no watermark.