Logo

How we reduced 53% of bandwidth at Cloudflare

Guilherme Tavano
Guilherme Tavano
February 28, 2026
How we reduced 53% of bandwidth at Cloudflare

GZIP and Brotli are compression algorithms used to shrink responses before they're sent over the wire. The browser sends an Accept-Encoding header (e.g. gzip or br), the server compresses the body, and the client decompresses it. Less bytes means lower bandwidth, lower egress costs, and faster loads. Brotli typically compresses text (HTML, CSS, JS) better than GZIP, so we wanted it at the edge.

We assumed Cloudflare was already serving Brotli when clients asked for it. It wasn't. Our traffic was going out as GZIP, and Brotli had to be enabled explicitly in the Cloudflare settings. Once we turned it on, the impact was immediate.

We rolled out Brotli in two steps: February 23 at 19:00 UTC for a subset of routes, then February 24 at 10:00 UTC for all incoming requests. The numbers below compare a full day before (February 22, GZIP) with a full day after full rollout (February 25, Brotli).


The numbers by content type

We measured data transfer by content type in Cloudflare. Same traffic, same period. Here's how much we reduced bandwidth in each category.

In the three graphs below, the dashboard shows the drop clearly: after day 24, when Brotli was enabled for all requests, data transfer falls and stays lower for HTML, CSS, and sprites.svg.

HTML

HTML had the biggest win: 53% less bandwidth. Every page view now sends roughly half the bytes it did before, which directly reduces egress and speeds up first paint.

Dashboard screenshot – HTML data transfer (before/after Brotli)
Cloudflare dashboard: HTML (text/html) data transfer.

CSS

CSS came in at 50% less bandwidth. Lighter stylesheets mean faster critical-path loads and less data on every request.

Dashboard screenshot – CSS data transfer (before/after Brotli)
Cloudflare dashboard: CSS data transfer.

sprites.svg

sprites.svg is a route deco uses to serve all SVGs from a single endpoint instead of many separate requests.

SVG is already lean, but we still saw 27% less bandwidth for sprites.svg. Every bit adds up across millions of requests.

Dashboard screenshot – sprites.svg data transfer (before/after Brotli)
Cloudflare dashboard: sprites.svg data transfer.

Latency

We're still monitoring, but we've already seen route latency go down. That was a concern going in: Brotli compression is more CPU-intensive than GZIP, so we were watching for a possible latency increase. So far, the smaller payloads are winning—less data to send means faster response times at the edge.

What you get

Brotli is live for all incoming requests at the edge. No config change on your side: clients that send Accept-Encoding: br get Brotli automatically. You get less bandwidth, lower egress, and faster loads. Already live. Questions? Reach out on Discord.

Stay up to date

Subscribe to our newsletter and get the latest updates, tips, and exclusive content delivered straight to your inbox.

We respect your privacy. Unsubscribe at any time.

You might also like

See all