Skip to main content
Tracemute Clean a file

← All formats

WebP

Google's modern web format. RIFF container — same family as WAV — with chunks similar to PNG.

Extensions
.webp
MIME
image/webp
Strip
Lossless
Updated
2026-05-14

WebP is Google’s 2010 image format, designed to be smaller than JPEG (for lossy) and PNG (for lossless) at equivalent quality. It’s the format YouTube thumbnails ship in, the format CDNs serve when the browser supports it, and increasingly the format design tools target.

What it carries

WebP files are RIFF containers — the same chunked structure as .wav audio. Each chunk has a 4-letter FourCC code, a little-endian size, and a payload. Metadata lives in these:

  • EXIF — full TIFF-encoded EXIF, identical wire format to what JPEG carries. Make, Model, GPS, all of it.
  • **XMP ** (with trailing space in the FourCC) — Adobe’s XML metadata wrapper. Same content as JPEG’s APP1 XMP.
  • ICCP — embedded ICC colour profile.
  • ALPH — alpha channel data, technically not metadata but worth noting.
  • VP8X — the extended-features chunk that declares which optional chunks (EXIF, XMP, ICC, alpha, animation) are present in the file. The “feature flags” byte inside VP8X is a 1-byte bitmap.

What’s unique

WebP’s design forces a subtle gotcha: if you delete the EXIF chunk without also clearing the EXIF bit in VP8X’s feature flags, the container claims to have EXIF that isn’t there. Some decoders treat the mismatch as a corrupt file. Naive metadata strippers (deleting chunks without rewriting VP8X) produce files that look fine in browsers but fail strict validators.

The flag rewrite has to be atomic with the chunk removal — otherwise you’re stripping in one pass and breaking the file in another.

What Tracemute does

The handler is a native RIFF parser that walks the chunk list, filters out EXIF / XMP / vendor chunks, and rewrites the VP8X feature flags to clear the bits for the chunks it removed. The output passes WebP validators because the flags match the chunk set.

The image data (the VP8 or VP8L chunk containing the actual pixel bitstream) is byte-identical to the input. No re-encoding.

What survives

ICCP (colour profile) is kept by default. VP8X is rewritten only when feature flags need clearing — otherwise byte-identical. ALPH (alpha channel) survives because it’s part of the pixel data, not metadata.

Where this format shows up

Real situations that hand you a WebP file.