Google Analytics : tes taux de rebond sont bidon (les visites de 0 secondes ça n’existe pas)

Hier j’ai eu une grosse frayeur. En regardant mes stats Google Analytics, j’ai découvert que mon taux de rebond était énorme (85%). Cela signifierait que 85% des visiteurs repartent instantanément de mon site. Donc seuls 15% de mes visiteurs restent plus d’une seconde ! Catastrophe ! Alors j’ai décidé de faire mon propre Analytics à moi, avec un système simple : au lieu de calculer le temps passé uniquement au chargement de la page, je vais lancer des requêtes Ajax à intervalles réguliers pour enregistrer les données de visite lorsque le visiteur sera sur mon site. Résultat : des données très différentes…

Mise à jour du 28 avril 2010 : suite au commentaire de Martius, je propose une version améliorée de mon outil pour mesurer le temps passé par vos visiteurs sur votre site d’information.

Mise à jour du 26 avril 2010(suite aux commentaires des spécialistes) : ce billet ne remet pas en cause la fiabilité du taux de rebond mesuré par GA, mais sa pertinence pour les blogs. Je conteste également la capacité de GA à mesurer la durée de visite sur des sites d’information.

Hier j’ai eu une grosse frayeur. En regardant mes stats Google Analytics (GA), j’ai découvert que le nombre de visites de moins de 10 secondes était énorme (84%) sur ce blog (alors qu’il plafonne à 45% sur certains sites associatifs que je gère). Pire, ce nombre était en fait constitué presque exclusivement de visites à 0 secondes… Cela correspondait au taux de rebond, qui mesure le nombre de visites de 0 secondes. Selon ce que j’en ai compris, cela signifierait que 85% des visiteurs repartent instantanément de mon site. Donc seuls 15% de mes visiteurs restent plus d’une seconde ! Catastrophe !

Je suis allé me renseigner ailleurs sur le Web, et cet article m’a confirmé le carnage. J’ai commencé à suer à grosses gouttes et à me lamenter : cela signifiait que les 300 visiteurs quotidiens n’étaient en réalité que 45 lecteurs intéressés. Mais quand même, zéro seconde, ça me paraissait louche.

Alors j’ai voulu savoir ce qu’il en était réellement, et un autre article m’a confirmé ce fait : le calcul par GA du temps passé sur un site commence à partir de la deuxième page ouverte. Donc une visite sur une SEULE page, qui durerait vingt minutes, ne compte pas pour Google  compte certes une page vue, mais a une durée nulle (edité suite au commentaire d’Alain). C’est un rebond. Zero seconde. Nada, des clopinettes.

Qu’à cela ne tienne, je me suis dit : GA est fait pour les sites de vente en ligne mais ne mesure pas l’intérêt des visiteurs pour un article de blog. Il me fallait une autre mesure pour me faire une idée de la réalité. Alors j’ai décidé de faire mon propre Analytics à moi, avec un système simple : au lieu de calculer le temps passé uniquement au chargement de la page, je vais lancer des requêtes Ajax à intervalles réguliers pour enregistrer les données de visite lorsque le visiteur sera sur mon site.

La Base de données

J’ai fait dans ma base MySQL une table très simple qui me servira uniquement à collecter les données utiles (je ne vais pas refaire GA non plus) :



