Hide

Enable Compression

This rule triggers when PageSpeed Insights detects that compressible resources were served without gzip compression.

Overview

All modern browsers support and automatically negotiate gzip compression for all HTTP requests. Enabling gzip compression can reduce the size of the transferred response by up to 90%, which can significantly reduce the amount of time to download the resource, reduce data usage for the client, and improve the time to first render of your pages. See text compression with GZIP to learn more.

Recommendations

Enable and test gzip compression support on your web server. The HTML5 Boilerplate project contains sample configuration files for all the most popular servers with detailed comments for each configuration flag and setting: find your favorite server in the list, look for the gzip section, and confirm that your server is configured with recommended settings. Alternatively, consult the documentation for your web server on how to enable compression:

FAQ

PageSpeed Insights reports that many of my static content files need to be gzipped, but I have configured my web server to serve these files using gzip compression. Why is PageSpeed Insights not recognizing the compression?
Proxy servers and anti-virus software can disable compression when files are downloaded to a client machine. PageSpeed Insights' results are based on headers that were actually returned to your client, so if you are running the analysis on a client machine that is using such anti-virus software, or that sits behind an intermediate proxy server (many proxies are transparent, and you may not even be aware of a proxy intervening between your client and web server), they may be the cause of this issue.
To determine if a proxy is the cause, you can use the PageSpeed Insights Chrome extension to examine the headers:
  1. Run PageSpeed on the page in question.
  2. Click the Show Resources tab.
  3. Expand the URL of the resource that is being flagged as uncompressed. The headers that accompanied that resource are displayed. If you see a header called Via, Forwarded, or Proxy-Connection, this indicates that a proxy has served the resource.