dimanche 8 décembre 2024, par
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.
Voici le script shell Linux qui utilise wget pour télécharger les pages du site et grep pour rechercher les balises noindex. La profondeur d’exploration peut être spécifiée au moment de l’exécution.
Pour rappel, la présence la base noindex sur une page Web indique aux moteurs de recherche de ne pas indexer la page. Cela joue donc sur votre référencement.
#!/bin/bash
# Vérifier si une URL a été fournie
if [ -z "$1" ]; then
echo "Usage: $0 <URL> [PROFONDEUR]"
exit 1
fi
SITE_URL="$1"
DEPTH=${2:-2} # Définit la profondeur par défaut à 2 si aucun paramètre n'est fourni
OUTPUT_DIR="site_scan"
NOINDEX_FILE="noindex_pages.txt"
# Créer un répertoire temporaire pour stocker les pages
mkdir -p "$OUTPUT_DIR"
# Télécharger le site avec wget et la profondeur spécifiée
echo "Téléchargement du site avec une profondeur de $DEPTH..."
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent --level="$DEPTH" "$SITE_URL" -P "$OUTPUT_DIR" >/dev/null 2>&1
# Rechercher les pages contenant la balise noindex
echo "Recherche des balises noindex..."
find "$OUTPUT_DIR" -type f -name "*.html" | while read -r file; do
if grep -qi '<meta[^>]*name="robots"[^>]*content="[^"]*noindex' "$file"; then
echo "Page avec noindex trouvée : $file"
echo "$file" >> "$NOINDEX_FILE"
fi
done
# Résultat
if [ -f "$NOINDEX_FILE" ]; then
echo "Les pages contenant une balise noindex sont listées dans le fichier : $NOINDEX_FILE"
else
echo "Aucune page avec une balise noindex n'a été trouvée."
fi
# Nettoyage (si nécessaire, décommenter la ligne suivante)
# rm -rf "$OUTPUT_DIR"
N’oubliez pas de rendre le script exécutable avec chmod +x <nom du script>
.
Le lancement se fait avec deux paramètres : le nom de domaine à explorer et une limitation sur la profondeur (2 par défaut) si jamais c’était trop long, en utilisant la commande ./<nom du script> https://www.exemple.com 3
Le script génère un fichier noindex_pages.txt qui liste toutes les pages contenant une balise noindex. Vous pouvez l’ouvrir pour identifier les pages problématiques.
Il n’y a plus qu’à étudier le résultat pour savoir si l’utilisation de la balise noindex est justifié ou pas et au besoin apporter une correction sur les pages concernées.