SEO
7

Un besoin récurrent pour tout SEO est de vérifier les codes retour et les temps de réponse d’un listing d’URLs.

Pour cela il faut nécessairement un crawler.

Xenu est régulièrement cité car il est gratuit, facile à utiliser, il possède même une interface graphique !

Xenu a cependant plein d’inconvénients, les principaux étant qu’il ne peut pas gérer un volume important, et que le nombre d’informations récupérées est assez faible (je ne crois pas par exemple qu’il récupère les temps de réponse).

Pour ce type de besoins, Linux est tout simplement magique, jugez plutôt :

cat listing_urls.txt | xargs -n1 -i curl -o /dev/null -w "%{url_effective}\t%{http_code}\t%{time_starttransfer}\t%{time_total}\t%{size_download} \n" -s {}

listing_urls.txt, comme son nom l’indique, est votre listing d’URLs.

Et voici le résultat :

http://www.watussi.fr/    200    2,519    2,935    36020
http://www.watussi.fr/page-speed    200    0,737    1,125    39588
http://www.watussi.fr/a-propos    200    0,966    1,088    14140
http://www.watussi.fr/contact    200    3,696    4,018    14875
http://www.watussi.fr/la-tribu-wikipedia    200    1,154    1,293    21310
http://www.watussi.fr/eliminez-les-soft-404    200    2,566    2,931    26574
http://www.watussi.fr/googlebot-est-en-greve    200    2,217    2,440    36108
http://www.watussi.fr/adresses-ips-et-referencement    200    2,125    2,512    80625
http://www.watussi.fr/adfsdfsdfsdfment    404    7,424    8,835    10217

Nous avons 5 colonnes pour chaque URLs spécifiées dans le fichier de départ :

  • L’URL
  • Le res_code HTTP
  • Le temps d’exécution de la page (côté serveur)
  • Le temps de chargement total
  • La taille de la page

Magique non ?

Il est évidemment possible de rediriger le flux de sortie vers un fichier pour l’exploiter sous Excel ou autre.

Cette simple ligne est particulièrement robuste et peut faire l’affaire tant pour 5 URLs que pour 5 millions.

Pour ces volumes, il faudra cependant paralléliser le traitement pour aller plus vite 😉

Petit clin d’oeil à Olivier Tassel dont ce tweet m’a inspiré.

Auteur : Jean-Benoît MOINGT

Développeur de formation, ancien consultant chez Aposition. Je suis spécialiste SEO des sites à grosse volumétrie. Actuellement responsable SEO chez PagesJaunes Groupe, je propose par ailleurs des formations SEO sur-mesure et développe des outils d’analyse avancés.

7 Comments to “Obtenir code retour HTTP et temps de réponse d’une liste d’URLs en une ligne de commande”

  • Excellente suggestion, on n’a décidément jamais fini de découvrir des lignes de commandes extra puissantes sous Linux. M’en vais tout de même hacker cela pour lire depuis, et enregistrer vers, une base de données 😉

    > »Pour ces volumes, il faudra cependant paralléliser le traitement »
    Vous pouvez élaborer ?

    Merci du « truc » !

    • Actuellement il y a une seule requête en même temps, donc sur un lot de plusieurs millions d’URLs, ça va prendre beaucoup de temps…

      L’idée serait de pouvoir multi-threader en lançant 5, 10, 15… requêtes en même temps.

      N’hésites pas à partager les évolutions que tu comptes faire.

  • C’est vrai que Xenu est pas mal, mais à comparé de ce que peux faire Linux, ça ne soutient pas la comparaison, ce test en est d’ailleurs la preuve.

  • Excellent !

    Bon, tu es un peu dur avec Xenu : jusqu’à 500 000 URLs ça marche quand même pas mal… même s’il est vrai que le temps de réponse indiqué est parfois un peu farfelu.

  • Tiens moi je fais ça dans mes outils perso en PHP et avec une boucle Ajax mais il est vrai qu’en ligne de commande ça permet de traiter un bien plus grand nombre d’URL.

    Pour ma volumétrie ça suffit mais je garde ton article sous le coude.

    Pour le multi threading, tu t’y prends comment ?

  • J’utilise souvent Xenu pour faire une analyse des urls, mais honnêtement je galère un peu car avec un lot de millions d’URLs c’est très très lent voir impossible de le traiter, surtout que mon objectif est de voir l’évolution dans le temps. Je rencontre ce souci avec l’analyse des fichiers logs aussi…

Réagissez

XHTML: Vous pouvez utiliser les balises suivantes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Articles similaires

Articles récents

Catégories

Archives

Liens