Checks

Response compression

Checks that HTML responses are served compressed with gzip, brotli, or zstd, cutting transfer size for any document worth compressing.

Updated 2026-07-19minorPerformance

What this check looks for

This check reads the Content-Encoding response header for gzip, brotli (br), zstd, or deflate. If one is present, it passes. If absent but the document is 20KB or smaller, it also passes — compression overhead isn't worth flagging on documents that small. If absent on a larger document, it warns, reporting the uncompressed size.

Why it matters

Text-based responses like HTML compress extremely well — often 60-80% smaller — because of how repetitive markup and text tend to be, so skipping compression on anything but the smallest documents leaves an easy, essentially free performance win on the table. Every metric downstream of the initial download benefits: less data to transfer means a faster effective load time, especially on slower or metered mobile connections where every kilobyte matters more. This is one of the lowest-effort, highest-impact fixes in the whole performance category, since most web servers and CDNs support it as a one-line configuration change.

How to fix it

Enable compression at the server or CDN layer:

txt
# nginx
gzip on;
gzip_types text/html text/css application/javascript application/json;
txt
# Most CDNs (Cloudflare, Fastly, CloudFront) support brotli automatically —
# confirm it's enabled for your zone/distribution.

Note that some proxies strip the Content-Encoding header even while still compressing the response — if you're confident compression is enabled but this check still warns, verify with a direct request to the origin.

See how your site scores on this check

Run a free scan

See how your site scores on this check.

The free teaser scan checks a sample of your pages — no account, no card.