Référencement naturel : Google pénalise les lenteurs d’affichage

Voici 10 conseils techniques pour accélérer l’affichage des pages-web et éviter les pénalités Google pour lenteurs d’affichage.

Il est erroné de croire que l’Internet haut débit est véritablement généralisé en France. Un quart de la population est limité à des abonnements ADSL un mégabit (128ko/s). Dans les entreprises, les connexions sont partagées : à certains horaires, chaque salarié ne dispose parfois que d’un débit médiocre. L’Internet mobile haut débit se développe mais la vitesse reste très variable selon la localisation géographique. Enfin, l’affichage des sites web est ralenti par les nombreux programmes connectés installés par les internautes : modules de mise à jour, logiciels de discussion comme skype, plugins des navigateurs, virus, trojans, antivirus…
Pour un e-commerçant, s’adapter aux internautes moyen et bas débit est un facteur-clé de réussite. De façon directe, c’est pouvoir vendre à des clients supplémentaires particulièrement délaissés par la concurrence. Indirectement, c’est aussi éventuellement pouvoir bénéficier de meilleures positions Google (car les fortes lenteurs d’affichage qui font fuir les internautes pourraient être pénalisées par Google).

1/ Faire appel aux librairies Javascript publiques hébergées par les CDN
Technologiquement, la plupart des sites internet (créés par des professionnels) utilisent les mêmes librairies javascript : jQuery, Prototype, Script.aculo.us, MooTools… 
Il est possible de déléguer l’hébergement de ces librairies populaires à des serveurs publics gratuits dont c’est la vocation. Nommés “Content Delivery Network” (CDN en abrégé) , les 2 acteurs majeurs de l’hébergement gratuit de librairies javascript sont Google et CloudFare
Les bénéfices sont nombreux pour les entreprises qui utilisent les CDN :   
  • les CDN disposent de connexions très haut débit pour distribuer les librairies et s’adaptent au pays de l’internaute pour accélérer la vitesse (via des serveurs de proximité),
  • les librairies des CDN sont parfois déjà en cache dans les navigateurs-web des internautes (on gagne alors jusqu’à 1 seconde d’affichage rien que pour jQuery par exemple),
  • les librairies des CDN sont doublement compressées (au niveau algorithmique et au niveau protocole http en GZIP),
  • ne pas avoir à fournir les librairies javascript (relativement imposantes) soulagent les serveurs des boutiques en ligne : ils sont plus à même de délivrer rapidement les autres ressources d’affichage (pages html, images, feuilles de style css…).
2/ Regrouper les feuilles de style CSS en 1 seul fichier
Pour les serveurs d’hébergement (Apache, Microsoft IIS, Nginx…), chaque demande-fichier de la part des navigateurs-web mobilise des ressources techniques : tunnel http, thread, mémoire, écriture de logs, compression à la volée éventuelle… Dans la mesure du possible, il est préférable pour l’affichage que les éditeurs de sites internet essayent de concaténer les différentes feuilles de style CSS en 1 seul fichier unique. Pour préserver la simplicité du travail des techniciens en charge de la maintenance, le regroupage pourra être déployé uniquement sur le serveur de production.
Quant aux scripts Javascript (hors librairies), le même travail de concaténation est à prévoir pour améliorer les performances d’affichage.

3/ Limiter l’utilisation des langages de programmation server-side
Les langages de programmation server-side (php, .net, asp, servlet java, jsp, coldfusion, perl, ruby, python…) permettent de créer des applications-web complexes. Mais ils sont “gourmands” en ressources-mémoires pour les serveurs. Il convient de limiter leurs utilisations au strict nécessaire.
Hors besoins techniques rares, les langages server-side ne doivent absolument pas être utilisés pour délivrer les éléments d’affichage habituellement “statiques” tels que les images, les feuilles de style CSS, les scripts Javascript... 
L’erreur est relativement fréquente et la vérification n’est pas aisée : il est nécessaire de contrôler l’ensemble des possibilités de paramétrages du serveur (htaccess, vhost et httpd pour Apache par exemple). Contrôler les entêtes http (à la recherche de signature de langage server-side) peut aussi être une piste de détection.
Une vigilance maximale sera à appliquer pour les programmes gratuits téléchargeables sur Internet (cms, blogs, forums, logiciels e-commerce...) : leurs programmes d’installation n’hésitent pas à modifier les configurations-serveurs pour leurs besoins qui ne sont pas orientés vers la performance en général.