CREATE TABLE `visiteurs_log` (

  `date` datetime NOT NULL,

  `ip` varchar(15) NOT NULL,

  `user_agent` varchar(64) NOT NULL,

  `page` varchar(255) NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=latin1;



Le PHP

J’ai créé un script /stats.php dans un nouveau dossier accessible à la racine du blog, qui sera appelé par requête Ajax à intervalles réguliers. Ce script doit contenir les infos de connexion à la base de données et une requête d’insertion. J’en profite aussi pour nettoyer certaines variables (virer les « http:// » au début des url, etc.) :


>> Contenu du fichier /dossier/stats.php

// On se connecte à la BDD

$link = mysql_connect("localhost", "username", "password") ;

mysql_select_db('base');



// On récupère l'url de la page qui a lancé la requête Ajax

$page = $_SERVER['HTTP_REFERER'];

// On supprime les caractères récurrents dans l'url pour ne garder que le chemin relatif

$page = str_replace('http://www.mondomaine.com','',$page);

// On récupère l'ip et le type de navigateur du visiteur (pour éliminer les robots indexeurs, ou identifier un problème de rebond spécifique à un navigateur par ex.)

$ip = $_SERVER['REMOTE_ADDR'];

$user_agent = $_SERVER['HTTP_USER_AGENT'];



$requete = "INSERT INTO visiteurs_log SET

     page='" . mysql_real_escape_string($page) . "',

     ip='$ip',

     date=NOW(),

     user_agent='" . mysql_real_escape_string($user_agent) . "'";

    $result = mysql_query($requete) OR DIE($Requete);



Le javascript

J’ai créé un javascript très simple qui comporte une requête Ajax appelée :

  • au chargement de la page
  • 50 millisecondes après la fin de la première requête : on laisse les requêtes se terminer pour éviter des engorgements si le serveur est un peu long à répondre
  • 100 secondes après la fin de la deuxième requête
  • 200 secondes après la fin de la troisième requête
  • on double ainsi le temps à chaque fois, pour éviter qu’un visiteur qui reste une heure ne génère 3600 requêtes
  • on mesure au maximum toutes les 30 secondes pour que la mesure reste précise

J’utilise pour cela la librairie JQuery, mais n’importe quel système générant des requêtes Ajax fera l’affaire :


>> Contenu du fichier /themes/montheme/js/s.js :
$(document).ready(function() {
    stats();
});
var delai = 50;

function stats()
{
    $.get('/dossier/stats.php', function() {
        setTimeout('stats()',delai);
        delai = Math.min(delai * 2,30000);
    });
}




Comme mon blog est un Dotclear, j’ai intégré deux lignes de script dans le _footer.html de mon thème actif :



>> Contenu du fichier /themes/montheme/tpl/_footer.html
<script src="/themes/montheme/js/jquery.js" type="text/javascript"></script>

<script src="/themes/montheme/js/s.js" type="text/javascript"></script>

La requête

On attend quelques heures ou quelques jours pour collecter des données exploitables. Et puis on peut lancer une requête qui va compter le temps de chargement :

SELECT COUNT(*) nb_pages,
    ip,
    page,
    user_agent,
    date,
    UNIX_TIMESTAMP(MAX(date)) - UNIX_TIMESTAMP(MIN(date)) duree,
    COUNT(DISTINCT(page)) pages_vues
FROM `visiteurs_log`
GROUP BY ip
ORDER BY ip,date

Le tableau obtenu pourra être sorti dans Excel pour faire des tris et regroupements plus faciles.

Conclusions

Tout ça est bel est bon, me direz-vous, mais à quoi ça t’a servi ? En deux mots : à mesurer réellement le temps passé par ces visiteurs « rebondissants ». En effet, sur un total de 87 visiteurs en 24h (on ne rigole pas, c’est un petit blog, hein, et en plus c’est le week-end), voici les chiffres que j’obtiens, comparés à ceux de GA :




Durée de visite Pourcentage de visiteurs GA Pourcentage de visiteurs mesuré
0 seconde (rebond) 84,4% 0%
0-10 secondes 85,4% (incluant les rebonds) 28%
11-30 secondes 2% 19,3%
31-60 secondes 2,6% 15%
1 à 3 minutes 3,6% 13,6%
3 à 5 minutes 3,6% 2,2% (taux faible, lié à la faible taille de l’échantillon mesuré)
5-30 minutes 2,5% 15%
+ de 30 minutes 0,3% 5,7%

La différence saute aux yeux :

  • les durées réelles de visite sont beaucoup plus importantes que celles que Google Analytics semble indiquer. On a une mesure plus fine (même si on pourrait encore affiner les mesures en resserrant les plages de mesure) et plus adaptée à un blog où les visiteurs auront tendance à consulter une seule page (parce qu’ils sont arrivés via une recherche Google très précise).
  • le taux de visites de moins d’une minute reste important (62%) mais ça n’a rien de surprenant considérant que les visiteurs papillonnent rapidement d’un site à l’autre à la recherche de l’information qui leur manque

Enfin, et ce n’est pas un détail : je suis rassuré par ces chiffres plus conformes à ce que j’attendais. On n’est jamais mieux servi que par moi-même…

Conclusion : le taux de rebond est peut-être un bon indicateur si vous souhaitez mener vos visiteurs vers une autre page de votre site, mais c’est un indicateur contre-productif si l’essentiel de votre site consiste à donner de l’information. Attention aux comparaisons hâtives entre des sites aux objectifs divergents.

Alors si vous avez du mal à admettre quand GA vous annonce que vous êtes un looser, n’hésitez pas à adapter ce code sur votre blog. A vos commentaires !

Outil de référencement professionnel - essai gratuit Ce contenu a été publié dans Blog, avec comme mot(s)-clé(s) , , , . Vous pouvez le mettre en favoris avec ce permalien.

13 réponses à Google Analytics : tes taux de rebond sont bidon (les visites de 0 secondes ça n’existe pas)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *