Guillaume Orsal EI
Développeur Web indépendant
  1. Création site Internet
  2. > Articles Techniques
  3. > Référencement Web, SEO SMO
  4. > Audit SEO : détecter les pages avec une balise noindex via script (...)
Audit SEO : détecter les pages avec une balise noindex via script automatisé

Audit SEO : détecter les pages avec une balise noindex via script automatisé

dimanche 8 décembre 2024, par Guillaume Orsal

En examinant la Google Search Console d’un site récemment, j’ai remarqué que certaines pages étaient non indexées à cause d’une balise noindex. Ces balises sont des balises meta . Comme je ne savais pas exactement quelles pages étaient concernées, j’ai décidé de créer un script simple pour parcourir le site et identifier toutes les pages contenant cette balise.

Dans cet article, je partage avec vous ce script et explique comment l’utiliser pour détecter les pages avec une balise noindex. Cela peut vous être utile si, comme moi, vous souhaitez corriger ce type de problème pour améliorer l’indexation de votre site par les moteurs de recherche.

Introduction : identifier les barrières d’indexation

La balise noindex est un élément clé de la gestion du SEO. Elle signale aux moteurs de recherche que certaines pages ne doivent pas être indexées, ce qui peut impacter significativement votre visibilité organique si utilisée à mauvais escient. Lors d’audits SEO, il est courant de découvrir des balises noindex involontaires ou mal configurées qui nuisent à l’indexation de pages stratégiques.

Cet article présente une approche automatisée pour parcourir un site et identifier toutes les pages contenant une balise noindex. Cette technique est indispensable pour diagnostiquer les problèmes d’indexation signalés dans la Google Search Console et évaluer si chaque balise noindex est justifiée.

Comprendre la balise noindex et ses impacts

La balise noindex est une directive du protocole robots placée dans la section d’une page HTML. Elle se présente sous la forme :

<meta name="robots" content="noindex" />

Ou de manière plus complète :

<meta name="robots" content="noindex, nofollow" />

Impact sur l’indexation : Une page avec noindex est indexée temporairement par Google (pour vérifier la balise), puis supprimée des résultats de recherche après quelques semaines. Ce processus peut causer des fluctuations dans votre classement et votre couverture indexée.

Quand noindex est justifiée :
- Pages de test ou développement
- Contenus en double (variantes de filtre, paramètres d’URL)
- Pages archivées ou dépréciées intentionnellement
- Pages avec contenu sensible non destiné au public

Quand noindex pose problème :
- Appliquée accidentellement à des pages stratégiques
- Pré-configurée sur un thème ou un CMS
- Résultant de migrations mal gérées
- Présente dans une feuille de style CSS appliquée globalement

Diagnostic : automatiser la détection noindex

Plutôt que d’inspecter manuellement chaque page, un script d’audit permet un diagnostic rapide et complet. Voici un script shell Linux qui télécharge votre site et identifie toutes les pages avec noindex.

Script de détection noindex complet

#!/bin/bash

# ============================================
# Script d'audit SEO : détection des balises noindex
# Utilisation : ./script.sh https://www.exemple.com [PROFONDEUR]
# ============================================

# Vérifier si une URL a été fournie
if [ -z "$1" ]; then
   echo "Usage: $0 <URL> [PROFONDEUR]"
   echo "Exemple : $0 https://www.exemple.com 3"
   exit 1
fi

SITE_URL="$1"
DEPTH=${2:-2}  # Profondeur par défaut : 2
OUTPUT_DIR="site_scan_$(date +%s)"
NOINDEX_FILE="noindex_pages_$(date +%Y%m%d_%H%M%S).txt"

# Créer un répertoire temporaire pour stocker les pages
mkdir -p "$OUTPUT_DIR"
echo "[*] Création du répertoire : $OUTPUT_DIR"
echo "[*] Profondeur de parcours : $DEPTH"

# Télécharger le site avec wget
# --mirror : mode miroir (télécharge récursivement)
# --convert-links : convertit les liens pour navigation locale
# --adjust-extension : ajoute .html si nécessaire
# --page-requisites : télécharge les ressources (CSS, JS, images)
# --no-parent : n'explore pas les répertoires parents
# --level : limite la profondeur de récursion
echo "[*] Téléchargement du site en cours..."
wget --mirror \
    --convert-links \
    --adjust-extension \
    --page-requisites \
    --no-parent \
    --level="$DEPTH" \
    "$SITE_URL" \
    -P "$OUTPUT_DIR" \
    --quiet

