Améliorez le temps de chargement de votre site Joomla! en modifiant le fichier .HTACCESS

Written by | 30 March 2015 | Published in 2015 April
Vous ne vous l'êtes jamais avoué mais votre site Web Joomla! est tout de même un peu long à charger. Ce sont ces quelques secondes de trop qui finissent par agacer l'internaute au point qu'il en arrive à fermer rageusement votre page. Saviez-vous que ce n'est pas si compliqué de réduire ce temps de chargement ? Pour ne plus énerver les internautes, pour améliorer votre taux de rebond et pour ne pas pénaliser votre classement Google, je vous propose de voir comment améliorer le temps de chargement de votre site Joomla! en modifiant simplement votre fichier .HTACCESS  

C'est quoi le fichier .HTACCESS ?

Le fichier .HTACCESS est un fichier utilisé sur les serveurs Apache pour configurer les programmes du serveur. Concrètement, ce fichier indique au serveur les fonctions qu'il doit activer ou désactiver. Par exemple, un fichier .HTACCESS permet d'activer la redirection d'URL, la réécriture d'URL, la protection des zones sensibles de votre site Web ou même de bloquer certaines adresses IP.

Soyez très prudent en modifiant ce fichier car la plus petite erreur de frappe pourrait entraîner de sérieux problèmes pour le site. Ces erreurs peuvent aller de l'indisponibilité d'une page jusqu'à rendre l'ensemble du site inaccessible.

Travaillez toujours en ayant fait une sauvegarde du fichier d'origine et testez les modifications apportées afin de vous prémunir contre les éventuels problèmes que vous pourriez involontairement causer.

Il existe d'autres types de serveurs tels que Nginx, IIS de Microsoft et GWS de Google. Cependant, Apache étant sans doute le type de serveur le plus répandu, c'est la raison pour laquelle nous aborderons cet article avec cette configuration.

 

Pourquoi dois-je améliorer le temps de chargement des pages de mon site Joomla! ?

Précisons d'abord qu'un site Joomla! n'est pas lent en soi. Ce qui rend un site Web lent à charger, c'est un ensemble de facteurs tels que le poids du contenu, le serveur sur lequel il est hébergé, un grand nombre d'appels vers des fichiers CSS et JavaScript, etc. Selon moi, il y a deux raisons principales pour lesquelles vous devez essayer d'améliorer les temps de chargement de votre site : l'expérience utilisateur et votre classement dans les moteurs de recherche.

L'expérience utilisateur
D'une manière générale, la plupart des internautes n'aiment plus attendre de voir une page Web s'afficher. Avec les connexions "haut débit" dont nous disposons aujourd'hui, une page doit pouvoir s'afficher en moins de 3 secondes. Il va de soi que plus le navigateur chargera rapidement une page, meilleure sera l'expérience de l'utilisateur.

Cela peut avoir un impact direct sur les ventes du site, sur les abonnements au blog et à la newsletter, sur le retour des visiteurs sur le site, etc. Maintenant avec les vitesses de connexion Internet, si votre site Web est plus long à s'afficher que vos concurrents, cela peut effectivement remettre en cause l'engagement des internautes.

