Free tool · no signup required

Gzip, Brotli or Zstandard — what does your server actually send?

We request your URL four times — uncompressed, Gzip, Brotli and Zstandard — and show the real transferred bytes and savings for each.

Works with any server or CDN · follows redirects · measures actual bytes on the wire.
RequestedServer sentTransferredSavings

What this compression test checks

Every modern browser tells the server which compression it understands via the Accept-Encoding request header, and the server answers with Content-Encoding. This tool sends four requests with different Accept-Encoding values — identity (none), gzip, br (Brotli) and zstd (Zstandard) — and counts the bytes that actually cross the wire. You see instantly which methods your server or CDN supports and how much each one saves.

Gzip vs Brotli vs Zstandard

MethodTypical savings on textBrowser supportBest for
Gzip (1992)~70% vs uncompressedUniversalThe safe fallback — everything speaks it
Brotli (2015, Google)15–25% smaller than GzipAll modern browsers (HTTPS)Static assets pre-compressed at high quality
Zstandard (2016, Meta)≈ Brotli, much faster to compressChrome/Edge 123+, Firefox 126+Dynamic responses compressed on the fly

The practical hierarchy in 2026: serve Brotli for static text (HTML, CSS, JS, SVG, JSON), consider Zstandard for dynamic responses if your stack supports it, and keep Gzip as the fallback for older clients. Images and video are already compressed — recompressing them wastes CPU for ~0%.

Compression and caching: the Vary connection

Compression multiplies your cache variants: a CDN that caches your page must keep one copy per encoding (that's what Vary: Accept-Encoding means). A page can be a cache HIT for Gzip clients and a MISS for Brotli clients at the same edge location — one more reason single-number cache checks mislead. You can see the per-location picture with our cache checker, and a cache warmer that requests both desktop and mobile variants keeps the encodings your real visitors use warm. Cold caches also pay the compression cost twice: origin render time plus on-the-fly compression — measurable as TTFB per location.

Common findings

Only Gzip, no Brotli

Enable Brotli on the server (nginx: ngx_brotli; Apache: mod_brotli; Caddy and most CDNs: built-in). On Cloudflare, Brotli is enabled per zone under Speed → Optimization. If a proxy between origin and CDN strips Accept-Encoding, fix the proxy config.

Zstandard not supported

Normal today — server-side zstd is young. Cloudflare delivers Content-Encoding: zstd for eligible responses; nginx has third-party modules. If Brotli works, zstd is an optimization, not a must.

The identity request came back compressed

Some servers ignore Accept-Encoding: identity and compress anyway. Then we can't compute exact savings (no uncompressed baseline) — the table still shows which encodings are supported and their transferred sizes.

Compressed and cached is the goal

Compression shrinks the bytes; a warm edge cache removes the wait. warmup.rocks keeps your pages hot in 90+ locations — in the encodings your visitors actually use.

Start your 7-day free trial