Utiliser les bots comme outils de tests

Le rôle premier d'un bot est bien sur d'indexer votre site, mais il en existe un autre qui consiste à l'utiliser pour tester et améliorer vos pages :

La procédure est la suivante :

  • Vous faites une sitemap avec toutes les pages de votre site. Ayant plusieurs millions de pages, j'ai préféré, pour ma part, faire un générateur de sitemaps personnel en Python. Il permet de générer plusieurs fichiers sitemaps (la taille et le nombre d'URLs par fichier étant limités) et un fichier sitemap d'index contenant toutes les URLs des fichiers sitemaps générés.
  • Puis vous soumettez à Google le fichier d'index.

Rien ne vous empêche de soumettre des pages dont vous voulez qu'elles génèrent une erreur. exemple : http://monsite.com/private/ qui est censé générer une erreur 403.

Vous pouvez ainsi voir des informations sur le passage de Google bot, comme le nombre de kilo-octets téléchargés, le temps de réponse moyen, et le nombre de pages explorées par jour, sur cette page et consulter les pages en erreurs (timeout, erreur HTTP, pages inaccessible, pages contenant des liens morts, etc), sur cette page. Merci Google :)

Autoriser les bots à indexer votre site

Lors de mon billet sur mod_evasive, j'évoquais le moyen de limiter un site à un nombre de requêtes défini. Il faut toutefois préciser que mod_evasive ne peut (à ma connaissance) pas ce configurer par vhost : c'est donc tous les vhosts de votre Apache qui seront limités. Si comme pour Gisgraphy, vous disposez d'un vhost pour le download et d'un autre pour le site web, et que vous limitez le nombre de requêtes du serveur de download, vous limitez le nombre de requêtes du site web également.

Si vous avez créé un fichier sitemap afin de mieux référencer votre site, se pose alors le problème des bots : si vous disposez de beaucoup d'URLs à indexer (9 millions pour Gisgraphy), lors du passage d'un bot, votre site peux détecter une attaque et renvoyer une erreur HTTP 403.

Plusieurs solutions sont possibles :

  • Modifier la vitesse d'exploration dans la configuration des outils pour webmasters, afin de limiter le nombre de pages indexées par jour.
  • Installer deux serveurs Apache : Si vous ne disposez que d'une seule machine, il vous faut mettre le serveur de download sur un port particulier, ou dans le cas contraire, avoir deux serveurs séparés.
  • Ajouter la liste des adresses IP des bots à la White liste de mod_evasive :
DOSWhiteList 127.0.0.1
DOSWhiteList 66.249.64.*
DOSWhiteList 66.249.65.*
DOSWhiteList 66.249.66.*
DOSWhiteList 66.249.71.*

La liste des IP ci dessus n'est donnée qu'a titre d'exemple, car la liste des IP des bots change tout le temps. Vous pouvez utiliser * pour remplacer jusqu'a 3 octets. (Sinon essayez avec un hostname comme 'googlebot.com', mais je n'ai pas testé)

Ajouter un robots.txt

Si vous avez limité le nombre de requêtes simultanées avec mod_bandwith, vous ne voulez peut être pas qu'un bot vous prenne un téléchargement au détriment d'un utilisateur ou que votre bande passante soit diminuée. Il vous faut alors ajouter un fichier robots.txt :

User-agent: *
Disallow: /

En faisant cela, vous ne permettez pas aux bots de télécharger les fichiers et de les indexer. Dans mon cas il s'agit de fichiers ZIP ou TAR et leurs indexations n'ont pas d'importance pour moi, mais il peut en être autrement pour d'autres types de fichiers, car Google n'indexe pas que du HTML, il indexe aussi, les PDF, document Word, Excel, texte, images, etc. Dans ce cas vous devez mettre des règles de gestion plus fines et ne permettre l'indexation, que de certains fichiers. Notez que dans l'exemple ci dessus, '*' est une valeur particulière et que ni Disallow ni User-agent ne supporte les expressions régulières. Pour vous aider, un outil est disponible dans les outils pour webmasters afin de générer un fichier robots.txt et un autre pour le tester

Voir ce que Google bot voit

Si vous avez des règles d'affichage de votre site un peu complexes, comme une différenciation de l'affichage selon le User-Agent, ou que vous géolocalisez d'après l'adresse IP, il peut être intéressant de savoir comment Google bot voit votre site. Il existe un outil qui se situe dans la console des outils pour webmasters. Il est actuellement sous la rubrique labs, car en test.

Je déconseille fortement d'utiliser cette outil pour faire un rendu particulier afin de tromper Google, car c'est le meilleur moyen de se faire exclure du moteur de recherche.

je conclurai par dire qu'utiliser Google bot pour tester votre site n'est pas illégal du tout, bien au contraire, les outils mis à votre disposition sont justement là pour vous aider à améliorer la qualité de votre site.