Comment mesurer l'impact de votre site Web ?

Mis à jour le 15 août 2007

Vous venez d'achever votre site Web avec beaucoup d'effort afin de le rendre le plus attrayant possible. Maintenant qu'il est online, vous aimeriez bien connaitre si tout cela a vraiment servi à quelque chose et si les netsurfeurs se délectent de votre oeuvre. Pour cela, il convient de mesurer exactement le traffic issu de votre site, il s'agit donc d'effectuer des statistiques de consultation.

De nombreux outils sont désormais disponibles variant du plus simple jusqu'aux produits commerciaux très onéreux. Il existe plusieurs manières plus ou moins complexes d'analyser le trafic d'un site Web.
La solution la plus simple est d'utiliser les services d'un site externe comme Google Analytics ou Xiti. Mais il faut modifier ses pages web pour y inclure un code qui effectuera une connection sur le serveur distant. Outre que cela ralentit l'affichage des pages (qui dépend de la charge du serveur distant), il n'est pas envisageable d'étendre cette méthode à tout son site Web. Néanmoins, cette méthode a l'avantage d'être très précise. Certains logiciels de stats ont d'ailleurs opté pour cette solution.

La méthode la plus complète consiste cependant à lire les fichiers de log crées par le serveur Web. En effet, lors de chaque requête d'un visiteur, le serveur ne se contente pas seulement d'envoyer le fichier demandé mais stocke aussi certaines informations dans son fichier de log. La plupart des providers fournissent ces fichiers de log.

[tableau comparatif entre les fichiers de log et les tags]
  Avantages Inconvénients
Tags - Simple
- Ne nécessite pas de calcul local
- Limité à qques pages
- Pas de controle fin
Fichier de log - Pas de dépendance d'un service externe
- Controle totale des stats
- Consomme du CPU
- Nécessite un acces aux log de votre serveur

Les formats utlisés

Ainsi la date de consultation, le nom du fichier, la taille du fichier, le nom de la machine sont en autres enregistrés par le serveur. Le format de ce fichier de log diffère suivant les serveurs utilisés mais le plus courant est le CLF (Common Logfile Format) comme son nom l'indique. A noter que Microsoft utilise son propre format bien évidemment non compatible avec le CLF !

Des variantes sont apparues au fur et à mesure que les besoins se faisaient sentir, ainsi successivement le ECLF (E pour Extended) qui contient des informations supplémentaires sur le navigateur utilisé ainsi que le système d'exploitation de la machine appelante, puis le NECLF (N pour New) avec encore davantage d'informations. Le format le plus courant est desormais le ECLF, l'origine des connections étant une information essentielle.

[tableau des différents types de format usités]
NECLF www.lyot.obspm.fr - - [01/Jan/97:23:12:24 +0000] (www.obspm.fr) "GET /~domisse/w3perl/docs/html/index.html HTTP/1.0" 200 1220 "http://www.lyot.obspm.fr/~domisse/" "Mozilla/4.01 (X11; I; SunOS 5.3 sun4m)"
ECLF www.lyot.obspm.fr - - [01/Jan/97:23:12:24 +0000] "GET /~domisse/w3perl/docs/html/index.html HTTP/1.0" 200 1220 "http://www.lyot.obspm.fr/~domisse/" "Mozilla/4.01 (X11; I; SunOS 5.3 sun4m)"
CLF www.lyot.obspm.fr - - [01/Jan/97:23:12:24 +0000] "GET /~domisse/w3perl/docs/html/index.html HTTP/1.0" 200 1220
IIS 3.0 129.142.90.150, -, 5/5/97, 14:33:27, W3SVC, RHINO, 194.182.141.6, 2601, 207, 1272, 200, 0, GET, /frabout.htm, -,
IIS 4.0 1998-01-06 19:05:37 193.149.100.108 - GET /images/ap.gif - 304 122 362 651 Mozilla/4.0+(compatible;+MSIE+4.0;+Windows+95) http://www.defle.montaigne.u-bordeaux.fr/

