Analyse de logs SEO en Bash

Apprenez à analyser efficacement vos logs serveur pour le SEO en utilisant des commandes Bash simples et puissantes.

L'analyse des logs serveur représente une source d'information précieuse. Contrairement à l'idée reçue, vous n'avez pas nécessairement besoin d'un logiciel dédié pour exploiter ces données, surtout pour des sites de taille modeste (quelques milliers de pages).

Ce guide vous présente une méthode flexible et puissante basée sur des commandes shell simples. Ces techniques vous permettront d'analyser efficacement vos logs, même les plus volumineux, sans nécessiter une machine particulièrement puissante.

Prérequis

Logiciels nécessaires

  • Terminal :
    • Sur Linux/Mac : Terminal natif
    • Sur Windows : Utilisez Windows Subsystem for Linux (WSL)
  • Tableur : Excel, LibreOffice Calc ou équivalent (pour l'analyse post-traitement)

Compréhension des logs

Les logs d'accès serveur contiennent généralement plusieurs informations par ligne, notamment :

  • Adresse IP du visiteur
  • Date et heure de la requête
  • URL demandée
  • Code de réponse HTTP
  • User-agent (identification du navigateur ou robot)
  • Référent (d'où provient la visite)

Objectif

Notre but est d'extraire des logs toutes les visites de Googlebot sur une période donnée (généralement 2-4 semaines) pour identifier :

  • Quelles pages sont crawlées
  • À quelle fréquence
  • Avec quels codes de réponse

Ensuite, ces données pourront être croisées avec d'autres sources (sitemap, analytics, crawl) pour une analyse SEO approfondie.

Instructions pas à pas

1. Préparation

Rassemblez tous vos fichiers de logs pour la période souhaitée dans un même dossier. Vérifiez leur extension (généralement .log ou .txt).

2. Filtrage des requêtes de Googlebot

grep "Googlebot" *.log

Cette commande extrait toutes les lignes contenant "Googlebot" dans tous les fichiers .log du répertoire courant.

Pour une identification plus précise, vous pouvez filtrer également par plage d'IP utilisées par Google ou effectuer un reverse DNS sur chaque IP afin d être sur de ne pas comptabiliser de faux Googlebot.

3. Extraction des informations pertinentes

Nous allons maintenant isoler uniquement les colonnes qui nous interessent (URL et code de réponse HTTP) en utilisant awk :

grep "Googlebot" *.log | awk '{print $4,$7}'
Explication: awk identifie automatiquement les séparateurs de colonnes dans vos logs et $4,$7 représente les numéros des colonnes à extraire (à ajuster selon le format de vos logs).

Pour déterminer les bons numéros de colonnes, procédez par essai-erreur :

grep "Googlebot" *.log | awk '{print $1,$2}'

Puis testez $2,$3, $3,$4, etc. jusqu'à trouver l'URL et le code de réponse.

4. Dédoublonnage et comptage des occurrences

Pour compter le nombre de fois que chaque URL a été visitée, nous devons d'abord trier les résultats :

grep "Googlebot" *.log | awk '{print $4,$7}' | sort

Puis dédoublonner et compter :

grep "Googlebot" *.log | awk '{print $4,$7}' | sort | uniq -c
Explication: L'ordre des commandes est crucial. sort doit toujours précéder uniq -c pour que le comptage fonctionne correctement.

5. Exportation des résultats

Pour enregistrer les résultats dans un fichier texte :

grep "Googlebot" *.log | awk '{print $4,$7}' | sort | uniq -c > crawl_googlebot.txt

Le fichier crawl_googlebot.txt contiendra trois colonnes :

  1. Nombre de hits
  2. URL
  3. Code de réponse HTTP

Importation dans Excel

  1. Ouvrez Excel et importez le fichier texte (Données > À partir du texte/CSV)
  2. Utilisez l'espace comme délimiteur pour séparer les colonnes
  3. Nommez les colonnes : "Hits", "URL", "Code_HTTP"
  4. Utilisez RECHERCHEV (VLOOKUP) pour fusionner avec d'autres sources de données

Analyses recommandées

Une fois vos données dans Excel, vous pouvez réaliser plusieurs analyses clés :

  1. Croisement avec crawl : Identifiez les URLs présentes dans votre site mais non crawlées et inversement.
  2. Analyse de fréquence : Classez les pages par fréquence de crawl
  3. Suivi des erreurs : Surveillez les erreurs 4xx et 5xx
  4. Analyse par profondeur : Organisez les URLs par niveau de profondeur (répertoire) pour voir si les pages profondes sont crawlées
  5. Budget crawl : Identifiez où Google passe le plus de temps et s'il crawle des pages peu importantes pour mêttre à jour votre fichier robots.txt

Avantages de cette approche

  1. Performance : Traitement de fichiers volumineux (plusieurs Go) avec des ressources minimales
  2. Flexibilité : Adaptation facile à différents formats de logs
  3. Reproductibilité : Commandes réutilisables pour des analyses régulières
  4. Evolutivité : Possibilité d'automatiser avec des scripts shell

Limites et évolutions possibles

Cela fonctionne bien pour des analyses à la demande mais pas pour monitoring en temps réel.