Un outil en ligne de commande pour vérifier et analyser les redirections d'URLs à des fins d'optimisation SEO.
Ce script Bash analyse automatiquement une liste d'URLs et détecte les problèmes potentiels de redirection qui peuvent impacter le référencement naturel (SEO) de votre site web. Il vérifie chaque URL, suit la chaîne complète des redirections et génère un rapport détaillé au format CSV.
- Analyse complète des redirections : Suit automatiquement jusqu'à 10 redirections par URL
- Détection des problèmes SEO :
- Boucles infinies de redirection
- Redirections 302 temporaires (à remplacer par des 301)
- Chaînes de redirections trop longues (5+)
- Erreurs 404 et 5xx
- Timeouts et erreurs de connexion
- Rapport détaillé : Export CSV avec toutes les métriques importantes
- Suivi en temps réel : Affichage coloré de la progression dans le terminal
- Statistiques automatiques : Résumé des problèmes détectés en fin d'analyse
- Respect des serveurs : Délai configurable entre les requêtes pour éviter la surcharge
- Système d'exploitation : Linux, macOS ou Windows avec WSL
- Bash : Version 4.0 ou supérieure
- curl : Pour effectuer les requêtes HTTP
- bc : Pour les calculs de temps (généralement préinstallé)
sudo apt-get update
sudo apt-get install curl bcbrew install curl bcsudo dnf install curl bc- Clonez ou téléchargez le script :
git clone https://github.com/votre-username/url_redirection_checker.git
cd url_redirection_checker- Rendez le script exécutable :
chmod +x check_redirects.sh./check_redirects.sh <fichier_entree.csv> <fichier_sortie.csv>./check_redirects.sh urls_a_verifier.csv resultats_analyse.csvLe fichier d'entrée doit contenir une URL par ligne. La première colonne sera utilisée si le fichier contient plusieurs colonnes.
Exemple : urls_a_verifier.csv
URL
https://example.com/page1
https://example.com/page2
https://example.com/page3Ou simplement :
https://example.com/page1
https://example.com/page2
https://example.com/page3
Le fichier de sortie contient 10 colonnes :
| Colonne | Description |
|---|---|
| URL_Source | L'URL d'origine testée |
| URL_Destination | L'URL finale après redirections |
| Code_HTTP | Code de statut HTTP (301, 302, 200, etc.) |
| Type_Redirection | Type de redirection détecté |
| Nombre_Redirections | Nombre total de redirections suivies |
| Chaine_Redirections | Séquence complète des URLs intermédiaires |
| Probleme_Detecte | Type de problème identifié (si applicable) |
| Temps_Reponse_ms | Temps de réponse en millisecondes |
| Taille_Bytes | Taille du contenu en octets |
| Statut | Statut visuel du résultat |
- 200 : Page accessible directement (pas de redirection)
- 301 : Redirection permanente (bon pour le SEO)
- 302 : Redirection temporaire (à éviter pour le SEO)
- 307 : Redirection temporaire (préserve la méthode HTTP)
- 308 : Redirection permanente (préserve la méthode HTTP)
- 404 : Page non trouvée
- 410 : Ressource définitivement supprimée
- 5xx : Erreur serveur
- BOUCLE_INFINIE / BOUCLE_DETECTEE : L'URL redirige vers elle-même ou crée une boucle
- CHAINE_TROP_LONGUE : Plus de 5 redirections successives
- ERREUR_404 : Page introuvable
- ERREUR_410 : Contenu supprimé définitivement
- ERREUR_5XX : Erreur côté serveur
- ERREUR_CONNEXION : Timeout ou problème réseau
- CODE_INHABITUEL : Code HTTP non standard
- AUCUN : Aucun problème détecté
Vous pouvez modifier les paramètres suivants dans le script :
# Délai entre les requêtes (en secondes)
DELAY=2
# Dans curl : --max-time (timeout en secondes)
--max-time 30
# Dans curl : --max-redirs (nombre maximum de redirections)
--max-redirs 10==================================================
Vérification des redirections SEO
==================================================
Fichier source: urls_a_verifier.csv
Fichier résultat: resultats_analyse.csv
Délai entre requêtes: 2s
Total d'URLs à traiter: 10
==================================================
[1/10] Vérification de: https://example.com/old-page
✓ Code: 301 | Type: 301 - Permanente | Redirections: 1 | Temps: 245ms | Taille: 1024 bytes
→ Destination: https://example.com/new-page
[2/10] Vérification de: https://example.com/temp
⚠ Code: 302 | Type: 302 - Temporaire | Redirections: 1 | Temps: 189ms | Taille: 512 bytes
⚠ Problème détecté: TEMPORAIRE
==================================================
Vérification terminée !
==================================================
URLs traitées: 10
Résultats sauvegardés dans: resultats_analyse.csv
==================================================
Statistiques:
Redirections 301 (permanentes): 5
Redirections 302 (temporaires): 2
Pages directes (200): 2
Erreurs 404: 1
Erreurs de connexion: 0
Boucles de redirection détectées: 0
Chaînes trop longues (5+ redirections): 0
-
Utilisez des 301 pour les redirections permanentes
- Migration de contenu
- Changement de structure d'URLs
- Consolidation de pages
-
Évitez les 302 sauf pour :
- Tests A/B temporaires
- Maintenance temporaire
- Redirections géographiques
- Boucles de redirection : Urgent - empêchent l'accès au contenu
- Chaînes longues : Important - ralentissent le chargement et diluent le PageRank
- 302 au lieu de 301 : Moyen - peuvent affecter le transfert de PageRank
- 404 sur des pages importantes : Urgent - perte de trafic et de rankings
- Ouvrez le fichier CSV de sortie
- Utilisez les filtres automatiques pour identifier :
- Toutes les redirections 302 : Filtrer
Type_Redirection= "302 - Temporaire" - Les chaînes longues : Filtrer
Nombre_Redirections> 3 - Les erreurs : Filtrer
Statutcontenant "❌"
- Toutes les redirections 302 : Filtrer
- Triez par
Temps_Reponse_mspour identifier les URLs lentes - Vérifiez la colonne
Chaine_Redirectionspour les optimisations possibles
Installez curl :
sudo apt-get install curl # Ubuntu/Debian
brew install curl # macOSRendez le script exécutable :
chmod +x check_redirects.shAugmentez le timeout dans le script (ligne 72) :
--max-time 60 # Au lieu de 30Augmentez le délai entre les requêtes (ligne 23) :
DELAY=5 # Au lieu de 2- Limite de redirections : 10 redirections maximum par URL (paramétrable)
- Timeout : 30 secondes par défaut pour chaque requête
- User-Agent : Simule Chrome pour éviter les blocages
- JavaScript : Ne peut pas analyser les redirections JavaScript côté client
- Meta refresh : Ne détecte pas les redirections via balises HTML meta
- Support des redirections JavaScript
- Mode parallèle pour traiter plusieurs URLs simultanément
- Export en format JSON
- Interface graphique web
- Intégration avec Google Search Console API
- Détection des redirections meta refresh
- Support des certificats SSL personnalisés
- Mode verbeux avec logs détaillés
Les contributions sont les bienvenues ! N'hésitez pas à :
- Fork le projet
- Créer une branche pour votre fonctionnalité (
git checkout -b feature/AmazingFeature) - Commit vos changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
Créé pour Charles Durand - Laradev https://laradev.fr/
Pour signaler un bug ou demander une fonctionnalité, ouvrez une issue sur le dépôt GitHub.
Note : Utilisez cet outil de manière responsable et respectez les politiques de rate-limiting des sites web que vous analysez.