Gzip or Brotli Compression Not Enabled

Brotli compression reduces file sizes by up to 70% (vs Gzip's 65%), with Akamai reporting median savings of 82% for Brotli (DebugBear). Switching from Gzip to Brotli alone improves First Contentful Paint by approximately 3.5% (WP Rocket). Enabling compression is typically a single server configuration change that instantly benefits every visitor.

Start here

Before You Fix It: What This Check Means

Response compression cuts transfer bytes for text resources and lowers real-user wait time. In plain terms, this tells you whether users are likely to feel this page as fast, stable, and usable. Scavo inspects response headers for.

Why this matters in practice: degraded speed here often compounds into lower conversion and weaker user trust.

How to use this result: treat this as directional evidence, not final truth. Synthetic sampling may not fully match real-user device/network variability. First, confirm the issue in live output: verify directly in live production output with browser/network tools Then ship one controlled change: Enable Brotli first where supported; fallback to gzip. Finally, re-scan the same URL to confirm the result improves.

TL;DR: Your server isn't compressing responses, so visitors download 2-3x more data than necessary on every page load.

Brotli compression reduces file sizes by up to 70% (vs Gzip's 65%), with Akamai reporting median savings of 82% for Brotli (DebugBear). Switching from Gzip to Brotli alone improves First Contentful Paint by approximately 3.5% (WP Rocket). Enabling compression is typically a single server configuration change that instantly benefits every visitor.

What Scavo checks (plain English)

Scavo inspects response headers for:

  • Content-Encoding (looks for br or gzip)
  • Vary (checks for Accept-Encoding)
  • Content-Type
  • Approximate HTML size in this response

How Scavo scores this check

Result behavior:

  • Pass: Brotli (br) detected
  • Pass: gzip detected
  • Info: compression not confirmed but Vary: Accept-Encoding suggests conditional compression
  • Info: tiny response (<1400 bytes) where compression impact is minimal
  • Warning: no Brotli/gzip detected on likely text response

In your scan report, this appears under What failed / What needs attention / What is working for compression, followed by Recommended next steps and Technical evidence (for developers) when needed.

  • Scan key: compression
  • Category: PERFORMANCE

Why fixing this matters

Uncompressed text payloads waste bandwidth and time, especially on mobile networks and larger HTML/JS/CSS responses. Compression is usually a low-risk infrastructure improvement with immediate user impact.

Brotli often yields better text compression ratios than gzip, though deployment compatibility and proxy behavior should be validated.

Common reasons this check flags

  • Compression disabled at origin or reverse proxy.
  • CDN configured to compress only some MIME types.
  • Missing Vary handling causes inconsistent behavior.
  • Misconfigured middleware strips/overrides Content-Encoding.

If you are not technical

  1. Ask your team which layer owns compression (origin, CDN, or both).
  2. Confirm text assets (HTML/CSS/JS/JSON) are included.
  3. Request a before/after transfer-size comparison.
  4. Re-run Scavo and confirm compression is detected.

Technical handoff message

Copy and share this with your developer.

Scavo flagged Gzip/Brotli Compression (compression). Please enable Brotli or gzip for text responses, verify Content-Encoding on production traffic, and ensure caching/Vary: Accept-Encoding behavior is correct.

If you are technical

  1. Enable Brotli first where supported; fallback to gzip.
  2. Restrict compression to compressible text MIME types.
  3. Ensure Vary: Accept-Encoding is set correctly.
  4. Avoid recompression loops across origin/CDN layers.
  5. Verify with real responses (not just config files).

How to verify

  • curl -I --compressed https://your-url and inspect Content-Encoding.
  • Check representative HTML, JS, CSS, and JSON responses.
  • Confirm transfer size reduction in browser network panel.
  • Re-run Scavo and verify status moves to pass.

What this scan cannot confirm

  • It does not calculate exact end-to-end byte savings per route.
  • It does not evaluate image/video compression formats.
  • It evaluates observed response headers, not full CDN analytics.

Owner checklist

  • [ ] Assign owner for transport/compression settings.
  • [ ] Standardize compressible MIME configuration.
  • [ ] Add header checks in deployment validation.
  • [ ] Recheck after CDN or proxy layer changes.

FAQ

Should we always prefer Brotli over gzip?

Generally yes for text compression efficiency, while keeping gzip fallback for compatibility.

Why can Scavo return info even if compression isn’t visible?

Vary: Accept-Encoding can indicate conditional behavior where this exact response did not expose final encoding.

Does compression help tiny responses?

Sometimes marginally, but impact is limited below small payload sizes.

Can double compression happen?

Yes if multiple layers compress without coordination. Validate at final edge response.

Sources


Need a safe rollout checklist for enabling Brotli at edge + origin? Send support your current proxy/CDN stack.

More checks in this area

caching

Browser Caching Headers Missing or Too Short

Google recommends a minimum cache lifetime of 30 days for all cacheable subresources, with one week as the absolute minimum and one year recommended for static assets (Chrome DevTools Lighthouse). Without caching headers, every return visit downloads your CSS, JavaScript, images, and fonts from scratch — wasting bandwidth and making your site feel slow for your most engaged users.

Open guide
minification

CSS and JavaScript Not Minified

Minification strips whitespace, comments, and unnecessary characters from code without changing functionality — typically saving 20-30% on file size. Every visitor downloads your development comments and formatting. Build tools like Terser (JS) and cssnano (CSS) handle this automatically, and most CDNs offer it as a toggle.

Open guide
core_web_vitals

Core Web Vitals Failing — LCP, INP, or CLS Issues

Google officially confirmed on March 12, 2024 that Core Web Vitals are used as a ranking factor (Google Search Central). After the March 2024 core update, sites with poor CWV experienced 20-40% traffic drops while those that improved saw 15-30% gains (BrightVessel). Pages at position 1 are 10% more likely to pass CWV than pages at position 9 (BKND).

Open guide