Bar chart comparing original and WebP file sizes across a test set of images

Original Data

We Converted 15 Real Images to WebP: Here’s What Actually Got Smaller

By Published Updated 11 min read

We stopped quoting the “25–34% smaller” averages and ran our own test: 15 real photos, screenshots, and logos through WebP at quality 80. The median file shrank 63%, the set went from 6.1 MB to 1.5 MB, and one image got bigger. Here are all the numbers.

Every WebP guide repeats the same line: “WebP images are about 25–34% smaller than JPEG.” That figure comes from a Google study, and it is fine as far as it goes — but it is an average from one curated test set, and it never told us what this converter does to real files. So we stopped quoting it and ran our own test.

We took 15 images we actually had on hand — photographs, screenshots, and logos — pushed each one through the same WebP encoder our converter uses, and weighed every byte before and after. The short version: the median file shrank by 63%, the whole set went from 6.1 MB to 1.5 MB, and pushing one file to quality 100 made it bigger than the JPEG it started as. The averages you read elsewhere hide a lot, and the spread is the interesting part.

How we tested

The method is deliberately boring, because boring is what makes it repeatable.

  • The images. Ten photographs saved at a web-typical 1600 px wide, two of those same photos re-exported as PNG (the mistake we see constantly), and three project logos with transparency. A deliberate mix, not a cherry-picked one.
  • The encoder. libwebp — the same library behind WebP conversion in Chrome — at quality 80. No resizing; each image was converted at its original dimensions, exactly like dropping it into the tool with resize left off.
  • The measurement. Raw file size on disk, before and after. “Saved” is simply (original − webp) ÷ original.
  • What we did not do. No perceptual quality scoring (SSIM/Butteraugli), no per-image quality tuning, no stripping of metadata beyond what the encoder does by default. Adding any of those would improve the results and make them less representative of what people actually do.

One caveat up front: a browser's WebP encoder and a server's can differ by a percent or two on any single file, and your source quality matters enormously — a JPEG already crushed to quality 60 has far less left to give. Treat these as a realistic guide, not a guarantee.

The full results table

Sorted by image type, then by how much each one shrank. Nothing left out — including the photo that barely moved.

File size before and after WebP conversion at quality 80 for 15 test images
ImageTypeOriginalWebP q80Saved
Photo exported as PNG #1PNG photo1,294.6 KB74.8 KB94%
Photo exported as PNG #2PNG photo2,195.1 KB169.1 KB92%
JavaScript logoLogo (PNG)10.1 KB2.1 KB79%
PHP logo (transparent)Logo (PNG)23.8 KB7.5 KB69%
React logo (transparent)Logo (PNG)40.5 KB14.3 KB65%
Analytics dashboardPhoto (JPEG)206.8 KB66.2 KB68%
City lights at duskPhoto (JPEG)160.3 KB57.9 KB64%
Product website mockupPhoto (JPEG)201.9 KB74.8 KB63%
Code on a dark screenPhoto (JPEG)347.3 KB142.7 KB59%
Retro gaming, neonPhoto (JPEG)206.0 KB86.3 KB58%
Editor / code closeupPhoto (JPEG)209.2 KB93.2 KB55%
Circuit board macroPhoto (JPEG)325.5 KB153.1 KB53%
Camera on a deskPhoto (JPEG)350.1 KB169.1 KB52%
Team at a deskPhoto (JPEG)309.6 KB160.4 KB48%
Data-centre serversPhoto (JPEG)341.9 KB222.4 KB35%
All 15 combined6,222.6 KB1,494.0 KB76%

Median 63% • mean 64% • range 35–94% • 15 of 15 images got smaller. All conversions at quality 80, original dimensions.

Savings by image type

Aggregating the same data by category makes the pattern much easier to act on. If you only have time to fix one class of image on your site, this table tells you which.

Median and range of WebP savings grouped by source image type
Source typeCountMedian savingRangePriority
Photograph saved as PNG293%92–94%Fix first — enormous, easy win
Logo / graphic with alpha369%65–79%High — transparency survives intact
Photograph already JPEG1058%35–68%High — usually the bulk of page weight
High-noise photograph~35%worst case aboveModerate — still worth doing

What the spread tells you

Photos saved as PNG are the easy money

The two biggest wins, by a mile, were ordinary photographs that someone had exported as PNG. A 2.1 MB PNG collapsed to 169 KB — a 92% cut — and the visual difference is invisible at normal viewing size. PNG is a lossless format built for graphics with sharp edges and flat colour; forcing a million-colour photograph through it produces an enormous file that buys you nothing. If you remember one thing from this test: never ship a photograph as a PNG. The compression fundamentals guide explains exactly why the mismatch is so costly.

Already-JPEG photos still gave up half their weight

This is the case people doubt: “my images are already JPEGs, what's left to squeeze?” Quite a lot. The ten JPEG photos shrank a median of 58%, roughly double the headline number usually quoted for WebP.

The variation is the honest bit. The flat analytics dashboard, with its big blocks of solid colour, gave back 68%. The noisy, high-detail data-centre shot — thousands of cables and blinking lights, the kind of texture compressors hate — managed only 35%. Detail and noise are the enemy of compression, in any format. If a particular image refuses to shrink, look at how much fine random texture it contains before you blame the encoder.

Logos with transparency convert cleanly

All three logos kept their transparent backgrounds and still dropped 65–79%. That matters because the usual reason people stay on PNG for logos is the alpha channel — and WebP carries it across without complaint.

