Activez le cache du navigateur
Activer le cache du navigateur est l'une des façons les plus faciles pour améliorer de façon significative les performances d'un site, quelque soit le CMS ou système en place, aussi assurez vous de l'utiliser. Le cache du navigateur aide à améliorer le temps de chargement de votre site (qu'il soit sous Joomla ou non) en utilisant les ressources / fichiers de cache du navigateur des internautes (il est différent du "Cache du navigateur" du plugin Système - cache !).
Ce que vous avez à faire est simplement de spécifier une durée d’expiration en secondes / minutes / jours ou semaines pour certains type de fichiers tels que images, CSS ou Javascript. Tant que leur durée d'expiration ne sera pas dépassée, ces fichiers stockés dans le cache du navigateur ne seront pas téléchargés de nouveau ce sont ceux précédemment téléchargés qui seront utilisés.
Bien-sur il y a le risque que ces fichiers ait été modifiés entre temps, et que ces changements ne soient pas pris en compte, mais pour la plus part des sites ceci ne devrait pas être un problème. Vous pouvez préciser la temps d’expiration par type de fichiers, ainsi pour les fichiers qui doivent changent souvent vous choisirez un temps d’expiration plus court que pour ceux qui changent rarement. Les fichiers HTML doivent avoir un temps d'expiration très cours afin de montrer le contenu mis à jour, contrairement aux fichiers Javascript qui ont peut de chance de changer, à moins que vous ne les modifiez dans un but précis, ou lors de mises à jour importantes.
Créez des règles d'expiration dans votre .htaccess
Pour préciser ces règles d'expiration, vous devez modifier votre fichier .htaccess. Dans le cas de Joomla, dans un premier temps vous devez renommer votre fichier htaccess.txt en .htaccess puis activer Réécriture au 'vol' des URL dans la Configuration de votre site (rubrique Paramètres SEO). Si vous utilisez un autre CMS (comme WordPress), vous trouverez généralement le fichier .htaccess à la racine de votre site. Dans le fichier .htaccess vous allons spécifier des règles de ce type :
- Etag : informe le navigateur que les images ont déjà été téléchargées et ne doivent pas être rechargées
- Expires headers : même fonction que le Etag mais plus spécifique par type de fichiers
- AddOutputFilterByType DEFLATE : "minify" le HTML en en retirant les espaces
La dernière règle ne contrôle pas les fichiers mis en cache, mais il compresse certains types de fichiers. D'un point de vue de l'activation du cache de navigateur il n'a dons aucune influence, mais autant l'inclure tant que nous modifions notre fichier .htaccess.
Maintenant nous allons détailler ces règles. Il y a bien des façons de spécifier ces règles, tout dépend de quels types de fichiers vous utilisez sur votre site, et des dates d'expiration que vous souhaitez préciser. Un exemple simple pour commencer peut être celui-ci :
<IfModule mod_expires.c>
FileETag MTime Size
AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"
ExpiresByType application/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
</IfModule>
Vous pourriez améliorer ce code et y ajouter d'autres règles pour d'autres types de fichiers qu'utilise votre site, tel que .mpeg, .woff, etc., ou changer les temps d'expiration selon vos besoins.
Notez que votre serveur doit avoir le module mod_expires d'Apache activé. Pour des raisons de sécurité ce code inclus la condition If, car sans elle, si votre serveur ne supporte pas mod_expires, il risque de se crasher. Mon propre localhost sur mon PC ne le supporte pas, cette condition me permet donc de ne pas rencontrer de problèmes lorsque je restaure un site en local à des fins de test. Avec la condition if, ce code ne s'exécute pas tout simplement.
Sur le site docs.joomla.org vous trouverez un exemple plus avancé de .htaccess (qui inclus beaucoup de règles de sécurités).
Avant de faire des changements au .hatccess, faîtes en une sauvegarde, et assurez-vous de faire des tests complets après l'avoir modifié. Vérifiez la vitesse de téléchargement de votre site Joomla avant & après modifications afin d'identifier toutes améliorations.
Cet article est une traduction libre du tutoriel de Simon Kloostra : Leverage browser caching