WEBPery

Compress WebP files in your browser

Re-encode existing WebP files at lower quality to shrink them further. Most WebPs in circulation were encoded at quality 90+ and can lose 20–40% of their size with no visible change.

Adjustable qualityTransparency preservedSide-by-side previewClient-side only

Click to select your WebP file

File never leaves your browser.

Quick start

  1. Step 1

    Select your WebP file

    Click the upload area or drag and drop a WebP file. One file at a time for the compression tool.

  2. Step 2

    Choose a quality setting

    Use the slider to set the target quality (10–100). 78 is a safe default; lower for thumbnails, higher for heroes.

  3. Step 3

    Compress and download

    Click compress. The tool re-encodes the WebP at your chosen quality and reports the size reduction. Download when ready.

How WebP compression works

Compressing a WebP is a re-encode. The browser decodes the source WebP into RGBA pixels via the Canvas API, then encodes those pixels as a new WebP at the quality setting you choose. This produces a smaller file at the cost of some additional quality loss compared to the source.

The size win comes from lowering the quality factor — most existing WebPs in circulation were encoded at quality 90+ to be safe, when 78–82 would have produced visually equivalent output at significantly smaller size. The visible difference between quality 90 and quality 80 is almost never perceptible on a typical display; the file size difference is routinely 30–40%.

A few cases where compression won't help:

  • The source WebP is already at quality 75 or below. Re-compression produces marginal savings and may introduce visible artefacts.
  • The source is lossless WebP (logos, icons, screenshots). Re-encoding as lossy adds artefacts. Keep the lossless original.
  • The source was encoded with sophisticated server-side tools (cwebp -m 6, Sharp at effort=6) that produce smaller output than the Canvas API can match.

For systematic compression guidance, see WebP Compression Settings and Lossy vs Lossless Compression.

When to compress a WebP

Inherited high-quality WebPs

Files exported from Photoshop, Affinity, or Figma often default to quality 90+. Re-compressing at 78–82 typically cuts size by 30–40% with no visible difference.

CDN-converted WebPs

Some CDN auto-conversion services produce safe-but-large WebPs. Manual re-compression often reclaims meaningful bytes.

Hero / LCP optimisation

The Largest Contentful Paint image typically dominates page weight. Aggressive compression on the hero (q=78–82) has outsized Core Web Vitals impact.

Targeting a byte budget

Some platforms enforce maximum file sizes (ad networks, marketplace listings). Re-compress at incrementally lower quality until you hit the budget.

Thumbnails and below-the-fold

Images rendered at small sizes can tolerate aggressive compression (q=65–72) invisibly. The compression saving compounds across grid pages with many thumbnails.

Bandwidth-sensitive audiences

Mobile-first or emerging-market audiences benefit from every kilobyte saved. Compress aggressively for these contexts.

Quality settings

Use caseQualityNotes
Hero / above-the-fold82Visible at large size; quality matters
Product imagery78Sweet spot for ecommerce
Article body imagery75Almost always indistinguishable
Thumbnails (≤ 200px)65–72Aggressive compression invisible at size
Decorative / background55–65Detail loss acceptable

Below quality 55, lossy artefacts (block boundaries, ringing around edges) become visible on typical content. Above quality 90, file size grows much faster than quality improves — avoid this range unless archival fidelity is required.

Common issues and solutions

Output file is larger than the input

The source WebP was encoded with sophisticated server-side encoder settings the Canvas API can't match. Keep the original — re-compression won't help.

Output looks visibly worse

Quality setting is too aggressive. Try 78–82 for photographic content. For logos, icons, or text-heavy graphics, don't use this tool — the source is probably lossless and should stay that way.

Transparency is missing in the output

Should not happen — the Canvas API preserves alpha channels through re-encoding. If transparency is lost, verify by opening the source in another tool to confirm it had transparency to begin with.

Compression is slow on large files

Very large files (50 MB+) stress browser memory. Try downscaling first, or use a server-side encoder for high-volume batch work.

I want to batch-compress many WebPs

For batch operations, use a build pipeline with Sharp or cwebp at -m 6. Browser-based compression is ideal for one-off tuning; build pipelines are better for scale.

Quality 100 still shows reduction

The Canvas API's WebP encoder doesn't truly support lossless via the q=100 setting alone. For genuinely lossless re-encoding, use cwebp -lossless server-side.

Animated WebP loses animation

The Canvas API only reads the first frame. For animated-WebP re-compression, use img2webp or gif2webp from the libwebp suite.

I get a 'Compression failed' error

Usually means the source file is corrupted or uses an unusual WebP profile. Try opening it in another tool to verify the file is valid.

Frequently asked questions

Need WebP first?
JPG to WebP Converter →

Convert JPG to WebP with full quality control before further compression.

Need WebP first?
PNG to WebP Converter →

Convert PNG to WebP. For photographic PNGs, use lossy mode at q=80; for graphics, use lossless (q=100).

Format detail
WebP format overview →

Container structure, codec details, browser support, and implementation patterns.

Encoder reference
WebP Compression Settings →

Complete reference for quality, method, alpha-quality, near-lossless, and preset parameters.

Guide
WebP Optimisation →

Encoder settings, responsive delivery, lazy loading, and Core Web Vitals impact for WebP.

Guide
Lossy vs Lossless Compression →

Decision framework for choosing the right compression mode for any image.