Pour le CLF, on trouve successivement le nom de la machine appelante, la date de la requête, la methode ainsi que la page appelee, le status de la requête et finalement la taille du fichier envoyé.

On peut trouver une multitude d'outils différents dans leur présentation, leur analyse ou ... leur vitesse d'analyse. En effet, chacun peut à loisir écrire de tel logiciel de manière assez simple car la difficulté n'est pas considérable. On peut regrouper ces logiciels en trois parties :

  • Les logiciels GPL/freeware de loin les plus abondants (sauf peut être sur Windows) et ...les plus utilisés de par le monde.
  • Les logiciels shareware proposant des possibilités plus évoluées ainsi qu'un support.
  • Les logiciels commerciaux très souvent onéreux et pas toujours à la hauteur en comparaison avec les logiciels gartuits. Ils utilisent parfois des techniques plus subtiles que le simple dépouillement d'un fichier de log mais ceci au prix d'une infrastructure un peu plus complexe à mettre en oeuvre. Mais les résultats sont d'autant plus précis.

Certains logiciels sont interconnectés à une base de données, ce qui permet dans ce cas d'effectuer des recherches plus poussées en effectuant des requêtes croisées. Nous nous bornerons pour le moment à des logiciels plus simples qui sont essentiellement basés sur l'exploitation d'un fichier de log issu d'un serveur Web.

L'unité de mesure :

Quelques définitions sont nécessaires avant d'aller plus loin. Il y a peu, l'unité pour connaitre l'affluence sur un site Web se mesurait en hits, un hit est une requête sur un fichier, quel qu'il soit, une page HTML, une image, un script... Pour glonfler artificiellement son site, le moyen le plus économique n'était pas d'amener davantage de visiteurs mais d'ajouter des images dans chacune de vos pages. Ainsi une homepage avec 5 images fait donc 6 hits (5 images + la page HTML)...

Une unité de mesure bien plus précise consiste à ne compter que les requêtes sur les pages HTML uniquement. Mais d'autres problèmes surgissent....avec les frames. Une frame est un document HTML qui contient d'autres documents HTML...ainsi une requête sur une frame aboutit en fait à plusieurs requêtes, autant que le nombre de pages HTML appelées par cette frame. De là à multiplier les frames ... Ceci dit, avec l'apparition des CSS, les sites en frames sont de moins en moins nombreux !

les proxy faussent tout ...

Un autre problème provient de l'usage des proxy. Un proxy est de manière simplifié un gigantesque cache où le serveur stocke les fichiers appelés. La première fois que vous appelez une page sur le réseau, votre proxy situé en amont de votre machine effectue en fait la requête pour vous et vous renvoie le fichier de manière transparente, et au passage stocke cette page sur son disque. Si vous rappelez cette page, le proxy va en premier lieu regarder si cette page existe dans son cache et si elle est récente. Si certaines conditions sont remplies, il vous renvoie directement la page, mais il peut aussi effectuer une requête au serveur distant pour juste lui demander si la page qu'il a dans son cache n'est pas trop obsolète. Si celle-ci a effectivement changé sur le serveur distant, votre proxy va la récupérer de nouveau et la stocker. Mais le proxy peut être configuré de telle sorte que si la deuxième requête est effectuée dans un temps inférieur à une valeur donnée, il ne cherche même pas à savoir si la page distante a changé ou pas. On sous-estime ainsi le nombre de requête à son serveur puisque certaines pages de votre site se trouvent sur différents proxy à travers le monde (chaque provider utilise son propre proxy pour alléger sa bande passante). Un moyen de contrer les proxy est d'utiliser des applets java qui ne peuvent pas être stockées sur le proxy.

Quelles sont les informations disponibles ?

Les statistiques seront bien sur dépendantes du format du fichier de log utilisé. Un bon logiciel sera capable d'extraire les informations quel que soit ce format.
Toutes les informations contenues dans ce fichier de log peuvent être combinées de manière différente afin de mettre en valeur tel ou tel paramétre de votre site. Les formats de visualisation peuvent donc être très nombreux et diffèrent d'un logiciel à un autre.

