Comment vérifier le code réponse d'une liste d'URLs dans le terminal ?
Table des matières
Cette semaine, j'avais besoin de vérifier le code HTTP d'une grosse liste d'URLs. Manque de chance, ma licence Screaming Frog avait expiré et j'avais la flemme de la renouveler envie de finir ce que j'étais en train de faire avant de renouveler mon abonnement.
Du coup, je me suis dit : et si j'utilisais le terminal ?
Pour vérifier le code réponse d'une URL, c'est assez simple, un petit curl -I -L
suivi de l'URL et c'est réglé.
Mais comment le faire en bulk ?
En fouillant dans la doc de cURL et en jouant avec Bash, j'ai codé en quelques minutes un petit script bien pratique que je te partage ici.
L'idée, c'est de récupérer le contenu de mon presse-papiers, qui contiendra ma liste d'URLs, et de checker le code réponse de chaque URL à l'aide d'une boucle for
.
Puis, de créer un alias qui lancera le script chaque fois que j'en aurai besoin.
Création du script Bash
Voilà le script :
for url in $(pbpaste)
do
echo -n "$url;"
curl --max-redirs 5 --silent --output /dev/null --write-out "%{http_code};%{redirect_url}\n" $url
done
Je t'explique la syntaxe :
- for – démarre la boucle
- url – est la représentation de ma variable (ici l'URL)
- in – sépare la variable de la liste d'éléments à parcourir
- $(pbpaste) – est l'ensemble des éléments de mon presse-papiers sur lesquels je souhaite exécuter les instructions (la commande
pbpaste
est uniquement disponible sur Mac, mais tu peux la "recréer" sur Linux) - do – est le mot-clé qui déclenche l'exécution des instructions
- echo -n "$url;" – affiche ma variable URL
- curl --max-redirs 5 --silent --output /dev/null --write-out "%{http_code};%{redirect_url}\n" $url – est la commande curl qui me permet de récupérer à la fois le code HTTP de l'URL (
%{http_code}
) et l'adresse de la redirection (%{redirect_url}
), avec une limite de 5 redirections suivies - done – arrête la boucle.
Sauvegarde du script
Je te conseille de créer un nouveau dossier directement sous le dossier home, par exemple scripts
ou workspace
.
Puis d'y créer un fichier status_code_checker.sh
dans lequel tu viendras coller le code que j'ai donné plus haut.
(Si tu n'es pas à l'aise avec le terminal, je te conseille de lire cet article qui est plutôt bien fait : https://www.searchenginejournal.com/command-line-seo-guide/418782/)
Ajout d'un alias
Maintenant, il faut créer un alias, autrement dit un raccourci qui va te permettre d'éxécuter le script.
Voilà la commande à utiliser :
echo "alias statuscode='bash ~/workspace/status_code_checker.sh'" >> ~/.bash_profile
N'oublie pas de recharger le fichier .bash_profile pour que les modifications soient prises en compte.
source ~/.bash_profile
Il te suffit maintenant de copier une liste d'URLs (n'importe laquelle) et de lancer la commande statuscode
dans le terminal.
Petite démo avec :
- la récupération des URLs du sitemap de seomemento.com via cette commande +
pbcopy
- la vérification du code HTTP pour chacune des URLs
Tu peux aussi sauvegarder le résultat dans un fichier csv si tu as beaucoup d'URLs à tester, de cette manière :
statuscode > results.csv
Et voilà !
- Partager sur Twitter
- Partager sur Facebook
- Partager sur LinkedIn
- Partager sur Pinterest
- Partager par E-mail
- Copier le lien
Un Template Google Sheets Offert ! 🎁
Rejoins ma newsletter et reçois une astuce SEO chaque mercredi ! En cadeau, je t'offre un template Google Sheets avec 50 fonctions de scraping prêtes à l'emploi.