Richard Dern

Liens morts

Il est inévitable, surtout quand on crée beaucoup de liens, de se retrouver confronter à des liens morts. C’est ce que l’on appelle le link-rot.

Par soucis de transparence, pour faciliter le suivi des liens morts et pour inciter mes éventuels lecteurs vers lesquels j’ai créé un lien devenu mort à m’indiquer comment le corriger, je présente ici une page générée automatiquement, contenant le rapport des liens morts détectés sur mon site.

Je m’efforce d’automatiser le processus de détection de ces liens morts, autant pour les liens internes à mon site que pour les liens externes. S’il est parfaitement légitime de me tenir pour responsable de la vivacité de mes propres liens internes, personne ne peut me rendre responsable des liens externes. Ce n’est pas mon travail. Je n’ai aucune obligation de maintenir un outil de vérification et la transparence des résultats. Je le fais par plaisir du travail bien fait et par respect pour mes visiteurs, mais je n’ai aucune emprise sur les nombreux facteurs externes déterminant si un lien est accessible ou non par mon outil.

Méthodologie

Le rapport publié sur cette page est produit par la commande manage links check external. La vérification des liens internes existe aussi, mais elle n’alimente pas cette page.

Extraction des URL

Avant toute requête réseau, l’outil parcourt les fichiers markdown et yaml du dossier content/. Il en extrait les URL externes uniques depuis le frontmatter, le corps des articles et les fichiers de métadonnées. Pour chaque URL, il conserve tous les emplacements précis où elle apparaît. Les liens présents dans du code, dans un texte barré, dans une valeur YAML commentée, ou dans certaines propriétés volontairement ignorées comme aliases et alias, ne sont pas pris en compte.

Sélection des URL à contrôler

Certaines URL sont ignorées avant même la phase réseau. C’est le cas des domaines explicitement exclus de la vérification. C’est aussi le cas des URL déjà couvertes par mes fichiers de remplacements ou de suppressions logiques. A l’inverse, certains domaines sont explicitement marqués comme morts. Lorsqu’une URL appartient à cette dernière liste, elle est signalée comme morte sans aucun accès réseau.

Vérification réseau

Les URL restantes sont vérifiées au moyen d’un véritable navigateur headless, piloté par Playwright avec Chromium, et non plus par un simple client HTTP. Le contrôle est parallélisé sur plusieurs threads. En revanche, deux URL relevant d’un même hôte ne sont jamais vérifiées en parallèle. Un délai minimal configurable peut en outre être imposé entre deux accès au même hôte. Chaque URL est ouverte dans un contexte de navigation neuf, sans réutiliser l’état d’une URL à l’autre. Le navigateur se présente avec un user-agent de navigateur de bureau, la locale fr-FR, le fuseau horaire Europe/Paris et un en-tête Accept-Language cohérent. Les erreurs de certificats TLS sont ignorées. Le temps maximal accordé à une navigation est de 30 secondes. Les redirections ordinaires sont suivies comme le ferait un navigateur classique. Le dernier état observé et son historique sont ensuite enregistrés dans un cache local.

Interprétation des résultats

Par défaut, tout code HTTP compris entre 200 et 399 est considéré comme accessible. Une URL qui déclenche immédiatement un téléchargement est elle aussi considérée comme accessible. Les réponses 429 sont traitées comme une limitation temporaire et ne sont pas classées comme des liens morts. Certaines pages de protection anti-bot ou de filtrage applicatif sont reclassées comme « Accès protégé », même lorsqu’elles répondent en 403, et ne sont pas non plus considérées comme mortes. En revanche, un timeout, une erreur navigateur sans code HTTP exploitable, une page Wayback indiquant qu’aucune capture n’existe, ou un domaine explicitement marqué comme mort sont considérés comme des erreurs. Autrement dit, le rapport ne reproduit pas simplement les codes HTTP. Il publie le verdict final du navigateur, enrichi par quelques heuristiques destinées à réduire les faux positifs les plus grossiers.

Cache

Une URL dont le dernier état est un succès 2xx ou 3xx n’est pas revérifiée avant 30 jours. Une erreur 4xx ordinaire est revérifiée au bout d’un jour. Une erreur 5xx est revérifiée au bout de 7 jours. Les timeouts de 30 secondes, les réponses classées en « Accès protégé » et les réponses 429 sont revérifiés à chaque exécution. Les autres erreurs navigateur sans code HTTP exploitable sont revérifiées au bout d’un jour. Tant qu’une entrée de cache reste valide, son dernier verdict est réutilisé tel quel.

Rapport

