Script de test des liens sur une page Web

Link Checker parcourt toutes les pages d'un site et détecte les liens brisés et les redirections.

Le testeur de liens brisés est un outil indispensable à l'entretien d'un site, vis à vis des utilisateurs et des moteurs de recherche. Il convient de supprimer tous les liens brisés ainsi que de mettre à jour les redirections, qu'elles soient externes ou internes au site, pour la bonne image du site, et pour un meilleur positionnement.

En outre ce programme open source est facile à modifier grâce au code source Scriptol ou PHP ou JavaScript. Il fonctionne avec sur quasiment tous les systèmes d'exploitation.

Tester les liens brisés dans une page HTML

Mode d'emploi de la version PHP

Si PHP n'est pas installé, il faut télécharger l'interpréteur sur php.net.

  1. Télécharger l'archive au format zip,
  2. la décompresser,
  3. ouvrir une fenêtre de ligne de commande et
  4. exécuter le programme dans la fenêtre selon la commande ci-dessous.

Le script en ligne de commande peut être exécuté par le compilateur Scriptol PHP:

solp linche [options] page

ou directement par l'interpréteur PHP 5:

php linche.php [options] page

La page est une URL complète de la forme:

https://www.example.com/index.php

Les options:

-r recursif, suivre les liens internes. Par défaut seule la page est testée.
-s liste courte (short) affiche seulement les liens brisés et les liens sur des pages redirigées, sur le site.
-f accéléré (fast), en réduisant l'attente du serveur. Par défaut 5 secondes, on peut définir le délai
   en ajoutant une valeur après -f.
-v verbeux, affiche tous les liens testé, avec le code d'en-tête trouvé. 
Par défaut affiche seulement les erreurs.
-q quiet, silencieux, n'affiche rien.

Le programme produit un fichier nommé links.log qui reprend tous les résultats et que l'on sauvera sous un autre nom si on veut le conserver.

Les résultats fournis par le script sont perfectibles. Quelque fois un lien est signalé "broken" alors que la page est accessible avec le navigateur. Cela vient d'un temps de réponse trop long, ou du serveur. Dans ce cas il suffit d'ignorer le résultat.

Messages d'erreur et actions à accomplir

Lorsque le script tente d'accéder à une page, le serveur peut retourner différent code selon le status de la page. Celle-ci peut être redirigée soit par le fichier .htaccess ou par un script PHP, elle peut être manquante.

Noter que la plupart du temps, le programme affiche un message à la place du code HTTP:

De ces divers codes, autres que le code OK on ne tiendra pas compte tant que la page est accessible, sauf les redirections permanentes qui doivent être mises à jour.

Pour la liste complète des codes et leur signification, voir le document Code HTTP.

Avec l'option -s, seuls sont pris en compte les codes:

Utilisation de la version JavaScript

Installer Node.js, télécharger l'archive jlinks.zip et désarchiver le contenu.

Allez dans le répertoire de l'archive, et taper

node links.js c:/example.com -whttps://example.com/ 

Remplacez example.com par le répertoire local ou se trouve le contenu de votre site et https://example.com par l'URL de votre site sur Internet.

Licence

Ce link checker est sous licence GNU GPL 2.0. Pour pouvez l'utiliser gratuitement et librement. Si vous distribuez l'archive, vous devez conserver le copyright en tête du code source Scriptol et PHP.
Les modifications et améliorations éventuelles du code doivent être fournies sous forme de code open source Scriptol et PHP, même si vous utilisez le programme modifié en ligne.
Script gratuit sous licence GNU GPL 2.0

Voir aussi...

Unredir
Pour un site statique uniquement, teste les liens brisés et les redirections. Dans le second cas il remplace l'URL par sa nouvelle adresse.