Avant de s'intéresser en particulier à GoogleBot, je vous invite à consulter régulièrement des résumés de vos logs qui peuvent être fournis par Awstats, Webalizer ou le plus récent Go Access.

Vous pourrez y découvrir régulièrement des choses passionnantes (tentatives d'injections SQL, Erreur 404 et 500, le pourcentage de visiteurs vs robots, etc.). Si vous en avez les moyens (techniques et humains), il me semble indispensable de surveiller votre site/service régulièrement via ELK par exemple.

Intéressons-nous à l'aspect aux informations utiles pour votre SEO en trackant les visites des robots des moteurs de recherches.

Savoir comment son site est visité, c'est s'assurer que le moteur est en capacité de découvrir toutes vos pages. Sans être un critère de positionnement primoridial, c'est par contre un critère de non-positionnement (en particulier sur de la longue traîne).
Pensez-vous qu'une page non crawlé peut se positionner ?

La notion de crawl budget (Combien d'URL GoogleBot peut (sans affecter votre serveur) et veut visiter.) sera également abordé.

Avant de se lancer dans l'utilisation d'un outils complexe (EL Kibana) ou d'un SAAS hors de contrôle, voyons comment jeter un coup d'oeil à ses logs de façon simple en 10 minutes top chrono.

Version Simple : Comment GoogleBot crawl mon site ?

Sur votre machine après avoir téléchargé vos logs ou directement via SSH, une simple ligne de commande avec l'utilitaire grep (findstr pour les utilisateurs Windows) vous donnera une idée du comportement de GoogleBot sur votre site :

grep -hr 'Googlebot' A_MODIFIER_mon_fichier_acces_logs > googlebot_access_logs

Nous voici alors avec un fichier googlebot_access_logs contenant l'ensemble des hits de Googlebot(ou de ses usurpateurs).

Un survol des données fournies via n'importe quel lecteur de fichiers textes (less ou lnav) vous donnera quelques éléments. Enfin, l'un des 3 logiciels libres cités plus haut peut vous générer un résumé visuel.

A partir des données justes extraites, générer un rapport avec l'interface sexy de Go Access prends 1/2 secondes* :

goaccess googlebot_access_logs -a -o report.html

*: à condition d'avoir au préalable installer et paramêtrer goaccess sur le format de vos logs (5 à 10 minutes)

De ce rapport, les informations suivantes émergent :

Ces premières informations vont permettre de détecter les facteurs bloquants le crawl. Il est ici question d'améliorer votre crawl budget.

Enfin, le pourcentage d'URLs crawlées (obtenu à la louche en divisant Unique Files avec votre nombe de page connue).

Trop faible, il vous invitera à vous inquiéter pour la capacité de GoogleBot à trouver vos pages (et c'est plutôt côté de votre site qu'il faut chercher).

Trop important, il indique que GBot crawl plusieurs pages de votre site avec des URLs différentes ou encore que votre crawler n'a pas été en capacité de trouver toutes vos pages.

Identique ou presque, il n'indique rien, car nous avons obtenu ce chiffre de manière hasardeuse. Si un survol des logs vous alarment (URLs crawlées inconnus ou étonnante), il faut investiguer.

Une partie de cette investigation peut se faire en poussant votre analyse de logs via votre tableur préféré (voir la partie suivante). Si celle-ci ne se révèle pas suffisante pour comprendre le crawl, il sera nécessaire de coupler avec les données issues de votre crawl.

Vous pourrez alors découvrir les pages non-crawlées ou encore les pages crawlées qui n'ont pas été découvertes par votre crawler (ce sera le sujet d'un prochain article : Coupler votre crawl et le crawl de GBot).

Version Avancée : Comment GoogleBot crawl mon site ?

Je vous propose un utilitaire CLI : LogsAnalyzer. Développé en PHP, il vous permettra de jouer directement avec vos logs en PHP ou alors via une commande, de convertir vos logs en CSV pour jouer avec dans votre tableur préféré (excel, libreoffice, google spreadsheet, framacalc, ...).

Générer un CSV d'après LogsAnalyzer

# Simple export en CSV  
bin/analyzer -l access_logs --fi '\PiedWeb\LogsAnalyzer\Filters::googleBot'

# ou création d'un résumé
bin/analyzer -l access_logs --fi '\PiedWeb\LogsAnalyzer\Filters::googleBot' --resume

Par défault, le format des logs est celui d'Apache. Vous pouvez le modifier en créant une nouvelle classe gérant un autre format ou proposer votre format directement avec l'argument --code sous forme d'une regex.

La seconde commande (--resume) vous permettra de manipuler rapidement vos données dans n'importe quel tableur (fichier plus léger) : elle concatène la requête et le code réponse et additionne le nombre de hit. La colonne date correspondra alors au premier hit

Vous voici maintenant avec votre fichier CSV prêt à être utiliser.

Vous pouvez maintenant accéder aux détails non fournis par GoAccess (URLs redigirigées, Erreurs 500). C'est le moment où vous aimeriez que les ingénieurs derrière GoogleBot est implémenté un referer pour vous mâcher le travail.

Vous accédez également aux pages les plus crawlées. En tête, votre robots.txt suivi certainement par votre page d'accueil. Votre sitemap arrive loin derrière ? On se rend compte donc de sa futilité pour permettre à GBot d'indexer vos nouvelles pages rapidement. Ensuite, vient les pages qui ressortent régulièrement dans les résultats de requêtes à volume.

Je découvre aussi régulièrement d'autres pages étonnantes ! Celle-ci mérite-t-elle que Google les crawl 12 fois par jours ?! Que se passe-t-il si je les supprime/redirige vers une page au potentiel plus intéressant ? A vous d'expérimenter en fonction de votre site.

Exemple d'une expérimentation récente :
Je remarque que GBot crawl de façon importante les miniatures d'images. Celle-ci se positionne pourtant moins bien que les images taille réelle. Je modifie alors mes balises img pour afficher l'image taille réelle pour Google (cloaking). Comment réagissent mes positions Mobile/Images/Desktop ?

A vous de jouer !

Je partagerai à l'occasion de prochains articles des retours d'expériences illustrés sur de l'analyse de logs. Stay tuned (twitter@Robind4, RSS).