Code Compression Comparison — gzip vs Brotli vs Minification

Compare minification, gzip, and Brotli compression for reducing code delivery size. Learn how these techniques stack and which combinations provide the best results for web performance.

Techniques

Detailed Explanation

Minification vs. gzip vs. Brotli

Reducing the size of code delivered to browsers involves multiple layers of optimization. Understanding how minification and compression work together — and their individual contributions — helps you choose the right strategy.

The Three Layers

  1. Minification — Transforms source code to remove unnecessary characters (whitespace, comments, long variable names). Operates at the language level.
  2. gzip compression — A general-purpose compression algorithm (DEFLATE) applied by the web server. Operates at the byte level.
  3. Brotli compression — A newer algorithm designed specifically for web content, offering 15-25% better compression than gzip at comparable speeds.

How They Stack

Consider a typical JavaScript file:

Stage Size Reduction
Original source 100 KB
After minification 45 KB 55%
Minified + gzip 14 KB 86%
Minified + Brotli 12 KB 88%

Compression works best on minified code because:

  • Repeated patterns (variable names, keywords) compress well
  • Minification removes entropy (random content like comments) that compression handles poorly
  • Shorter, more uniform code produces better compression ratios

gzip vs. Brotli in Detail

gzip (DEFLATE):

  • Universally supported by all browsers since the early 2000s
  • Compression levels 1-9 (6 is the typical server default)
  • Fast compression, fast decompression
  • Served via Content-Encoding: gzip

Brotli:

  • Supported by all modern browsers (95%+ global coverage)
  • Compression levels 1-11 (4-6 for dynamic content, 11 for static pre-compression)
  • Higher compression ratios, especially at high levels
  • Slower to compress at high levels (use pre-compression for static assets)
  • Served via Content-Encoding: br
  • Requires HTTPS

Optimal Strategy

For the best results, apply all three:

  1. Minify during your build step (Terser, cssnano, html-minifier-terser)
  2. Pre-compress static assets with Brotli at level 11 (*.br files)
  3. Configure your server to serve Brotli where supported, gzip as fallback
  4. Use dynamic compression (lower Brotli level) for server-rendered content

When to Skip Minification

If you are only serving gzip/Brotli-compressed content, minification still helps because it reduces the decompressed size the browser must parse. Parsing is a CPU cost that compression alone does not reduce.

Use Case

Understanding compression stacking is critical for DevOps engineers and frontend architects optimizing delivery pipelines. The right combination of minification and compression can reduce payload sizes by 85-90%, dramatically improving load times on slow networks.

Try It — Code Minifier

Open full tool