4/ Créer une version statique de la page d’accueil dynamique
Pour une entreprise à forte notoriété, la homepage du site internet concentre (à elle seule) jusqu’à 40% du travail effectué par le serveur d’hébergement. Il suffit donc de dupliquer le contenu de la page d’accueil dynamique (délivrée par php, .net, coldfusion…) pour créer une page d'accueil non-dynamique (dite “statique”) performante pour l’affichage et soulageante pour le serveur.
Sur le plan technique, une conséquence majeure est à prendre en compte : les pages statiques ne gèrent pas les sessions. Si l’utilisation de sessions est absolument nécessaire pour la homepage, on pourra tout de même déléguer cette fonctionnalité à une page dynamique (sans contenu) appelée en Ajax de manière désynchronisée. En alternative simple, on pourra aussi envisager de fonctionner avec des cookies-javascript en attendant que l’internaute navigue sur une page dynamique.

5/ Intensifier le cache-navigateur des internautes
Tous les navigateurs-web (IE, Firefox, Chrome, Safari, Opéra…) pratiquent la mise en cache des documents téléchargés : pages html, fichier pdf, images, animations flash, feuilles de style…  Cette mise en cache permet d’améliorer le confort des internautes qui fréquentent à plusieurs reprises le même site web : à la deuxième visite, un site internet s’affiche plus rapidement qu’à la première visite.
Pour les webmasters, il est possible d’intervenir techniquement pour intensifier la mise en cache (qui peut aller de quelques minutes à plusieurs années). Dans le concret, il faut renseigner des entêtes http ou des métatags équivalents spécifiques : Cache-Control, Expires ou Pragma (obsolète).
Au niveau contrainte, le procédé nécessite des adaptations pour les gestions des sessions et la mise en place d’un système de versionning (capable de stopper le cache en cas de mise à jour d’un fichier). Mais les gains de performance peuvent être considérables au final : jusqu’à 70% d’allégement du travail à fournir pour le serveur d’hébergement.

6/ Accélérer les échanges avec les bases de données
La grande majorité des sites internet stocke les données-utilisateurs et les donnnées-produits dans des bases SQL (Oracle, MySQL, Miscrosoft Sql Server, PostgreSQL…). C’est les dialogues techniques avec ces bases de données qui sont la source d’une bonne partie des lenteurs d’affichage sur le web.
De nombreuses solutions technologiques existent pour les entreprises qui souhaitent pallier le problème :   
  • intervenir sur le paramétrage des bases de données : ressources-mémoires allouées, déclaration de clés primaires et de multiples clés d’indexations, load-balancing...
  • intervenir sur le code-source de l’application : éviter les connexions inutiles, fermer les connexions au plus vite, mettre en cache le résultat des requêtes SQL (pour limiter le nombre de tâches répétitives à traiter), utiliser un pool de connexions persistantes, optimiser les requêtes SQL, les jointures, les sous-requêtes et les triggers pour la performance...
  • utiliser les bases de données nouvelle génération (NOSQL) mieux adaptées aux besoins de rapidité des sites internet : MongoDB, Cassandra, Memcached, HBase, Elasticsearch, Redis, Solr...
  • utiliser des “flat-database” pour les données en lecture seule.
7/ Mettre en place une compression GZIP
Internet permet de compresser les données pour échanger de gros volumes d’informations en peu de temps. Bien utilisé, ce procédé peut être mis à profit pour accélérer l’affichage des pages-web.
Pour les sites Internet peu fréquentés, les modules de compression à la volée proposés gratuitement par les serveurs web suffiront (comme Mod-Gzip ou Mod-Deflate pour Apache).
Pour les sites internet à très forte fréquentation, compresser à la volée est insatisfaisant : des solutions professionnelles qui mixent détection des possibilités du navigateur, mise en cache, gestion des sessions et compression sont nécessaires.
Cependant, les images doivent être exclues du mécanisme de compression : c’est généralement contre-productif (car les formats d’image sont déjà des algorithmes de compression). Il est préférable d’essayer de diminuer raisonnablement la qualité des images avec les outils de retouche-photo comme Photoshop ou The Gimp.
 
