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.
Background sources
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 forbrorgzip)Vary(checks forAccept-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-Encodingsuggests 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
Varyhandling causes inconsistent behavior. - Misconfigured middleware strips/overrides
Content-Encoding.
If you are not technical
- Ask your team which layer owns compression (origin, CDN, or both).
- Confirm text assets (HTML/CSS/JS/JSON) are included.
- Request a before/after transfer-size comparison.
- 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
- Enable Brotli first where supported; fallback to gzip.
- Restrict compression to compressible text MIME types.
- Ensure
Vary: Accept-Encodingis set correctly. - Avoid recompression loops across origin/CDN layers.
- Verify with real responses (not just config files).
How to verify
curl -I --compressed https://your-urland inspectContent-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
- MDN: Content-Encoding header
- MDN: Compression in HTTP
- RFC 9110: HTTP content coding semantics
- IETF RFC 7932: Brotli format
Need a safe rollout checklist for enabling Brotli at edge + origin? Send support your current proxy/CDN stack.