Google mod_pagespeed
Posté le Saturday 10 November 2012 | Catégories : Optimisation
mod_pagespeed est un module pour Apache2 développé par Google afin d'accélérer l'affichage des sites web. Il se compose de plusieurs filtres parmi lesquels:
- combine_css combine plusieurs fichiers CSS en un seul afin de réduire le nombre de requêtes vers le serveur;
- inline_css écrit le contenu des petits fichiers CSS directement dans le code HTML;
- rewrite_images optimise les images à la volée;
La liste complète est disponible sur la page de documentation de mod_pagespeed.
L'installation est relativement simple:
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
sudo dpkg -i mod-pagespeed-stable_current_amd64.deb
sudo service apache2 restart
Certains filtres sont encore à l'état expérimental, ou peuvent causer des erreurs de rendu. Heureusement la configuration par défaut de mod_pagespeed utilise une liste de filtres (appelée "Core set") qui ne posent en principe pas de problème. Ils permettent malgré tout d'obtenir un gain de vitesse appréciable. Dans mon cas, le temps d'affichage de la première page, mesuré par webpagetest.org a diminué de 27% (de 3,3 secondes à 2,4 secondes).
Il est possible d'améliorer encore un peu le résultat en configurant mod_pagespeed pour recompresser à la volée les images JPEG. Un niveau de 85 est dans mon cas un compromis acceptable. Il faut pour cela modifier le fichier /etc/apache2/mods-enabled/pagespeed.conf:
ModPagespeedJpegRecompressionQuality 85
Puis redémarrer Apache...
Headers et PHP flush
La version actuelle semble cependant avoir un petit bug: sil vous utilisez la commande PHP flush() dans votre code, mod_pagespeed risque de supprimer certains headers important dans la réponse envoyée par le serveur au navigateur. Les headers "Setcookie" sont concernés, entre autres, ce qui rend impossible l'utilisation des cookies, mais aussi des sessions!