Une boutique en ligne qui ajoute et supprime de façon régulière des références-produits se retrouve à terme avec à un volume important d’erreurs 404 (documents non trouvés).
Toutefois, les messages “Cette page n’existe plus” (ou “Le produit recherché n’est plus disponible”) font fuir les internautes et dégradent l’image de marque du vendeur.
Du coup, autant privilégier la performance pour ces pages à faible valeur ajoutée:
  • sur les images, les css et les javascripts en erreur 404, il est inutile d’afficher un message personnalisé (celui par défaut du serveur suffit),
  • sur les pages html en erreur 404, il est opportun d’éviter de recourir à des langages de programmation server-side et opportun de rediriger vers la page d’accueil ou une page pertinente,
  • pour éviter la nuisance d’erreurs 404 en cascade (boucle sans fin de pages 404 qui appellent elles-mêmes d’autres pages 404), il convient d’activer un cache-navigateur durable dans les entêtes http des page d’erreurs,
  • certaines pages d’erreur 404 pourront être désindexées des moteurs de recherche, via des directives-robots noindex, pour économiser du travail au serveur d’hébergement (notamment les pages qui ne re-serviront plus jamais à l’avenir).
9/ Déléguer une partie de l’hébergement à un Cloud
Les clouds (d’hébergement de fichiers) sont des solutions haute performance pour stocker et partager des documents sur internet. Les acteurs majeurs de ce domaine d’activité sont des entreprises d’envergure mondiale : Amazon S3, Cloudfront, Microsoft Azure, CloudFlare, RackSpace, Google Cloud Storage...
Élaborés par des experts de très haut niveau, ces hébergeurs “dernière génération” donnent satisfaction aux besoins spécifiques des entreprises de l’e-commerce et des startups à forte croissance :
  • ils ont des infrastructures internet surpuissantes;
  • ils s’adaptent aux pays des internautes pour accélérer la vitesse;
  • ils gèrent proprement la compression des données (sauf Google Cloud Storage);
  • ils utilisent des bases de données NOSQL et des serveurs de load-balancing…
Cependant, le prix de ces clouds professionnels est à la hauteur de leurs performances : relativement élevé. Pour les TPE et PME à petit budget, l’astuce est de ne faire héberger par un cloud qu’une partie de son site internet : les images par exemple. Ainsi, le serveur d’hébergement habituel est délesté d’une grande partie de son travail mais les tarifs du cloud restent raisonnables (moins de 10€/mois si du cache-navigateur durable est activé dans le paramétrage des fichiers hébergés).

10/ Venez participer au débat et faire part de vos expériences
Cette chronique est basée sur les consignes techniques (préconisées par Google) qui indiquent de surveiller les performances des sites et d’optimiser les temps de chargement : https://support.google.com/webmasters/answer/35769?hl=fr&ref_topic=6002025
Cet article est aussi lié aux explications des pénalités Google détaillées au paragraphe N°2 de cet autre article : http://www.journaldunet.com/solutions/expert/58057/penalite-google---des-victimes-parmi-les-acteurs-majeurs-de-l-e-commerce.shtml 
Toutefois, les solutions proposées dans cette page sont innovantes, extrêmes (jusqu'à 90% de réduction de la charge-serveur), expérimentales, perfectibles, très difficiles à mettre en place et controversées :
  • Elles ont fait leurs preuves pour des boutiques en ligne à activité saisonnière qui avaient tendance à perdre des ventes à cause de pics de trafic saturant les serveurs.
  • Pour des sites internet à forte fréquentation générant des revenus publicitaires, ces solutions ont aussi été profitables (en audience et en positions Google).
  • Mais elles ont échoué à faire progresser significativement les positions Google d’un blog de type WordPress.
L’auteur de cet article vous invite à partager vos avis (favorables ou défavorables), vos expériences et vos techniques d’optimisation dans les commentaires de cet article : venez participer au débat! 
Avez-vous essayé les 9 conseils proposés ? Sur quels sites ? Pendant combien de temps ? Pour quels résultats au final ?