Optimisation temps de chargement d’un site : définir une date d’expiration

Publié le 20 avril 2011 - Developpement Web, Référencement SEO. Tags : ,

Google prendrait de plus en plus en compte le temps de chargement des sites dans son algorithme. Info ou intox, ce qui est sur c’est qu’optimiser le temps de chargement de son site ça ne mange pas de pain, alors pourquoi s’en priver.

Petit aparté avant de commencer : si vous voulez calculer le temps de chargement de votre site, Webwait fait ça très bien, mais vous pouvez tout aussi bien utiliser excellentissime plugin pour Firefox Firebug (onglet Réseau) si vous voulez connaitre les détails des différents temps de chargement de vos fichiers.

Entrons maintenant dans le vif du sujet : l’une des principales causes du ralentissement d’un site internet, de gaspillage de bande passante, et potentiellement donc, de positionnement dans les SERPs, c’est la date de validité du cache. Il faut savoir que certains types de fichiers peuvent rester en cache dans le navigateur du visiteur, afin d’accélérer le temps de chargement d’un site (en gros pas besoin pour le navigateur de récupérer tous vos fichiers pour afficher votre page, ils sont déjà stockés en mémoire). Le problème, c’est que le navigateur doit vérifier la validité du cache. Du coup, si vous n’indiquez pas de date d’expiration dans vos entêtes, vous augmentez considérablement le nombre de requêtes envoyées par le navigateur sur votre site… pour rien. Pour palier à cela, plusieurs possibilités s’offrent à vous, mais la plus simple et la plus pratique pour la plupart des fichiers consiste à ajouter quelques lignes dans votre fichier .htaccess pour utiliser le mod_expire de votre serveur apache.

En règle générale, la plupart des serveurs mutualisés permettent ce type de manipulation. Ajoutez donc ces quelques lignes pour fixer la date d’expiration de vos images, feuilles de styles et javascript à J+30 jours :

ExpiresActive On
ExpiresDefault A0
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/ico A2592000
ExpiresByType text/css A2592000
ExpiresByType text/javascript A2592000

La lecture de ce petit bout de code est très simple : <IfModule…>…</Ifmodule> consiste à n’activer les paramètres définis que si le module est disponible sur le serveur, ExpiresActive On est utilisé pour activer le mod, et ExpiresDefault A0 définit la date d’expiration par défaut du cache. Toutes les autres lignes servent à définir une date d’expiration par type de fichier. La date d’expiration à proprement parler est définie par les chiffres présents à droite de Axxx. Il s’agit de la date d’expiration exprimées en secondes. Ici, il faut donc lire A2592000 de cette façon : secondes * minutes * heures * jours (60*60*24*30).

Concernant les fichiers PHP il est à mon sens plus simple de passer par la fonction header().


Articles sur ce thème :