Le CLF (ou le format utilisé par IIS 3.0) permet déjà d'extraire de nombreuses informations intéressantes :

  • Date : il est possible de suivre heure par heure, jour après jour, semaine après semaine ou mois après mois, l'évolution de la fréquentation de son site. Ces informations sont évidemment cruciales pour juger de l'indice de satisfaction des visiteurs. Un bon site émerge souvent assez rapidement du flot de données et sitôt le site bookmarké auprès des sites 'de référence', le nombre de consultation ne peut qu'augmenter. A noter que vu le nombre croissant de personnes ayant accès au Net, un site présentant un plateau dans le temps représente plutot une baisse de consultation.

    Certains softs vous donneront des résumés toutes les semaines, d'autres tous les mois. Des graphes permettront une lecture plus agréable du nombre de hits, du nombre de pages HTML lues, du trafic utilisé, du nombre de pays ...

  • Pages : Mais quelles sont les pages les plus lues sur mon serveur ? Elément clé de votre site, cette information vous permettra de connaitre les goûts et les préférences de vos visiteurs. La plupart du temps, il convient de faire abstraction de la homepage (index.html) qui est par défaut la première page visualisée et donc le passage obligé pour tout le monde. Un bon logiciel doit pouvoir être flexible et pouvoir accepter d'autres fichiers que le html, par exemple, les pages en php, en wml...

  • Répertoires : Un site Web bien construit s'organise autour de plusieurs fonctions dans des répertoires différents. Ainsi il est courant de trouver à la base d'un serveur des répertoires /fr/ et /uk/ où sont stockés respectivement tous les documents en langue française et anglaise. On trouvera des sous répertoires internes qui pourront s'identifier à des champs plus précis du serveur (ex : /acorn/ pour tout ce qui se rattache à des pages sur le monde acorn, /astro/ pour l'astro...). On voit donc qu'il devient possible d'établir des statistiques qui permettront de déterminer quelles sont les rubriques les plus appréciées. Pour chaque répertoire, il suffit de dénombrer les accès avec leur pourcentage respectif, ainsi on pourra avoir le taux de visiteurs utilisant la partie en anglais du serveur par rapport à celle utilisant la partie en français.

  • Pays : Une détermination géographique par pays des différents visiteurs est possible grace à l'utilisation du dernier champ du nom de domaine qui indique le pays d'origine. Une répartition plus fine n'est pas malheureusement possible sans disposer d'une base de données reliant chaque nom de domaine à sa position géographique exacte. De telles bases existent (geo::ip) et devront pouvoir être acceptées par le logiciel de stats. Cependant il convient de mettre à jour régulierement cette base.
    Les noms de domaines en .com posent également problème car un .com peut exister sur n'importe quel continent. Il existe aussi des 'pays' un peu particulier comme les .net, .org qui n'en sont pas.
    Si votre fichier de log ne contient pas explicitement le nom des machines mais uniquement leur adresse IP, les statistiques géographiques sont néanmoins possibles en utilisant une option de reverse dns. Pour chaque IP, le logiciel doit pouvoir effectuer une requête à un serveur DNS et résoudre ainsi cette adresse. Un bon logiciel de stats doit pouvoir gérer un cache en interne pour minimiser l'acces à ces serveurs DNS qui ralentissent considérablement le calcul.

  • Machines : Il est également intéressant de connaitre quelles sont les machines qui consultent le plus votre site (hormis votre propre machine bien sur !). On peut ainsi détecter les webhacker qui sont des logiciels qui vous récupérent l'intégralité de votre site de manière complétement automatique en suivant vos liens. Les robots peuvent aussi être vu de cette manière (ce sont des arraignées qui référencent les pages parcourues dans leur moteur de recherche associé). Dans le cas d'un Intranet, il vous sera même possible de voir les personnes les plus assidues. A noter qu'il est possible de connaitre le taux de fidélisation sur votre site en analysant le nombre de machines nouvelles par rapport aux machines étant déjà venues visiter votre site.

  • Scripts : Vous disposez d'une base de données sur votre site et vous aimeriez bien connaitre quels sont les choix les plus utilisés lors de la consultation de votre base. Est ce que vos visiteurs recherchent davantage les simca rouges ou des porsches vertes dans votre site de petites annonces ? Certains logiciels proposent une telle analyse, essentielle lorsque son site Web se résume à une base de données.

  • Erreurs : Les statistiques sur les erreurs sont un peu particulières dans le sens où ces informations sont stockées dans un fichier de log à part et dans des formats souvent très différents d'une version à une autre ! (A noter que sous IIS, ces informations ne sont pas accessibles d'une manière simple car stockées dans une base de donnée). Ces informations vous permettront de connaitre les requêtes n'ayant pas abouti...des pages déplacées, une faute d'orthographe dans le lien d'une page HTML, ou encore le nombre d'utilisateurs n'ayant pas attendu la fin du chargement d'une page (trop lourde).

  • Sessions : Il n'est pas possible théoriquement de suivre une personne sur le Net car seul le nom de sa machine est stocké dans le fichier de log. Un autre utilisateur utilisant la même machine (ou plutôt le même numéro IP) sera confondu avec la première personne. Il n'y a pas de notion de fin de session pour un serveur Web. Néanmoins, il est possible de calculer le nombre de visites en posant quelques hypothéses simples. La première est de supposer qu'une personne ne passe pas plus de 30 minutes pour lire une page HTML (ou soit elle lit très lentement, soit elle est parti prendre un café entre temps). La deuxième hypothèse est de définir un temps maximal pour une session ; on a rarement vu quelqu'un surfer sur le même site Web pendant plus de 10 heures ! Une fois ces conditions posées, il suffit de vérifier après coup que vos hypothèses sont effectivement verifiées. Cela permet d'obtenir des profils très précis des passages de vos visiteurs, page après page en connaissant même le temps parcouru pour chaque page. On peut suivre ainsi le parcours d'un visiteur et examiner ainsi sa navigation au sein de votre site. Le nombre de visiteurs devient donc accessible, le nombre moyen de pages lues par visite, le temps moyen d'une visite....

    Le format ECLF dispose d'informations supplémentaires quant au systeme d'exploitation utilisé et au fureteur utilisé.

  • Fureteur : Votre site contient des frames, du java, différents plugs in mais êtes vous sur que tous vos visiteurs n'en souffrent pas ? Il vous suffit de consulter la répartition des différents browsers utilisés sur votre site pour le savoir. Si 5% des browsers sont des Netscape 3, à vous de voir si vous êtes prêts à les sacrifier ou si une version spécifique pour les vieux navigateurs est envisageable. Enfin, quelles sont les plateformes utilisées ? Là, l'écrasante majorité provient de Windows, témoignant de l'homogéinésation du marché des micros.

  • Références : Sans doute, une des informations les plus importantes pour l'évolution de votre site. Examiner en détails si votre site est correctement référencé sur la toile et établissez une véritable politique de liens croisés avec d'autres sites. Par la suite, vérifiez que votre politique porte ses fruits et calculez le flux provenant de vos sites 'amis'. Vous pourrez ainsi voir si votre site est effectivement présent sur les principaux moteurs de recherche. Une fonctionnalité plus élaborée permet de connaitre les mots clés utilisés par les visiteurs pour atteindre votre site à l'aide des moteurs de recherche. Ainsi vous pourrez connaitre exactement quels sont les véritables besoins exprimés. Il n'est pas rare de trouver des mots comme 'sexe' dans cette liste !

