Eric nous liste ses arguments contre l'utilisation des systèmes anti-aspirateur de site. Son point de vue est tout à fait valable, au point même que je me sens culpabilisé :-). En effet, j'utilise moi-même un système anti-aspirateur sur mon site tahiti-fenua.com.
Cependant, j'ai ma propre opinion envers ces outils "vampires". Voici donc mes arguments pour l'utilisation de systèmes anti-aspirateur, en particulier dans mon cas précis.
Statistiques faussées
Un aspirateur aspire le maximum de page qu'on lui indique. La visite d'un aspirateur n'est donc pas représentatif, et le nombre de page "lues" ne devrait donc pas pris en compte dans les outils de stats. Il y en a qui font la distinction entre visiteur normal et robot/aspirateur. Mais je ne sais pas si, par exemple dans Awstats, les résultats de visites et de page lues au total prennent oui ou non en compte les stats liés à ces visiteurs pas commun. Et puis comme l'a fait remarqué Eric, étant donné que l'on peut modifier le user-agent dans la plupart des aspirateurs, on se retrouve donc avec des statistiques faussées (et si en plus l'outil de stats ne fait pas la distinction visiteur normal vs aspirateur...).
Ca n'a pas l'air grave, mais en fait, pour moi, un peu quand même. Sur un petit site comme le mien, qui ne compte que 400 à 500 visiteurs par jour, avec une moyenne de 5200 pages lues par jour, le passage d'un aspirateur bouleverse profondément mon petit moteur de stats. Le dernier internaute qui a aspiré le site, cela a représente au bas mot prés de 5000 pages ! (Et oui, ca en fait des pages, les forums, et tout et tout... et je ne compte pas les images, css..). On voit bien que finalement, les stats sont toutes faussées, ce qui rend le suivi de l'évolution du site un tantinet difficile. Déjà que les outils de stats, ne sont pas par nature fiable à 100%... Si j'avais des millions de hits par mois, je m'en foutrais un peu. Mais là...
Ma liberté à moi c'est de pouvoir regarder avec amusement ces petites courbes de stats monter chaque mois, sans que leur progression ne soit perturbée par des vampires (oui, je sais, ça fait un peu egoiste..).
Et si il n'y avait que ça encore...
Réèlle consommation de bande passante
Quand un aspirateur passe sur mon site et pompe 5000 pages en quelques dizaines de minutes, je suis en droit de me dire que, oui, les aspirateurs, ça suxor !
Quels intérêts aura l'internaute de télécharger le site entier ? ou même seulement une rubrique entière. Aucun dans le premier cas, mais compréhensible dans le second. Je doute fort qu'il lise les 5000 pages et qu'elles l'intéressent toutes. Au final, c'est un gâchis en temps de téléchargement et de bande passante, autant pour lui que moi.
Que dire aussi lorsque le contrat d'hébergement impose une limite de bande passante, de X Mo par mois ? Que quelques internautes passent l'aspirateur sur votre site, et vous voilà à payer les Mo de bande passante supplémentaire à la fin du mois, quand ce n'est pas à pleurer devant le blocage pur et simple de l'accès au site par l'hébergeur.
Actuellement, je ne suis pas dans ce cas, mon hébergeur ne m'impose pas de limite, mais ça pourrais le devenir si mon site bouffait trop de BP.
un serveur qui s'essoufle
La machine hébergeant mon site commence à ne plus se faire toute jeune. Malgré la ligne 100Mbits/s sur laquelle elle est connectée, avec son pentium 200 et ses 128 Mo de ram, la vieille s'essouffle vite au passage d'un aspirateur. J'ai fait l'expérience et je peux vous assurer que le processeur pédale comme un fou (à cause en grande partie de la forte sollicitation de la base de donnée dans ces moments là).
Du coup le site devient difficilement accessible pendant quelques minutes. Et pas seulement le mien, mais tout les autres petits sites qui sont sur la même machine, parce que je ne suis pas sur un serveur dedié.
Laisser pomper le site par un seul internaute, et par la même occasion, empêcher tout les autres de visiter le site (et les autres sites) agréablement : je ne vois pas ce que cela apporte globalement. La liberté des uns, s'arrête là où commence celle des autres. Je préfère privilégier donc la majorité des internautes. Je ne vois pas pourquoi Monsieur le pompeur aurait plus le droit qu'un autre de visiter le site.
Autant, sinon, faire une seule page, proposant en téléchargement avec un zip contenant tout le site. Et encore, là aussi, ça ne résout pas le problème de bande passante. Ça l'aggraverais même. Et puis ce n'est plus ce que j'appelle du web.
Seul les pompeurs sont lésés
Un anti-aspirateur, bien fait, ne devrait pas géner la visite des robots d'indexation des principaux moteurs de recherche.
A voir le code source de la solution de phpfreaks,celle-ci n'est pas terrible, voir idiote.
Ma solution ne bannit pas tout à tire-larigot. Lorsque le nombre de pages lue sur une période donnée pour un internaute donné, dépasse un certain seuil, une page spécial, légère est affiché avec un petit texte explicatif. Il suffit donc d'attendre quelques minutes/secondes pour reprendre la visite (ou le pompage).
Certes, cette méthode m'oblige à faire des enregistrements en base de donnée, mais étant donné que ceux-ci me servent également pour mon petit outil de stats perso, je n'y échappe pas...
Il faut noter que cela ne concerne pas les images, css etc. Donc l'enregistrement d'une ou quelques page en local n'est nullement affecté (à ma connaissance).
Et finalement ma méthode n'empêche nullement les robots d'indexations. En observant les accès de ceux-ci sur le site, on remarquera qu'en fait, ils étalent leurs requêtes sur la journée. On constatera ainsi que google ne fait en moyenne que quelques requêtes (1 à 10 ) par heure, un taux qui est loin d'égaler celui des aspirateurs et qui n'activera donc pas le blocage de l'anti-aspirateur.
conclusion
Quand Tahiti-fenua aura des milliers de visiteurs par jour, sera hébergé sur une bécane performante, que j'aurais optimisé le code de manière à mettre en cache les pages pour moins solliciter la base de donnée, quand j'aurais un outil de stats plus performant, que je pourrais à loisir consommer toute la bande passante car le site sera sur un serveur dédié, je pourrais alors enlever ce système anti-aspirateur.
Mais je n'en suis pas encore là, donc je garde pour l'instant mon anti-aspirateur :-).
Par contre, si vous n'êtes pas dans mon cas, vous n'avez, comme l'a dit Eric, peu de raison d'avoir un anti-aspirateur.