# Rechercher les pages contenant la balise noindex
echo "[*] Analyse des pages pour détecter noindex..."
find "$OUTPUT_DIR" -type f -name "*.html" | while read -r file; do
   # Regex expliquée :
   # <meta[^>]* : ouverture de la balise meta (accepte tous les attributs)
   # name="robots" : recherche l'attribut name avec la valeur robots
   # [^>]* : accepte d'autres attributs (ex: http-equiv)
   # content="[^"]*noindex : vérifie que noindex est dans l'attribut content
   
   if grep -qi '<meta[^>]*name="robots"[^>]*content="[^"]*noindex' "$file"; then
       echo "Page avec noindex trouvée : $file"
       echo "$file" >> "$NOINDEX_FILE"
   fi
done

# Afficher les résultats
echo ""
echo "[*] Résultats :"
if [ -f "$NOINDEX_FILE" ]; then
   count=$(wc -l < "$NOINDEX_FILE")
   echo "⚠️  $count page(s) contenant une balise noindex détectée(s)"
   echo "&#128196; Fichier de résultats : $NOINDEX_FILE"
   echo ""
   echo "=== PAGES AVEC NOINDEX ==="
   cat "$NOINDEX_FILE"
else
   echo "✓ Aucune balise noindex n'a été trouvée."
fi

Utilisation du script

1. Rendre le script exécutable

chmod +x script_noindex.sh

2. Lancer l’audit

Avec une profondeur par défaut (2 niveaux) :

./script_noindex.sh https://www.exemple.com

Avec une profondeur personnalisée (ex : 4 niveaux pour un gros site) :

./script_noindex.sh https://www.exemple.com 4

3. Consulter les résultats

Le script génère un fichier noindex_pages_YYYYMMDD_HHMMSS.txt contenant la liste des pages affectées. Ouvrez ce fichier pour identifier les problèmes.

Interprétation des résultats et diagnostic

Cas 1 : Pages intentionnellement en noindex Si vous trouvez des pages avec noindex que vous aviez volontairement marquées, c’est normal. Vérifiez simplement que chacune de ces pages mérite réellement cette balise.

Cas 2 : Pages stratégiques affectées Si le script détecte noindex sur des pages que vous souhaitez indexer :
- Vérifiez la source du problème : CMS, thème, configuration serveur, ou erreur humaine
- Supprimez ou modifiez la balise en noindex, nofollow vers index, follow ou supprimez-la complètement
- Forcez une exploration Google en soumettant l’URL via la Search Console

Cas 3 : Aucune balise noindex détectée Excellent ! Mais assurez-vous que le site était complet. Vérifiez la profondeur utilisée et augmentez-la si certaines sections ne sont pas explorées.

Limitations et considérations importantes

Respect de robots.txt : Le script wget respecte le fichier robots.txt de votre site. Si des pages sont bloquées par robots.txt, elles ne seront pas téléchargées. Modifiez la commande wget avec —execute robots=off si vous voulez ignorer robots.txt (à utiliser avec prudence).

Sites très volumineux : Pour les sites avec des milliers de pages, augmenter la profondeur peut être très long. Envisagez de limiter le domaine ou d’utiliser des crawleurs SEO professionnels comme Screaming Frog pour les audits complets.

Pages dynamiques : Ce script capture le HTML statique. Les pages générées en JavaScript côté client ne seront pas correctement analysées. Pour les sites single-page application (SPA), utilisez des outils comme Puppeteer ou Playwright.

Authentification requise : Si votre site demande une authentification, le script ne peut pas y accéder. Vous devrez ajuster wget pour fournir des identifiants ou tester manuellement.

Bonnes pratiques pour la gestion de noindex

1. Documentez vos décisions : Maintenez un registre des pages intentionnellement en noindex et des raisons sous-jacentes 2. Auditez régulièrement : Relancez ce script trimestriellement pour détecter toute dégradation 3. Validez en Search Console : Utilisez l’onglet « Couverture » pour croiser les résultats et identifier les pages non indexées pour d’autres raisons 4. Privilégiez disallow dans robots.txt : Pour les pages vraiment privées, robots.txt est plus approprié que noindex 5. Testez avant déploiement : Utilisez une branche de staging pour valider vos changements avant production

Conclusion

La détection automatisée des balises noindex est une étape critique d’un audit SEO complet. Ce script vous permet d’identifier rapidement les problèmes d’indexation et de prendre les mesures correctives nécessaires. En combinant cet outil avec la Search Console et une bonne compréhension des impacts, vous pouvez optimiser considérablement votre couverture indexée et votre visibilité organique.

L’important est de maintenir un équilibre : bloquer intentionnellement ce qui doit l’être, tout en assurant que vos pages stratégiques restent pleinement accessibles aux moteurs de recherche.

Spip | Plan du site | Mentions légales | RSS 2.0 |
© 2001-2025 Guillaume Orsal EI