Measured in your browserWe advise on speed. We practice it.Loaded just now · real numbers from this visit, not a lab score.
Page loaded
First byte
DOM ready
First paint
Largest paint
DNS lookup
TLS handshake
Transferred
Saved by compression
Requests

Which CDNs compress with Brotli at the edge, who serves Zstandard, and who still re-encodes your origin's hard work — measured against current docs.

The verdict, up front

Winner depends on your workload.

Winner depends on: whether you need Zstandard today (Cloudflare is the only major serving it to clients), whether your origin pre-compresses at Brotli 11 (then end-to-end passthrough matters more than edge encoding), and how much CPU-versus-bytes trade you want at the edge.

Three algorithms, one question

Gzip is the 1992 floor every client speaks. Brotli beats it by 15–30% on text at the cost of slow maximum-level encoding. Zstandard matches Brotli-class ratios while compressing dramatically faster — Cloudflare's published testing puts it around 42% faster than Brotli at near-equal output size — which makes it the interesting algorithm for dynamic responses that must be squeezed per request. The question for a CDN buyer is narrower than the benchmark charts: what will the edge actually emit to your users, and what will it accept from your origin?

ProviderTo the clientFrom the origin
CloudflareGzip, Brotli and Zstandard; default algorithm varies by plan, Compression Rules give per-path controlAccepts Gzip and Brotli (end-to-end Brotli since 2023, up to level 11 passthrough)
Amazon CloudFrontGzip and Brotli edge compression via a checkbox; no Zstandard as of July 2026Passes through pre-compressed origin objects when Accept-Encoding is normalized in the cache policy
FastlyEdge gzip long-standing; Brotli delivery primarily via origin passthrough, with edge Brotli arriving later than rivalsHappily caches pre-compressed variants; VCL controls Vary and normalization precisely
AkamaiBrotli supported on modern delivery products, with last-mile encoding optionsAccepts origin Brotli; behavior set in the delivery configuration
Bunny.netGzip and Brotli edge compression included on all zonesPasses through origin-compressed content
Gcore / CDN77 / KeyCDNGzip plus Brotli on current platforms; Zstandard not advertisedOrigin passthrough supported

Cloudflare: the only zstd on the menu

Cloudflare is, among the majors, alone in serving Zstandard to browsers that ask for it, with automatic fallback down the chain to Brotli, then gzip, then identity. Two details from its current documentation are worth internalizing. First, the default emitted algorithm now varies by plan — Zstandard by default on Free, Brotli on Pro and Business, gzip on Enterprise — with Compression Rules available on every plan to override per path or content type. Second, the origin side is narrower than the client side: Cloudflare requests only Brotli or gzip from your origin, so an origin emitting zstd will not be understood; the edge re-encodes for zstd-capable clients instead. If you pre-compress static assets at Brotli 11 in CI, the 2023 end-to-end Brotli work means those exact bytes can flow through untouched — the cheapest compression is the kind you never repeat.

CloudFront and the missing algorithm

CloudFront's edge compression is a per-behavior checkbox covering gzip and Brotli, with the managed cache policies handling Accept-Encoding normalization so you cache one compressed variant rather than a fragment per header string — the fragmentation trap we quantified in cache hit ratio, explained applies with full force here. What CloudFront does not do, as of this writing and per AWS's own re:Post responses, is Zstandard in either direction. For most estates that is a rounding error; for high-volume dynamic APIs where encode CPU is the bottleneck, it is a real gap between the two biggest networks.

The passthrough school

Fastly's culture is precision rather than magic: normalize Accept-Encoding in VCL, cache the variants you intend, and serve pre-compressed objects from origin byte-for-byte. Edge gzip has been there from the start; Brotli encoding at the edge arrived much later than at rivals, so Fastly estates conventionally treat Brotli as an origin responsibility. That philosophy — compress once, at build time, at maximum level — remains the highest-ratio option on any CDN, and we showed the level-by-level CPU math in our edge-compression deep dive.

How to decide

If dynamic-response encode latency is your pain, Cloudflare's zstd is currently the only managed answer at the majors. If your text assets are static, the vendor matters less than your build pipeline: pre-compress at Brotli 11, verify passthrough with a curl per encoding, and let gzip cover the legacy tail. And if you are already paying for edge compute, remember every re-encode is CPU you are billing yourself for — the compression decision is a cost decision wearing a performance costume. Facts verified against provider documentation, July 2026.

Want a per-path compression plan for your actual asset mix — and proof of what your CDN really emits? Start with the assessment.

Get the free assessmentMore analysis