Classement
Il existe plusieurs raisons pour lesquelles une page se chargeant rapidement peut améliorer directement et indirectement le classement de votre site Joomla! :

  • Exploration plus rapide
    Si le robot du moteur de recherche peut explorer votre site rapidement, il pourra indexer toutes vos pages et tout votre contenu sans perte de temps. A l'inverse, une analyse plus lente peut conduire à ce que des pages importantes ou un contenu pertinent puissent être manqués. Cela peut donc diminuer vos chances d'avoir un classement plus élevé.
  • Google aime ça
    (Depuis avril 2010, Google prend en compte la vitesse de chargement du site dans son algorithme de classement. Le temps de chargement est donc l'un des facteurs directs et peut avoir un effet sur votre classement dans les pages de résultat des moteurs de recherche. Et c'est encore plus important maintenant avec l'augmentation du nombre d'utilisateurs mobiles pour naviguer sur Internet.
  • Réduire le taux de rebond
    Si votre site a un temps de chargement trop long, cela risque fort d'augmenter votre taux de rebond. C'est un des facteurs indirects que l'on peut citer. Dans ce cas, les utilisateurs reviendront sur les pages des résultats de recherche pour trouver un site plus rapide afin obtenir ce qu'ils cherchaient. Cela comptera comme un rebond, ce qui pourrait nuire à votre classement de recherche.

 

Comment pouvez-vous améliorer le temps de chargement en utilisant votre fichier .HTACCESS ?

Nous allons voir ensemble plusieurs solutions que vous pouvez utiliser pour améliorer vos temps de chargement grâce à votre fichier .HTACCESS.

Encore une fois, je recommande vraiment de sauvegarder le fichier d'origine et de tester votre site après chaque changement avant de finaliser toute mise à jour. Cela vous permettra d'éviter des problèmes inattendus qui peuvent survenir sur le site par des erreurs ou des fautes de frappe dans le fichier modifié.

 

Compression GZIP
Très logiquement, si l'on compresse des fichiers, cela les rend plus rapides à être transférés et chargés. Nous allons donc donner l'instruction à votre serveur d'activer la compression GZIP afin d'accélérer les temps de chargement. Pour ce faire, vous devez ajouter l'instruction qui suit dans votre fichier .HTACCESS :

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

Une fois que vous avez renvoyé le fichier .HTACCESS sur le serveur, vous pouvez utiliser cet outil pour vérifier que cela fonctionne. Cet outil indique également dans quelle mesure les fichiers sont compressés.

 

Forcer l'activation du cache du navigateur
Lorsqu'un navigateur accède à une page Web, il doit charger plusieurs fichiers qui ne changent que très rarement (certaines feuilles de style, le logo, etc.). Nous allons indiquer au navigateur d'enregistrer localement (sur l'ordinateur de l'utilisateur) ces fichiers. Cela signifie que la prochaine fois que l'utilisateur visitera votre site, le navigateur aura moins de données à télécharger pour afficher votre page.

Ajoutez le code ci-dessous dans le haut de votre fichier .HTACCESS :

## EXPIRES CACHING ##

ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"

## EXPIRES CACHING ##

Si vos fichiers changent plus fréquemment, vous devez alors adapter le code en indiquant par exemple "1 week" ou supprimer un type de fichier si vous ne souhaitez absolument pas le mettre en cache. Gardez en mémoire que si vous apportez ces modifications entre le moment où un utilisateur visite votre site et le moment où vous configurez la durée d'expiration du cache, il peut très bien ne pas voir la nouvelle version immédiatement.

 

Bloquer les bots de spam
Parfois, la vitesse de chargement peut être diminuée par la bande passante dont vous disposez auprès de votre hébergeur. Cela peut se produire si vous partagez le serveur de votre site Web avec d'autres (serveur mutualisé) mais également du fait du passage plus ou moins intensif des robots chargés de collecter des adresses email pour les spammeurs. Il y a 2 méthodes pour s'en débarrasser : les bloquer et les rediriger "très loin".

# Set spammers referral as spambot
SetEnvIfNoCase User-Agent ^$ bad_bot
SetEnvIfNoCase User-Agent "^AESOP_com_SpiderMan" bad_bot
SetEnvIfNoCase User-Agent "^Alexibot" bad_bot
SetEnvIfNoCase User-Agent "^Zyborg" bad_bot
# Set unfriendly referer as spambot 
SetEnvIfNoCase Referer darodar.com spambot=yes
SetEnvIfNoCase Referer 7makemoneyonline.com spambot=yes
## ajoutez-en autant que vous voulez

Order allow,deny
Allow from all
Deny from env=spambot

Lorsque le trafic arrive depuis un de ces sites, il est bloqué par le fichier .HTACCESS. Ainsi, le code HTML n'est jamais chargé et le script Google Analytics n'est pas activé. Cela vous évitera d'avoir des statistiques polluées par des données inutiles. D'ailleurs, il serait bon que Google Analytics sache éviter cela, de la même manière que GMail arrive à bloquer le spam....

 

Il existe d'autres solutions qui permettent d'améliorer plus ou moins significativement le temps de chargement d'un site Web Joomla! sans que cela ne nécessite de modification au niveau du serveur ou de vos fichiers. Parmi ces solutions, je vous recommande les 10 suivantes :

  1. Activer le cache de Joomla!
  2. Choisir un bon hébergeur,
  3. Privilégier un serveur dédié plutôt qu'un serveur mutualisé,
  4. Préférer un serveur situé à proximité de votre audience principale (évitez d'être hébergé en Australie si vous avez un site français, par exemple),
  5. Utiliser les services d'un CDN (acronyme de Content Delivery Network),
  6. Minimiser le nombre de redirection par page,
  7. Supprimer les extensions et tout le contenu inutilisé sur votre site,
  8. Quand cela est possible, supprimer les requêtes inutiles ou redondantes,
  9. Compresser vos images et utiliser une taille de fichiers qui soit appropriée,
  10. Recourir à des extensions d'optimisations présentes sur le JED telles que JCH-Optimize, JBetolo ou encore Yireo ScriptMerge.

Pour tester les temps de chargement de votre site Joomla! afin de voir combien chacune des modifications de votre fichier .HTACCESS vous fera gagner, vous pouvez recourir à des outils gratuits tels que Pingdom ou gtmetrix.

J'espère avoir attiré votre attention sur l'importance que vous devez accorder à l'optimisation de votre site Joomla! pour en tirer toute la quintessence. N'hésitez pas à commenter cet article si vous avez des questions sur le sujet.

 

Tagged under French
Daniel Dubois

Daniel Dubois

I started Joomla sitebuilding in 2007, without any knowledges about HTML , CSS or PhP. I am completely self taught !

Now, I try to help beginners by sharing my knowledge and giving advice. I am a proud and enthusiastic member of the Joomla Extensions Directory and a freaquent tweeter on all things Joomla.