48 private tools

Find a tool

48 tools

Favorites and recently used tool names stay in this browser and are never sent to us.

Compress WebP

Re-encode a WebP at the weight you actually need, then compare the file size and quality before you download it. Your images are never uploaded.

Drop WebP files here or click to choose

WebP in, WebP out — encoded on your device, never uploaded

    How to compress a WebP

    1. Drop your .webp files into the box above, or click it to pick them.
    2. Leave the output format on WebP. It is already set for you here — the dropdown is there in case you decide part-way through that you wanted a JPG or a PNG instead.
    3. Set the quality. 75 is the default and a sensible landing point for photographs; go to 85–90 if the image contains text, a logo or hard edges, where the encoder’s shortcuts are easiest to spot.
    4. Open Preview and drag the divider across the picture. The original is on the left, your new file on the right, and the quality slider re-encodes live so you can find the point where it starts to look wrong and then step back from it.

    WebP is already compressed. So what is this doing?

    Nothing clever, and it is worth being blunt about it. Your browser decodes the WebP back into plain pixels, the old encoding is discarded entirely, and libwebp encodes those pixels again from scratch at the quality you picked. There is no way to shave bytes off a lossy file without unpacking it first, so that is the only thing on offer.

    Which means the useful question is not “how much smaller can this get” but how much slack was in the file to begin with. Re-encoding a photo that was already saved around this quality buys you a modest cut at best, and charges a second generation of lossy damage for it — the same compromise the encoder made the first time, made again on top of its own artefacts. Re-encoding a lossless WebP, or one somebody exported at quality 95 because the dialog defaulted there, is a different story entirely.

    What to expect from the file you are about to drop
    What you have What re-encoding does
    Lossless WebP (a photo) The big win. It was storing exact pixels you cannot see the value of.
    Lossy WebP saved at 90–100 A real cut, for a difference most people will not find without the preview.
    Lossy WebP already around 75–80 A modest cut at most, paid for with a second generation of loss.
    Small flat-colour graphic or icon Often comes out bigger, and lossy encoding smears the edges. Leave it alone, or switch the output to PNG.
    WebP with transparency Alpha is kept intact; the rules above apply to the colour.

    Those are not guesses. We took one 1600 × 900 photograph, saved it three ways with Google’s cwebp, and put each copy through this page at the default quality of 75. The lossless copy went from 1.3 MB to 103 KB. The quality-90 copy went from 228 KB to 96 KB. The quality-80 copy went from 130 KB to 105 KB — a real but unremarkable saving for a second pass of lossy encoding. A 512-pixel flat-colour graphic with a transparent background went the other way entirely: 2.3 KB in, 3.6 KB out. One photograph is not a benchmark, and yours will land somewhere else; the shape of the result is the point, and your own numbers appear on the row as soon as the file is done.

    Lossy, lossless, and which one you get

    WebP is two formats wearing one file extension. The lossless mode stores every pixel exactly, like PNG does, and is what most converters and design tools reach for when they are told to “export WebP” without being told anything else. The lossy mode throws away detail your eye is bad at noticing, like JPEG does, and is what makes WebP worth using on a website in the first place.

    This tool always writes lossy WebP. The slider is the lossy quality parameter, passed straight through to libwebp with lossless mode switched off. That is deliberate: if you wanted lossless you would not be on a page about making the file smaller. If you do need pixel-exact output, switch the dropdown to PNG — that path runs OxiPNG instead and touches no pixels — and accept that a lossless photo is a heavy file whatever the container.

    Working out which kind you were handed takes ten seconds. Divide the file size by the number of pixels: a lossy photograph tends to sit near a tenth of a byte per pixel, while a lossless one is commonly several times that. If you want certainty rather than a hint, look at bytes 13 to 16 of the file — VP8L means lossless, VP8  (with a trailing space) means lossy, and VP8X means the extended container used for transparency, animation or metadata, with the real image chunk sitting further in.

    Why the WebP your CMS produced is heavier than it needs to be

    Most oversized WebP files are not badly encoded. They are encoded faithfully, to a setting nobody chose on purpose:

    The first two are exactly what re-encoding fixes. The third is a resize job. The fourth happens here as a side effect — because the file is rebuilt from raw pixels, nothing from the old container survives into the new one.

    When you should convert instead

    Compression is the wrong tool if the format is the actual problem. If something refuses to open the file at all — an older Office or Photoshop, a print shop, an upload form with a fixed list — the fix is WebP to JPG for photographs, or WebP to PNG when there is a transparent background that has to survive.

    Going the other way, if what you have is a heavy PNG or JPEG and you landed here hoping to lighten your pages, PNG to WebP and JPG to WebP do the conversion and the compression in one step — and a PNG turned into a lossy WebP is where the largest savings in this whole category live.

    Frequently asked questions

    Will compressing a WebP actually make it smaller?

    It depends on what you were given. A lossless WebP — the kind a design tool or a PNG converter produces — usually collapses, because it is storing every pixel exactly and you almost certainly do not need that. A WebP that was already saved lossy at around the same quality has far less to give, and what it does give is paid for with a second round of lossy damage. You do not have to predict it: the tool shows the before and after size on every row, so if the number barely moves, keep your original.

    Does this produce a lossy or a lossless WebP?

    Lossy, always. The encoder is libwebp — Google’s own WebP implementation, compiled to WebAssembly — and this tool runs it with lossless mode off, so the Quality slider is the lossy quality setting from 1 to 100. There is no lossless WebP option. If you need pixel-exact output, switch the format dropdown to PNG, which is optimised losslessly with OxiPNG; expect a much larger file for a photograph.

    What happens to a transparent background?

    It survives. WebP carries a real alpha channel, and the encoder keeps it at full quality even while the colour is compressed lossily, so a logo or a UI graphic comes out with the same transparent areas it went in with. One detail worth knowing: the colour values hidden underneath fully transparent pixels are not preserved — the encoder is free to rewrite them because nothing can see them, and that is part of how it saves space. It has no effect on the visible image. If you pick JPEG as the output format instead, transparency is flattened onto white, because JPEG has no alpha channel at all.

    Why did my result come out bigger than the original?

    Two reasons. Either the quality you asked for is higher than the quality the file was saved at — re-encoding cannot recover detail that has already been thrown away, but it can happily spend more bytes describing the damage — or the image is a small graphic with flat colour, which lossless WebP stores extremely efficiently and lossy WebP does not. We measured a 512-pixel icon growing from 2.3 KB to 3.6 KB. The result row says so rather than hiding it, and the honest move is to close the tab and keep the file you already had.

    What happens to EXIF data and the colour profile?

    Both are dropped. The image is decoded to raw pixels and encoded again from those, so nothing from the original container is carried across — no EXIF, no camera or GPS fields, no embedded ICC profile, no XMP. For a photo you are about to publish that is usually a small privacy win. If you were relying on an embedded wide-gamut profile, this is not the tool for that file.

    Are my WebP files sent anywhere?

    No, and there is nowhere for them to be sent to. This site is static files; the encoder is a WebAssembly build of libwebp that your browser downloads once and runs locally, in the tab. There is no upload step, no processing queue and no account. The page does make other requests — it is ad-supported, and the privacy page lists what those are — but your image is never one of them.

    Is there a file size limit?

    None from us. The ceiling is your own device: the image is decoded into an uncompressed bitmap in memory before it is encoded again, which for a very large photograph on a phone can be more than the browser is willing to allocate. If a huge file fails, resize it first — that is the fix, and it is a better idea for the web anyway.

    PDF preview
    of 1
    100%

    Drawing page…

    Arrow keys change page · +/− zoom · 0 fits width · Esc closes