How can I troubleshoot why my IIS7 site is not gzip compressing?

Solution 1:

For basics:

Check the browser is actually sending the Accept-Encoding header and its not being stripped by firewalls.

Enable Failed Request Tracing on response 200 and Web Server Compression and see what it says when IIS7 tries to compress the response.

Solution 2:

You're not using HTTP 1.0 in your testing are you? The noCompressionForHTTP10="False" will prevent that from working.

What I suggest is to start over again and get compression working with the defaults, then add back the parts until it breaks again. Here's a default on a fresh install:

 <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
    <dynamicTypes>
       <add mimeType="text/*" enabled="true" />
       <add mimeType="message/*" enabled="true" />
       <add mimeType="application/x-javascript" enabled="true" />
       <add mimeType="*/*" enabled="false" />
    </dynamicTypes>
    <staticTypes>
       <add mimeType="text/*" enabled="true" />
       <add mimeType="message/*" enabled="true" />
       <add mimeType="application/javascript" enabled="true" />
       <add mimeType="*/*" enabled="false" />
    </staticTypes>
  </httpCompression>