mardi, 28 octobre 2014 00:00

.htaccess: Activer la compression gzip pour accélérer la navigation

Écrit par

Continuons dans le pratique avec le .htaccess. Après avoir vu la redirection, nous allons parler de compression et ceci afin d'alléger le poids des pages de vos sites web.

 

Si vous avez déjà utilisé un service d'analyse de performances comme par exemple GTMetrix, vous avez dû remarquer cette ligne "Enable gzip compression" dans le détail de l'analyse.

Si la ligne est rouge, ça veut dire que la compression n'est pas activée, or, elle est importante puisqu'elle permet notamment au serveur d'économiser précieusement sa bande passante.

Notez également que l'on peut lire à droite et à gauche que certains navigateurs ne peuvent pas gérer correctement le format gzip. C'est vrai, si on utilise Internet Explorer 6 ou bien quelque chose de plus ancien... Aujourd'hui, ce problème n'existe plus et tous les navigateurs gèrent parfaitement le gzip depuis plusieurs années.

Par contre, tout n'est pas tout rose, et il faut savoir que la compression consomme les ressources du CPU de votre serveur. Aussi minime soit-elle, la consommation de ressources vous posera des problèmes si vous êtes déjà dans le rouge. Il faudra alors penser à travailler sur l'optimisation de votre site, mais c'est une autre histoire.

Une fois ceci assimilé, sachez qu'il ne faut pas non plus tout compresser (ce serait trop facile). En effet, les images sont à proscrire du processus de compression. En principe, elles sont déjà compressées ! Inutile de perdre son temps à repasser dessus.

Ce qui nous intéresse réellement ce sont tous les scripts qui font un site soit le html, le php, le js, le pl, le css voire le txt. En fait, pour faire simple, tout ce qui contient du texte.

Passons maintenant aux choses sérieuses !

Tout d'abord, pour vous faciliter la vie, il existe un outil tout simple pour vérifier que la compression est activée sur votre site. Cliquez sur ce lien ou celui-ci et entrez-y l'adresse de votre site. Si il utilise déjà la compression, vous n'avez théoriquement besoin de toucher à rien (sauf si cela est géré par un plugin de votre CMS. Là ça peut être intéressant).

Apache 1.3 et supérieur

Ouvrez votre .htaccess ou alors créez un .htaccess chez votre hébergeur (à la racine) et insérez ces lignes:

<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>

Apache 2.0 et supérieur

Il existe une alternative pour les serveurs Apache 2.0+ et pour ceux pour qui la première méthode ne fonctionne pas. Il faut utiliser un autre module, deflate, ce qui va vous faire insérer à la place ceci:

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

Aujourd'hui, les 2 méthodes fonctionnent sur la plupart des serveurs. La seconde, utilisant Deflate est la nouvelle norme, donc n'hésitez pas à commencer par celle-ci.

Conclusion

Notez que passer par le .htaccess vous évite d'utiliser des plugins pour activer ce type de compression pour vos CMS.

Si ça fonctionne par le .htaccess, ne vous encombrez pas d'un plugin additionnel, Apache se débrouille très bien tout seul pour ce genre de tâches et ça vous fera un plugin de moins à devoir maintenir.

 

 

5 Commentaires

Laissez un commentaire

Assurez-vous d'indiquer les informations obligatoires (*).
Le code HTML n'est pas autorisé.