Dernière mise à jour
01/05/2026
Liens morts détectés
48
Emplacements URL Code Détails
Réponse publique à Bortzmeyer à propos d'ODDNS
http://code.ingnu.fr/?p=oddns.git;a=summary Supprimé
À propos de la neutralité du net
http://dl.ingnu.fr/?f=3 Supprimé
Filmed in Supermarionation
http://filmedinsupermarionation.com Supprimé
Pourquoi j'arrête facebook et twitter
http://identi.ca/group/14/id Supprimé
Pourquoi j'arrête facebook et twitter
http://identi.ca/group/33/id Supprimé
[MAJ 27/01/2012] Mes résolutions pour 2012
http://identi.ca/notice/88647631 Supprimé
Comment le livre de Richard Stallman a changé ma vision du Libre
http://ingnu.fr/2011/12/24/reouverture-de-ingnu/ Supprimé
Peut-on se passer de Google ?
Quelles sont les alternatives à Google ?
Les revers de Google
http://ingnu.fr/2011/12/25/comment-bloquer-un-site-internet/ Supprimé
Une alternative à Dropbox
Vue d'ensemble et conclusion
http://ingnu.fr/2012/02/08/son-propre-reseau-social-avec-status-net/ Supprimé
Hadopi ne sert à rien
http://ingnu.fr/2012/02/29/pourquoi-il-est-vital-de-ne-plus-voter/ Supprimé
[Brêve] ODDNS et ingnu à la radio
http://ingnu.fr/2012/03/10/breve-oddns-et-ingnu-a-la-radio/oddns-sur-riem/ Supprimé
Présentation d'Odin
http://ingnu.fr/category/oddns-2/ Supprimé
[MAJ 27/01/2012] Mes résolutions pour 2012
Vue d'ensemble et conclusion
http://sharemypics.net/ Supprimé
Faire fonctionner XMPP avec status.net
http://status.net/sites/default/files/issues/statusnet-1.0.1-inox.txt Supprimé
À propos de la neutralité du net
http://wonder-tonic.com/geocitiesizer/content.php?theme=3&music=10&url=ingnu.fr Supprimé
Jurassic Park III
http://www.jurassicpark.com/jpiii/ Supprimé
The Lost World: Jurassic Park
http://www.lost-world.com/ Supprimé
Installer Seeks sous Debian
http://www.seeks-project.info/ Supprimé
[MàJ du 27/01/2012] Pourquoi Google, c'est le mal
http://www.whois.net/whois/marsgoogle.com Supprimé
Déployer Hugo via Gitea et Drone-CI
https://ci.athaliasoft.com/login Supprimé
Cyca: gestionnaire de signets et de flux open-source
https://getcyca.com/screenshots/ Supprimé
Cyca: gestionnaire de signets et de flux open-source
https://git.athaliasoft.com/athaliasoft/Cyca Supprimé
Cyca: gestionnaire de signets et de flux open-source
https://git.athaliasoft.com/athaliasoft/Cyca/issues Supprimé
Un outil pour gérer une blacklist DNS
https://git.athaliasoft.com/Richard/Blacklist Supprimé
Un outil pour gérer une blacklist DNS
https://git.athaliasoft.com/Richard/Blacklist/issues Supprimé
Déployer Hugo via Gitea et Drone-CI
Maintenance terminée
Mon réseau
Ne bloquez pas les bots d'IA : éduquez-les
https://git.dern.ovh/ Supprimé
Nouveau site en ligne
https://git.dern.ovh/blog/2025 Supprimé
Une façon créative de bloquer les indésirables
https://git.dern.ovh/infrastructure/caddy-opnsense-blocker Supprimé
De retour
https://git.dern.ovh/livres Supprimé
Vers un code de déontologie des développeurs
https://git.dern.ovh/Livres/code-de-deontologie-des-developpeurs Supprimé
Jurassic Park
J'ai quitté Instagram
https://git.dern.ovh/livres/reflexions/src/branch/main/03%20-%20Hasard%2C%20chaos/01-introduction.md Supprimé
Presentation de Cyca
Récupération d'articles d'archives
Mon histoire de l'informatique
https://git.dern.ovh/richard/cyca Supprimé
Introduction
Installation, configuration et tests
https://git.dern.ovh/richard/donnees_meteo Supprimé
Étude de ma collection LEGO Jurassic World
https://git.dern.ovh/richard/etude_lego_jurassic_world Supprimé
[MAJ 27/01/2012] Mes résolutions pour 2012
https://github.com/Ingnu/Share-My-Pics Supprimé
Un clavier 100% custom ?
https://kbdfans.com/collections/keyboard-stabilizer/products/gmk-screw-in-stabilizers?variant=22154915348528 Supprimé
Un clavier 100% custom ?
https://kbdfans.com/collections/wrist-rest/products/handmade-resin-wrist-rest-1?variant=39444177223819 Supprimé
Un clavier 100% custom ?
https://kbdfans.com/products/dz60rgb-ansi-pcb-foam Supprimé
Un clavier 100% custom ?
https://keygem.store/collections/tools/products/kbdfans-switch-lube-station Supprimé
Un clavier 100% custom ?
https://mykeyboard.eu/catalogue/crin-extra-custom-feet_5417/ Supprimé
Comment l'ICANN va tuer Internet, et comment l'en empêcher
[MAJ 27/01/2012] Mes résolutions pour 2012
Pourquoi j'arrête facebook et twitter
[Brêve] ODDNS et ingnu à la radio
https://social.ingnu.fr/ Supprimé
Vue d'ensemble et conclusion
https://social.ingnu.fr/ingnu Supprimé
Faire fonctionner XMPP avec status.net
https://social.ingnu.fr/ingnu/all Supprimé
Pourquoi j'arrête facebook et twitter
https://social.ingnu.fr/main/register Supprimé
[MAJ 27/01/2012] Mes résolutions pour 2012
https://social.ingnu.fr/notice/110 Supprimé
Pourquoi j'arrête facebook et twitter
https://social.ingnu.fr/notice/3292 Supprimé
Curiosités taxonomiques du Mésozoïque
https://www.deviantart.com/paleohistoric/art/Perfil-Crichtonsaurus-bohlini-901292529 Supprimé
Pré-sélection
https://www.kmovetech.com/kemove-61-key-white-p0023-p0075.html Supprimé