One nuance worth knowing: for very simple flat-colour logos, lossless WebP can sometimes beat the lossy quality-80 result. Our browser tool uses lossy mode, which is the right default for the photos that make up most of a page's weight, but it is worth testing both on a pure-vector-style logo — or shipping it as SVG and skipping the raster question entirely.

The one that got bigger: why quality 100 backfires

We kept pushing one photo — the 350 KB camera shot — up and down the quality slider to find where the trade lives. The top end surprised even us.

The same JPEG re-encoded to WebP at six quality settings
Quality settingWebP sizevs. the 350 KB JPEG
100608.6 KB74% larger
90318.2 KB9% smaller
80 (default)169.1 KB52% smaller
75130.5 KB63% smaller
6097.5 KB72% smaller
4067.9 KB81% smaller

At quality 100 WebP tries to preserve every last artifact already baked into the JPEG — including the JPEG's own compression noise — and the file balloons to nearly double the original. This is exactly the trap the converter warns you about when a result comes out larger. We took this further in a dedicated quality ladder test across four image types.

The practical rule

Start at quality 80. If the converter tells you the WebP came out larger than your source, the original is already heavily compressed — drop to 70 or 60 and convert again. If you find yourself reaching for 100, you have left the zone where WebP helps.

What this means for LCP

On most content pages the Largest Contentful Paint element is an image, and image weight is the most direct lever on how fast it appears. Take the camera shot: as a 350 KB JPEG on a mid-range mobile connection it is a noticeable wait; at 169 KB it arrives in roughly half the time.

Multiply that across a gallery or a long article and you are shaving whole seconds off the load — the kind of change that moves a “needs improvement” LCP into the green. Smaller files are not an abstract nicety; they are the most direct fix for the Core Web Vital that fails most often.

Two caveats keep this honest. Conversion alone will not save you if the image is lazy-loaded, four times larger than its display slot, or sitting behind a slow server. And a 76% byte reduction is not a 76% LCP reduction — connection setup, server response and render time do not shrink with the file.

Reproduce this yourself

You do not have to take our word for any of it. With cwebp from Google's libwebp installed, this reproduces our exact method on your own folder of images:

#!/usr/bin/env bash
# Convert every image in ./src at quality 80 and print the saving per file.
mkdir -p out
total_in=0; total_out=0

for f in src/*.{jpg,jpeg,png}; do
  [ -e "$f" ] || continue
  name=$(basename "${f%.*}")
  cwebp -q 80 -quiet "$f" -o "out/$name.webp"

  in=$(wc -c < "$f")
  out=$(wc -c < "out/$name.webp")
  pct=$(( (in - out) * 100 / in ))

  printf '%-34s %8d B -> %8d B  %3d%%\n' "$name" "$in" "$out" "$pct"
  total_in=$(( total_in + in ))
  total_out=$(( total_out + out ))
done

printf '\nTOTAL %d B -> %d B (%d%% saved)\n' \
  "$total_in" "$total_out" "$(( (total_in - total_out) * 100 / total_in ))"

For a single file, the converter on our home page gives you the same measurement with no install — and the Compare button lets you check that the saving did not cost visible quality.

The honest caveats

Fifteen images is a sample, not a census. The numbers would shift with a different set — more flat illustrations would push the median up, more grainy night photography would push it down. We also measured bytes only: we did not score perceptual quality, so “63% smaller” is a claim about file size, not a claim that every image is visually identical (though at quality 80, on this set, none showed damage we could see at normal viewing size).

The takeaways hold regardless: WebP at quality 80 reliably beats both JPEG and PNG for photographic content, the biggest wins are hiding in mis-saved PNGs, and cranking quality to the maximum is counter-productive. But for the exact saving on the exact file you care about, there is no substitute for converting it and reading the number off the panel.

See the number for your own images

Drop a batch into the converter and it shows the original size, the WebP size, and exactly how much you saved on each file — the same measurement we used for this test. No upload, no guessing.

Convert your images

Frequently asked questions

Why is your median saving so much higher than the 25–34% Google quotes?
Google's figure compares WebP against JPEGs already encoded at a comparable quality target, on a controlled corpus. Real-world images are rarely that tidy: they are exported at high quality from design tools, occasionally saved as PNG by mistake, and almost never tuned. Our set reflects what sites actually ship, so there is more slack to take up. Both numbers are true about different things.
Does the browser converter give the same results as this test?
Within a couple of percent, yes. This test used libwebp at quality 80; the browser tool calls your browser's own WebP encoder, which is libwebp in Chrome and Edge and a different implementation in Firefox and Safari. Expect small differences on any single file and none of consequence in aggregate.
Would AVIF have done better?
On the photographs, usually yes — commonly another 15–25% below WebP at matched visual quality. AVIF costs much more encode time and is not quite as universally supported, which is why WebP remains the safer default. Our format comparison guide covers the trade-off in full.
Should I re-convert images that are already WebP?
No. Re-encoding a lossy file always discards a little more detail while rarely saving meaningful bytes, and it can make the file bigger, as the quality-100 test below shows. Convert from the highest-quality original you still have.

Sources & further reading

Specification and vendor documentation used to check the claims in this guide.

  1. 1 WebP Compression Study — Google Developers
  2. 2 An image format for the Web — Google Developers — WebP documentation
  3. 3 Serve images in modern formats — Chrome for Developers — Lighthouse audits
  4. 4 Largest Contentful Paint (LCP) — web.dev

Written by

John Cabardo

Founder & Developer, WebPMagic

I build and maintain WebPMagic, a browser-based image converter, and write the guides on this site. Most of what I publish here comes out of actually shipping image pipelines: measuring what compresses, what breaks, and what the byte savings look like on real files rather than in a spec sheet.