Le langage utilisé :

Là encore, trois catégories de langage sont utilisées :

  • Le plus courant et de loin est le Perl qui a l'énorme avantage d'être rapide à écrire, à maintenir et à développer. Son gros inconvénient est sa relative lenteur à gérer de très gros volume de données.
  • Les logiciels les plus rapides utilisent le C comme langage et sont souvent utilisés dès que le temps CPU devient une contrainte importante dans l'exploitation d'un serveur Web.
  • Enfin quelques outils existent en PHP qui présentent l'interêt de stocker leurs résultats dans une base de donnée.

Sites proposant une liste d'outils de statistique
http://www.uu.se/Software/Analyzers/Access-analyzers.html
http://freshmeat.net/search/?q=web&filter=&trove_cat_id=245&section=trove_cat&orderby=popularity_percent+DESC
http://www.cgi-resources.com/Programs_and_Scripts/Perl/Logging_Accesses_and_Statistics/
http://www.hotscripts.com/CGI_and_Perl/Scripts_and_Programs/Web_Traffic_Analysis/index.html

Bonus :

Divers outils sont proposés sur certains logiciels qui vous permettent d'obtenir des statistiques sur vos documents HTML. Le pourcentage d'images, de liens, les liens erronés.... A noter cependant une fonctionnalité très agréable sur certains logiciels qui permettent d'avoir un 'mapping' des fichiers, au lieu d'avoir des pages référencées par des chemins sur votre disque, vous obtenez le nom de cette page si celle-ci contient un titre au sein du code HTML.

