Améliorer les performances des sites web

La plupart des grands noms du web, du commerce électronique et de l’industrie des solutions de supervision applicatives s’accordent sur l’importance de l’impact de la performance des sites internet ou la performance applicative sur le revenu d’une entreprise dont le modèle économique repose sur Internet. D’après leurs analyses, un temps de réponse dégradé de quelques centaines de millisecondes peut pénaliser le revenu de l’entreprise, diminuer le taux de conversion ou augmenter le taux d’abandon.

A l’heure de la préparation de nos prochaines vacances nous avons choisi de tester le fonctionnement du site Internet d’une entreprise française du secteur du tourisme spécialisée notamment dans la location de séjour.

Notre première impression est que l’affichage des informations n’est pas optimal. Selon les analyses des cadors du secteur du e-commerce, il y a tout lieu de penser qu’un certain nombre d’internautes renonce à utiliser le site pour rechercher le lieu de leur prochaine villégiature non pas parce que l’offre de service est inadaptée mais uniquement à cause des temps de réponse du site. En effet, l’accès à la page d’accueil, simulé à partir d’un navigateur (IE8) situé à Paris, donne les résultats suivants.

Lors du premier accès à la page d’accueil, l’internaute voit s’afficher les premières informations après avoir attendu 4,8 secondes devant une page vide. La page d’accueil est entièrement affichée au bout de 7,4 secondes. Lors de la seconde visite la page d’accueil commence à s’afficher après 3,3 secondes, et il faut attendre 4,8 secondes pour qu’elle soit affichée complètement.

Quels sont les facteurs qui influencent ces temps de réponse et comment peut-on améliorer le rendu ?

L’extrait du graphe de chargement de la page présenté ci-dessous nous apporte quelques indications sur les causes de cette latence.

Notre premier constat est que l’invocation de l’url de la page d’accueil du site est systématiquement redirigée vers une autre page. Le code http 301 signifie que le document est déplacé de façon permanente. Dans cette illustration environ 671 ms ont été consacrées au traitement de cette requête dont une partie est inévitable (recherche DNS, établissement de la connexion) mais une autre n’a aucune valeur ajoutée (environ 400 ms).

La seconde requête représente environ 20% du temps d’affichage de la page (30% lors d’une nouvelle visite). Il s’agit de la récupération des informations présentées sur la page d’accueil. Pour réduire le temps de traitement de cette requête, il est nécessaire d’optimiser le code applicatif.

Lorsque la page d’accueil est visitée une seconde fois le navigateur essaye de recharger 80% du contenu qui est constitué essentiellement d’images, de librairies javascript et de contenu flash. Or ce type de ressources peut être mis en cache sur le navigateur de l’internaute et ne devrait pas être rechargé lors d’un nouvel accès (exception faite des contenus dynamiques). En fait la technique utilisée sur ce site consiste à positionner 2 attributs http (Last-Modified, ETag). Dans ce cas, le navigateur doit s’assurer que la ressource n’a pas été modifiée depuis la consultation précédente. Pour valider la fraîcheur de l’information, il exécute une requête conditionnelle qui s’exécute en moyenne, sur notre site de référence, en 100 à 150 ms. Sur cette seconde visite, il y a environ 50 requêtes http conditionnelles qui ne semblent pas avoir une réelle valeur ajoutée.

Le rendu de la page pourrait être encore plus optimisé en chargeant les librairies javascript soit en fin de section body soit en utilisant une technique de chargement asynchrone (les librairies ControlJS ou HeadJs permettent de mettre en place très rapidement cette optimisation). Une autre solution consisterait à utiliser un CDN (Content Delivery Network) supplémentaire pour favoriser le chargement en parallèle des ressources de type image, feuille de style, librairies javascript, contenu flash. Enfin, réduire le nombre de requêtes http en combinant les feuilles de style voire les images permettrait d’agir sur l’un des facteurs d’amélioration des performances les plus importants.

Ces techniques sont reconnues et utilisées par les techniciens des grands noms du web (Yahoo, Google, Compuware, …) pour améliorer efficacité de leurs sites. Il ne fait aucun doute qu’elles amélioreraient de façon spectaculaire les résultats de notre site témoin.

Publicités

A propos jlerbsc

founder of JavaPerf Consulting Http://www.jperf.com
Cet article a été publié dans performance. Ajoutez ce permalien à vos favoris.

Un commentaire pour Améliorer les performances des sites web

  1. CloudNetCare dit :

    Bravo pour cet article concret.
    Effectivement : 4,8 secondes devant une page vide, puis 7,4 pour que la page entière s’affiche c’est extrêmement long. A titre indicatif et même si ces comportements varient d’un secteur et d’un pays à l’autre, des études ont montré qu’un internaute sur 4 abandonne une page web dès la 4ème seconde de chargement.
    Une bonne optimisation passe par des tests précis et détaillés, idéalement des tests de charge qui vont permettre d’observer le comportement du site en conditions de trafic important.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s