Le Rayon UX

La radiographie du Web en temps presque réel / thème en chantier (je m'appelle Teuse)

Sur la performance Web et l'expérience utilisateur

Depuis deux ou trois ans, la notion de performance des sites et des applications Web a fait son entrée dans l’expérience utilisateur, mais également dans le référencement. La prise de conscience de la nécessité d’un Web “qui ne rame pas” est arrivée d’un peu tous les côtés, jusqu’à devenir une préoccupation majeure des éditeurs, à mesure que les utilisateurs s’habituaient à obtenir leurs pages quasi instantanément.

Contrairement aux standards du Web et au couple (X)HTML/CSS VS tableau + style inline, les préoccupations autour des performances ont pris très rapidement car elles avaient un impact financier direct : une étude de Forrester montre ainsi qu’un temps de chargement de plus de 3 secondes entraîne 40% d’abandon de panier en plus.

Comment en est-on arrivés à ce “culte de la performance” ?

Oubliez les histoires de “Web temps réel”, instantanéité de l’information et autres flans marketing que l’on nous sert avec plus ou moins de conviction depuis deux ans, ça n’a rien à voir avec la choucroute.

Pour comprendre ce besoin de besoin de performance, il faut plutôt se tourner vers l’adoption du Web en tant que média de masse, et son intégration dans notre vie quotidienne. Tant que le Web restait quelque chose d’expérimental – aux yeux du grand public – une simple source d’informations supplémentaire ou remplaçait un usage existant, les utilisateurs acceptaient la lenteur puisqu’elle affectait quelque-chose considéré comme superflu. Au contraire, aujourd’hui, le Web s’est intégré à des usages existants au point de les transformer : presse écrite, courses au supermarché, communication… Dans le même temps, les entreprises ont commencé à remplacer leurs applications informatiques traditionnelles par des applications Web, faisant de ce dernier un composant stratégique de leur fonctionnement. Ce qui était superflu est devenu la norme – le nécessaire – et l’attente n’est plus tolérable.

À cela sont venus s’ajouter deux éléments :

Le débit disponible sur les lignes domestiques a explosé en quelques années, la norme passant de 512Kb/s à 8Mb voire 20Mb, rendant la lenteur de chargement “anormale”. Comme si je faisais de meilleures photos parce que mon appareil numérique avait plus de mégapixels…

L’e-commerce a révolutionné la vente par correspondance en supprimant l’intermédiaire de l’envoi du courrier dans l’acte d’achat. Même si la vente se faisait également par téléphone depuis plusieurs années, l’opératrice rajoutait un intermédiaire que le Web a définitivement supprimé.

Dans l’expérience utilisateur, la notion de performance s’exprime de plusieurs manières différentes :

  • Le temps nécessaire à générer et charger une page Web.
  • Le temps nécessaire à télécharger tous les éléments de la page.
  • La fluidité du navigateur dans la manipulation des éléments de la page.

Le temps de génération de la page et de chargement des composants par le client peuvent être facilement mesurés. Ces temps de chargement doivent évidemment prendre en compte le débit disponible entre le client et le serveur. En 2010, mesurer la rapidité d’une page à l’aune d’un modem 56K n’est peut-être plus vraiment nécessaire, même si…

Plusieurs outils sont disponibles pour mesurer ces éléments, à commencer par le très pratique Firebug, dont la section network donne un aperçu très précis de la séquence de chargement de la page. Deux extensions pour Firebug sont également disponibles, qui interprètent les résultats du chargement de la page à l’aune d’une série de bonnes pratiques, sans se baser sur la vitesse de chargement : Yslow, de Yahoo! et Page Speed de Google. Vous pouvez également tester votre site directement en ligne avec Gmetrix qui offre un tableau comparatif des résultats obtenus par les deux outils.

Gmetric

Les bonnes pratiques de Yslow et de Google Page Speed sont toutefois à relativiser : ce sont des guides généraux qui ne s’appliquent pas forcément à tous les sites Web, il ne faut donc pas les prendre au pied de la lettre, et certaines peuvent même aller à l’encontre des effets désirés. La mise en place d’un CDN, par exemple, peut ralentir les temps de chargement si les serveurs du CDN sont situés trop loin du client ou sur des lignes de transit pourries.

Depuis qu’il a introduit le temps de chargement dans son algoritme, les Google Webmaster Tools proposent un graphique résumant les temps de chargement moyens des pages d’un site, accompagné de conseils d’optimisation des pages les plus significatives.

Temps de chargement des pages selon GWT

Ce graphique a pour intérêt qu’il prend en compte le temps de chargement de toute la page, éléments externes compris (ce qui peut également être trompeur). Ici, par exemple, on constate un premier pic dans les temps de chargement le jour où j’ai installé le bouton Like de Facebook, et un second le jour où j’ai installé le bouton Open Dislike. Ces deux boutons ont beau être chargés dans une iframe, cette dernière rentre en compte dans le temps de chargement global de la page. Mais ce n’est pas vraiment mon propos, il existe énormément de très bonnes ressources sur le sujet, à commencer par le blog d’Eric Daspet, et pour le côté serveur, le MySQL Performance Blog.

Si les composantes serveur peuvent être calculées de manière assez précises, la fluidité d’une application côté client reste très subjective. Une application très rapide, mais à l’interface très chargée paraîtra plus lourde qu’une application un peu plus lente, mais un peu plus simple. L’introduction de vidéos, d’objets Flash et d’effets Javascript dans les pages a eu pour effet d’en alourdir le fonctionnement côté client, les navigateurs anciens pouvant avoir du mal à interpréter le contenu de la page, et notamment les interactions entre le Javascript et le DOM. C’est la raison pour laquelle il est très important de bien répartir la part de glitter et de purement fonctionnel.

Une fois encore, les bonnes pratiques sont à aller chercher du côté des sites de vente en ligne, Amazon en tête. Le site utilise quelques effets, idéalement placés, essentiellement un menu déroulant, et de carousels. Chacun de ces éléments donne une impression de rapidité incroyable, y compris sur des navigateurs anciens, et le défilement de la page n’en est jamais ralenti. Les effets ne sont pas là pour faire joli, ils servent les objectifs business d’Amazon.

L’explosion du Web mobile a marqué un sérieux retour en arrière, notamment en termes de débits possibles et de ressources sur le client. Ce n’est pas vraiment étonnant, mais cette régression n’a pas vraiment eu les conséquences attendues. Au lieu de créer des versions mobiles de leurs sites ou applications Web très légères et optimisées, les éditeurs se sont tournées vers des clients spécifiques aux principaux systèmes d’exploitation mobiles : Android, Blackberry, Symbian, iPhone et Windows Mobile.

Ce n’est finalement pas vraiment étonnant : passer par une application permettait d’embarquer tous les composants structurels des pages sur le téléphone, et de limiter le téléchargement aux seules contenus à consulter. Cela permettait d’accélérer l’affichage des informations tout en économisant les forfaits data des utilisateurs. Cela prend également en compte le fait que les utilisateurs restent globalement peu habitués à utiliser un navigateur sur leur téléphone mobile, alors que la présence d’applications n’est plus une nouveauté depuis longtemps. Il reste qu’entre une ergonomie souvent douteuse et les lenteurs inhérentes à la plate-forme d’utilisation, l’expérience utilisateur est très loin d’être satisfaisante.

  • Par Eric 06/06/2010 at 21h39

    En fait étonnamment ce n’est pas l’augmentation des débits qui rend l’utilisateur impatient. Depuis pas mal d’années en France la situation n’a que peu évoluée. Pire, dans les faits, entre une ligne ADSL à 4Mb/s et une ligne ADSL à 20Mb/s, il n’y a que très peu de différence de performance lors d’un surf classique.

    Ce qui est arrivé c’est aussi que les pages sont de plus en plus lourdes. En quelques années on augmente quasiment de moitié le nombre de composants par page. Au final on charge les pages plus rapidement que du temps des modem RTC 56k, mais pas tant que ça.


  • Par Phenix 07/06/2010 at 10h05

    Je pense qu’il est encore un peu tôt, surtout en France, pour parler d’une réelle prise de conscience de l’importance des performances web pour la majorité des éditeurs. Les mentalités évoluent et, comme cela s’est produit pour les métiers d’ergonome web et de référenceur, je suis persuadé que d’ici quelques années (et j’espère le plus tôt possible), le métier “d’optimiseur web” aura toute sa place dans les équipes chargées d’éditer les sites Web.


  • Par Johan 07/06/2010 at 10h53

    Très bon article, en particulier sur la partie d’Amazon qui ajoute des fonctionnalités “glitter” mais pour l’utilisateur. A trop vouloir faire dans les effets on peut perdre les utilisateurs dans leur but initial -> Obtenir des informations sur un site.

    @Eric : Oui je suis d’accord, les pages des sites webs deviennent plus lourdes (en particulier sur les blogs), j’ai vu un blog de design francais très connus avoir une home peser plus de 1,5 Mo…

    @Phenix : Je ne sais pas si Optimisateur Web deviendra un métier mais aujourd’hui dans la société pour laquelle je travaille, les performances deviennent vraiment importantes aujourd’hui. On essaye d’améliorer les performances générales mais comme beaucoup de sites, on est bloqués par les publicités qui sont obligatoires mais qui bloquent les performances à cause de “document.write” placé partout sur les pages… En tout cas, améliorer les performances et les maintenir à un niveau stable est vraiment un défi, je m’en rend compte avec mon blog…


  • Par Frédéric de Villamil 07/06/2010 at 18h11

    @Eric : effectivement les pages sont de plus en plus lourdes, mais combien de fois j’ai entendu des gens râler en mettant leur connexion en cause…

    @Phenix : pas question d’optimiseur Web, en revanche, des développeurs sensibilisés à ces problématiques, oui. Dans le cas contraire, ce sera une perte de temps catastrophique pour les sociétés.


  • Par Phenix 07/06/2010 at 20h41

    Je pense au contraire qu’on ne peut pas demander au développeur de savoir gérer le référencement, en gardant une expérience utilisateur optimale et des performances optimisées, tout en faisant son boulot le mieux possible. Ceux-ci doivent y être sensibilisés pour pouvoir comprendre “pourquoi” le référenceur demande une redirection 301 plutôt qu’une 302 ou demande que les scripts JS soient minifiés, mais l’optimisation des performances demande une expérience et des connaissances qui pourraient en faire un métier propre.

    Je vois plus l’optimiseur web comme une personne capable d’analyser un site, d’en trouver les points faibles et de les corriger puis de monitorer régulièrement l’état de son site. Et avec tout ce travail, il y a vraiment de quoi remplir des journées :)


  • Par Pierre 14/06/2010 at 09h12

    Article passionnant encore une fois. C’est vrai que le web devient un point central (peu banal pour un réseau décentralisé) d’échange entre entreprises et pour le e-commerce.

    Le poids des pages est important. Depuis quelques temps on assiste à la mise en place de site/plateforme web qui s’alourdissent avec le temps. Le socle lui est optimisé mais les pages sont chargé en média et en éléments externe qui ralentissent le tout.

    En temps que développeur il est peu évident de tout concilier (code propre, extensible, évolutif, optimisé, respectant les contraintes du clients, etc.) mais cela doit faire partie de nos pré-occupations.

    Quand j’interviens en entreprise (au moins éditrices du site internet de leur société), les personnes présentes comprennent que trop de temps d’attente = perte de clients potentiel. Et donc c’est un réflexion qu’on tente d’inclure en amont de la réalisation d’un nouveau projet. Je pense qu’en expliquant pourquoi c’est important les clients sont plus réceptif que si on leur dit que c’est notre métier et qu’ils n’ont pas à en savoir plus. :)

    Pierre


  • Par LENOIR 16/06/2010 at 15h40

    Bonjour,

    petite coquille dans l’article, ce n’est pas “GMETRIX” mais “GTMETRIX”, erreur reproduite dans le newsletter de ce jour du JdNet

    Christophe


Commentaire Sur la performance Web et l'expérience utilisateur