Installation :

La plupart des logiciels s'installent assez simplement. La plupart du temps il suffit de paramétrer un fichier de configuration où sont stockés le chemin à votre fichier de log, les tris à effectuer et autres informations de filtrage. Ce fichier sera lu lors du lancement du programme et permettra d'obtenir vos informations pertinentes. Pour exécuter le programme, on préfèrera lorsque ceci est possible de le lancer de manière automatique toutes les nuits pour éviter une gêne au niveau des utilisateurs (les stats sont gourmandes en mémoire et en temps CPU). Certains logiciels proposent une interface d'administration pour gérer vos fichiers de configuration ou même pour lancer les scripts dans le cas ou vous n'auriez pas d'accès direct à ceux-ci (cas d'un hébergement chez un provider où il est rare d'avoir une connexion telnet). Certains n'ont même pas besoin d'utiliser de répertoire cgi-bin pour s'exécuter.

Choix :

Il est souvent difficile de faire un choix parmi tous les logiciels disponibles mais la plupart proposent une visualisation sur leur propre site Web qui permet d'avoir une idée de leur 'look and feel'. Le choix dépendra de vos goûts personnels, de la vitesse d'exécution (prendre du C pour un site avec un gros trafic), de la facilité d'installation et des différentes options auxquelles vous serez sensibles.

De manière générale, il est conseillé d'utiliser des logiciels tournant de manière incrémentale, ceci afin de réduire au maximum le temps de calcul. Si vos fichiers de logs sont compressés, le logiciel devra gérer ce genre de chose, de même si votre provider coupe vos fichiers de logs de manière régulière (pour augmenter l'espace disque disponible).

Vous trouverez ci contre les différents logiciels les plus pertinents à mon goût, libre à vous d'en tester d'autres !..ou d'écrire le votre !

[tableau de différents logiciels de stats]
Logiciel Auteur Prix Demo Mise à jour
Webalizer 2.0.1 Bradford L. Barrett GPL http://www.webalizer.com/sample/index.html 2002
Http-analyse 2.4 Stefan Stapelberg Freeware www.netstore.de/stats/ 2006
W3Perl 3.00 Laurent Domisse GPL www.w3perl.com/softs/ 2007
Analog 6.00 Stephen Turner Freeware www.statslab.cam.ac.uk/webstats/stats.htmlhttp://www.analog.cx/ 2004
AWStats 6.7 Laurent Destailleur GPL http://awstats.sourceforge.net/ 2007

Conclusion :

Les statistiques ne dépendent pas seulement de la puissance de votre outil d'analyse mais aussi de la manière dont vous avez organisé votre site Web. Un site bien construit permettra plus facilement d'extraire les informations sensibles. Le nombre d'outils disponibles est assez important et ne cesse de croitre.
L'analyse du flux de connexion de votre site Web ne vous permettra pas seulement de connaitre l'impact de votre site sur le Net mais aussi de déterminer une véritable politique de gestion de celui-ci et de l'optimiser en fonction du parcours de vos visiteurs.