Tuesday, May 31, 2016

Solution to: JS files were not compressed when compressing through Gzip (Apache server)

I had https://developers.google.com/speed/pagespeed/insights/ provide suggestion that I enable GZIP compression to speed up www.russian-detective.com loading speed. I noticed that most files that needed compression were images, .js, and .css files.

Online research suggested adding the following to the htaccess file:



<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
</ifModule>


<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

After enabling the compressions, I re-checked the page through https://developers.google.com/speed/pagespeed/insights/, and the only compression errors remaining were for the .js files.

I did some research and found out that the .js files were failing to compress on many other sites as well (see pages here and here, for example), but the solutions provided there had to do with the some complicated server adjustment possibilities. I applied for help with the tech support guys at HostExpress, and they suggested some simple corrections to the htaccess file code instead. I tried their suggestion, and it seems to resolve the issue with the JS files not compressed when compressing through Gzip;

Here is the final version of the code:


<FilesMatch "\\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

<IfModule deflate_module>
<IfModule filter_module>
AddOutputFilterByType DEFLATE text/plain text/html
AddOutputFilterByType DEFLATE text/xml application/xml application/xhtml+xml application/xml-dtd
AddOutputFilterByType DEFLATE application/rdf+xml application/rss+xml application/atom+xml image/svg+xml
AddOutputFilterByType DEFLATE text/css text/javascript application/javascript application/x-javascript
AddOutputFilterByType DEFLATE font/otf font/opentype application/font-otf application/x-font-otf
AddOutputFilterByType DEFLATE font/ttf font/truetype application/font-ttf application/x-font-ttf
</IfModule>
</IfModule>



 As I said, so far so good, and the Google Insights  and http://tools.pingdom.com/ seems to be happy with the changes. No further compression errors found. Yey to the tech support guys at HostExpress (I love them to death)!
 

No comments:

Post a Comment