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
| Method | Typical savings on text | Browser support | Best for |
|---|---|---|---|
| Gzip (1992) | ~70% vs uncompressed | Universal | The safe fallback — everything speaks it |
| Brotli (2015, Google) | 15–25% smaller than Gzip | All modern browsers (HTTPS) | Static assets pre-compressed at high quality |
| Zstandard (2016, Meta) | ≈ Brotli, much faster to compress | Chrome/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