Configurer et utiliser Google bot comme outil de tests
Par MD3804-GANDI le lundi 18 janvier 2010, 14:16 - Google - Lien permanent
Lorsque l'on parle de Google bot, on pense souvent à "référencement", mais il existe une autre utilisation : les tests. Je ne parle pas de tests fonctionnels ou unitaires mais de tests pour améliorer la qualité de votre site, comme les tests de liens morts, de pages indisponibles, d'erreurs HTTP etc.
Il y a quelques semaines, je postais plusieurs billets sur comment gérer un serveur de download :
- Limiter la bande passante d'un serveur de download
- Limiter l'accès à un site / service pour un certain nombre de requêtes par IP
Mais cette configuration peut poser des problèmes pour les bots des moteurs de recherches. C'est pourquoi je voudrais expliquer comment mieux configurer les serveurs pour faciliter le travail des bots.
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.
Commentaires
Alors là, je dois avouer qu'utiliser un bot pour 'outil de test' ne m'est jamais vu à l'idée. Je ne les considérais que comme un moyen d'indexation de mon site et rien de plus. Mais lisant ton post, c'est flagrant que ça aurait du me venir à l'idée ! pfff, je suis dégouté de pas avoir eu moi-même l'idée. Enfin bon c'est comme ça. En tout cas merci :)
et personnellement pour voir mon site comme un robot, j'utilise Lynx :D