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

J’ai créé un script exploitant cURL avec les paramètres suivants :

const args = [
  "--silent",
  "--location",
  "--fail",
  "--max-time",
  `${REQUEST_TIMEOUT_SECONDS}`,
  "--output",
  "/dev/null",
  "--write-out",
  "%{http_code}",
  "--user-agent",
  DEFAULT_USER_AGENT,
  "--request",
  method,
  url,
];

DEFAULT_USER_AGENT est un UA valide et régulièrement mis à jour. Je fais une première requête avec la méthode HEAD, et si cette requête échoue, j’en envoie une autre avec la méthode GET, après un délais de 5s.

Trois cas de figure se présentent à ce stade.

Code HTTP entre 200 et 400

Mon outil considère systématiquement qu’un code HTTP supérieur à 200 et strictement inférieur à 400 est une page accessible.

Cela peut générer des faux positifs (des pages considérées comme accessibles, mais qui ne le sont pas), notamment dans les cas suivants :

Lorsque je constate qu’un URL retourne un code strictement inférieur à 400, il n’est pas re-testé avant 1 mois.

Code HTTP entre 400 et 499

Toute réponse avec un code HTTP compris entre 400 et 499 est considérée comme une erreur, dans le respect de la RFC 7231.

Cela génère de nombreux faux négatifs (des pages considérées comme inaccessibles alors qu’elles le sont), symptomatiques d’une volonté de blocage des techniques de navigation automatisée, ou d’un problème de paramétrage de mon outil.

Par construction, par honnêteté intellectuelle et par bienveillance, mon outil est développé de manière à ne pas être intrusif. Son “paramétrage” permettrait en théorie d’exploiter des techniques plus agressives afin de limiter ces faux négatifs. J’ai fait le choix délibéré de ne pas rendre mon outil plus agressif, et de marquer tout lien retournant un code supérieur ou égal à 400 comme étant inaccessible, peu importe la raison réelle.

Je considère que ne pas respecter la RFC 7231 est une pratique destructive. Donc les serveurs qui répondent avec un code inapproprié doivent être marqués comme étant inaccessibles.

Le problème ici est que, si l’on retourne une erreur 403 pour un contenu qui existe réellement, sous prétexte que la navigation ne s’est pas faite avec un navigateur “traditionnel”, il n’est pas possible pour moi de savoir si la page a été déplacée, si j’ai commis une erreur dans le copier-coller de l’URL, ou si j’ai accédé à un URL protégé par un mot de passe (un exemple de motif légitime d’utilisation de l’erreur 403).

Il existe trop de ces cas de figure pour que j’accepte de prendre le temps de les identifier manuellement.

Les requêtes ayant abouti à un code HTTP compris entre 400 et 499 ne sont pas réitérées avant 1 semaine.

Code HTTP supérieur ou égal à 500

Les requêtes ayant abouti à un code HTTP supérieur ou égal à 500 ne sont pas réitérées avant 1 jour : ces erreurs sont censées être légitimes, transitoires et promptement corrigées.

J’ai néanmoins identifié que certains serveurs répondent à un navigateur automatisé avec une erreur 500. Je refuse de constituer et de maintenir une liste de ces serveurs.

Timeout

De nombreux sites ont fait le choix de punir la navigation automatisée en ne répondant tout simplement pas à la requête, en laissant le client “tourner dans le vide”. Il n’est donc pas possible, pour un script bienveillant, de savoir si le serveur distant bloque la requête ou s’il s’agit d’un problème transitoire.

On pourrait ergoter longtemps sur le bienfondé (ou pas) de cette technique. Pour ma part, je considère qu’elle est destructive. Donc les serveurs qui ne répondent jamais doivent être marqués comme étant inaccessibles, parce que certains d’entre eux peuvent réellement être temporairement inaccessibles.

Les requêtes ayant abouti à un timeout ne sont pas renouvelées avant 1 semaine.

Autres cas

Il arrive que cURL me renvoie une erreur HTTP 0 (qui n’existe pas réellement). L’examen des journaux détaillés de ces requêtes m’apprend qu’en général (mais pas toujours), le problème est essentiellement lié aux certificats du serveur (obsolescence, nom de domaine qui ne correspond pas, etc.).

Les requêtes aboutissant à un code HTTP 0 ne sont pas renouvelées avant 1 semaine.

Rapport

Dernière mise à jour 17/11/2025
Liens morts détectés 97
URL Emplacements Statut
https://github.com/marketplace Tentative de remplacement de Drone-CI par Gitea Actions sous NixOS
400
https://help.instagram.com/581066165581870/?helpref=hc_fnav Retour d'expérience : Deux mois sur instagram
400
https://fr.wikipedia.org/w/index.php?title=Géo-ingénierie&oldid=174399960 Introduction
400
https://fr.wikipedia.org/w/index.php?title=Homme_de_Néandertal&oldid=178701916#Une_découverte_controversée Dans l'Arbre du Vivant
400
https://fr.wikipedia.org/w/index.php?title=Dernier_ancêtre_commun_universel&oldid=177774469 Dans l'Arbre du Vivant
400
https://fr.wikipedia.org/w/index.php?title=Théorie_de_la_catastrophe_de_Toba&oldid=171002413 Dans l'Histoire
400
https://fr.wikipedia.org/w/index.php?title=Chronologie_des_extinctions_au_cours_de_l'Holocène&oldid=177996399 Dans l'Histoire
400
https://fr.wikipedia.org/w/index.php?title=Histoire_de_Jérusalem&oldid=178474749 Les philosophes antiques
400
https://fr.wikipedia.org/w/index.php?title=Graphème&oldid=175943071 L'écriture
400
https://fr.wikipedia.org/w/index.php?title=Tests_expérimentaux_de_la_relativité_générale&oldid=178837868 L'écriture
400
https://fr.wikipedia.org/w/index.php?title=Théorie_des_représentations_du_discours&oldid=161530495 Le langage parlé
400
https://fr.wikipedia.org/w/index.php?title=Arbre_phylogénétique&oldid=178645405 Dans l'Arbre du Vivant
400
https://fr.wikipedia.org/w/index.php?title=Histoire_évolutive_de_la_lignée_humaine&oldid=179163127 Dans l'Histoire
400
https://alternativeto.net/category/books--news/rss-feed-reader/ Me contacter
403
https://www.jstor.org/stable/25426899 Jurassic World Rebirth
403
https://help.guildwars.com/hc/fr Guild Wars
403
https://www.phpbb.com/ Introduction
403
https://wordpress.com Introduction
403
https://www.raspberrypi.com/news/raspberry-pi-os-64-bit/ Rant : Raspberry Pi 4
403
https://www.raspberrypi.com/news/raspberry-pi-3-on-sale/ Rant : Raspberry Pi 4
403
https://opensource.org/licenses/OSL-3.0 E-commerce et auto-hébergement
403
https://www.indeed.fr/ Réflexions sur les metaverses
403
https://www.intel.com/content/www/us/en/products/sku/97129/intel-core-i77700k-processor-8m-cache-up-to-4-50-ghz/specifications.html Mon PC de jeu est mort
Toujours pas de remplaçant pour mon PC de jeu
403
https://www.msi.com/Graphics-Card/GeForce-GTX-1070-ARMOR-8G-OC Mon PC de jeu est mort
403
https://www.intel.fr/content/www/fr/fr/products/sku/134594/intel-core-i712700k-processor-25m-cache-up-to-5-00-ghz/specifications.html Mon PC de jeu est mort
Toujours pas de remplaçant pour mon PC de jeu
403
https://fr.msi.com/Liquid-Cooling/MAG-CORELIQUID-C240 Mon PC de jeu est mort
Toujours pas de remplaçant pour mon PC de jeu
403
https://fr.steelseries.com/ Test de la souris Steelseries Aerox 3 Wireless
403
https://www.homecinesolutions.fr/p/17808-panasonic-dp-ub820efk?utm_campaign=&utm_content=&utm_source=Bing+Ads&utm_medium=cpc&utm_term=Panasonic+DP-UB820EFK&msclkid=fbb47cc09bf0167b6d081f7686db3f98 Le blu-ray est mort
403
https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-a-user Mon RaspberryPi 4 est enfin utile
403
https://openai.com/ Réflexion : IA et moteurs de recherche
403
https://ark.wiki.gg/wiki/Castoroides Ma moisson des soldes Steam
403
https://www.ledevoir.com/monde/803156/cop28-president-cop28-sortir-energies-fossiles-nous-ramenerait-cavernes Rétrospective 2023
403
https://www.lesechos.fr/monde/enjeux-internationaux/le-monde-consomme-toujours-plus-de-charbon-1966206 Rétrospective 2023
403
https://chat.openai.com/ J'ai discuté avec ChatGPT
Maintenance terminée
Le développement, c'était mieux avant
403
https://leonardo.ai Réflexions : Leonardo.ai
403
https://openai.com J'ai pris un abonnement à ChatGPT
403
https://chatgpt.com/fr-FR/pricing/ J'ai pris un abonnement à ChatGPT
403
https://openai.com/fr-FR/index/dall-e-3/ J'ai pris un abonnement à ChatGPT
403
https://www.lego.com/fr-fr Les joies des gestionnaires de réputation
403
https://ark.intel.com/content/www/fr/fr/ark/products/95596/intel-celeron-processor-n3450-2m-cache-up-to-2-2-ghz.html Maintenance terminée
403
https://www.intel.fr/content/www/fr/fr/products/sku/135935/intel-core-i58259u-processor-6m-cache-up-to-3-80-ghz/specifications.html Maintenance terminée
403
https://www.raspberrypi.com/products/raspberry-pi-4-model-b/ Blocky et Unbound sous NixOS
403
https://openai.com/chatgpt/overview/ Moi, selon ChatGPT
403
https://www.legifrance.gouv.fr/loda/id/LEGISCTA000047665797 Intelligence Artificielle et réalité
403
https://www.info.gouv.fr/actualite/quest-ce-que-lai-act Intelligence Artificielle et réalité
403
https://platform.openai.com/docs/bots Intelligence Artificielle et réalité
403
https://www.iucnredlist.org/resources/summary-statistics L'art oublié de la microscopie amateur
403
https://www.merckmillipore.com/FR/fr/product/msds/MDA_CHEM-109242?Origin=PDP À propos des milieux de montage
403
https://www.researchgate.net/publication/261570397_Mounting_media_An_overview À propos des milieux de montage
403
https://www.merckmillipore.com/FR/fr/product/msds/MDA_CHEM-107960?Origin=PDP À propos des milieux de montage
403
https://www.lego.com/fr-fr/product/pirate-ship-playground-40589?icmp=LP-SHSB-Standard-NO_Sidekick_40589_Pirate_Ship_Playrgound_GWP_PP-P-NO-FZLDKPWN4J-1 Jurassic June façon LEGO
403
https://www.lego.com/fr-fr/product/velociraptor-escape-76957 Jurassic June façon LEGO
403
https://www.lego.com/fr-fr/product/visitor-center-t-rex-raptor-attack-76961 Jurassic June façon LEGO
403
https://www.mathworks.com/products/matlab.html Curiosités taxonomiques du Mésozoïque
403
https://www.france24.com/fr/20131031-mine-or-perou-carnegie-airborne-observatory-crise-finance Émancipation ou asservissement ?
403
https://www.pnas.org/doi/abs/10.1073/pnas.87.1.200 Une bulle cognitive limitante
403
https://academic.oup.com/jmammal/article-abstract/19/4/454/876159?redirectedFrom=fulltext Les limites de notre perception
403
https://doi.org/10.1126/science.1069911 La génétique sociale
403
https://www.coe.int/fr/web/compass/45 Du mauvais usage de la technologie
403
https://doi.org/10.5281/zenodo.15313161 L'anankéisme
L'anankéisme
403
https://chatgpt.com Manifeste
403
https://feynmanlectures.caltech.edu/ The Feynman Lectures on Physics
403
https://laravel-news.com/controller-refactor Restructuring a Laravel Controller using Services, Events, Jobs, Actions, and more - Laravel News
403
https://www.kickstarter.com/projects/cerakey/cerakey-the-first-keyboard-that-made-of-ceramic?ref=project_link Cerakey | The first keycaps set that made of ceramic by Cerakey — Kickstarter
403
https://laravel-news.com/laravel-pint Laravel Pint - Laravel News
403
https://www.nytimes.com/2021/09/03/well/live/autistic-burnout-advice.html ‘The Battery’s Dead’: Burnout Looks Different in Autistic Adults - The New York Times
403
https://felipec.wordpress.com/2023/03/04/one-decade-later-gnome-still-sucks/ One decade later, GNOME still sucks | Felipe Contreras
403
https://neal.fun/internet-artifacts/ Internet Artifacts
403
https://www.raspberrypi.com L'art oublié de la microscopie amateur
403
https://www.researchgate.net/publication/260725514_Completely_preserved_cockroaches_of_the_family_Mesoblattinidae_from_the_Upper_Jurassic-Lower_Cretaceous_Yixian_Formation_Liaoning_Province_NE_China Les clades oubliés du grand public
403
https://awowtech.com/products/awow-mini-pc-ak34 Mon réseau
404
https://keygem.store/collections/tools/products/kbdfans-switch-lube-station Un clavier 100% custom ?
404
https://kbdfans.com/products/dz60rgb-ansi-pcb-foam Un clavier 100% custom ?
404
https://kbdfans.com/collections/keyboard-stabilizer/products/gmk-screw-in-stabilizers?variant=22154915348528 Un clavier 100% custom ?
404
https://kbdfans.com/collections/wrist-rest/products/handmade-resin-wrist-rest-1?variant=39444177223819 Un clavier 100% custom ?
404
https://github.com/easingthemes/ssh-deploy@main Tentative de remplacement de Drone-CI par Gitea Actions sous NixOS
404
https://git.dern.ovh/Blog/contenu Nouveau site en ligne
404
https://git.dern.ovh/Infrastructure/dns/raw/branch/main/blacklist.txt Blocky et Unbound sous NixOS
404
https://git.dern.ovh/Infrastructure/dns/raw/branch/main/whitelist.txt Blocky et Unbound sous NixOS
404
https://issuu.com/dartmouth_college_library/docs/the_limits_to_growth/1 La surpopulation
404
https://www.a.team//mission/the-great-betrayal The Great Betrayal: After Callous Layoffs, Workers Are Done With the Full-Time Work Model
404
https://danielbmarkham.com/twilight-of-the-programmers/ Twilight Of The Programmers
404
https://www.perfectrec.com/posts/iPhone15-price Confirmed: The iPhone 15 is the most affordable iPhone since 2007
404
https://www.deviantart.com/paleohistoric/art/Perfil-Crichtonsaurus-bohlini-901292529 Curiosités taxonomiques du Mésozoïque
404
https://store.steampowered.com/wishlist/id/richarddern/#sort=order Me contacter
429
https://noctua.at/en/nm-i17xx-mp78-mounting-kit Toujours pas de remplaçant pour mon PC de jeu
429
https://app.leonardo.ai/profile/owladsagency Réflexions : Leonardo.ai
429
https://app.leonardo.ai/profile/skyrn99 Réflexions : Leonardo.ai
429
https://ceph.com/ Retour d'expérience : six mois de stockage dans git
500
http://archive.wikiwix.com/cache/display2.php/WMR_documents.final_27_April_1.FINAL.pdf?url=http%3A%2F%2Fwww.wmo.int%2Fpages%2Fprog%2Farep%2Fwwrp%2Fnew%2Fdocuments%2FWMR_documents.final_27_April_1.FINAL.pdf Émancipation ou asservissement ?
timeout
http://www.eaton.com/fr/fr-fr.html Comment j'ai réparé un onduleur pour 17 euros
timeout
http://www.gnu.org/licenses/gpl-3.0.html Presentation de Cyca
timeout
https://cryptoast.fr/achat-biens-immobiliers-metaverse-investissement-judicieux/ Réflexions sur les metaverses
timeout
https://fr.dotclear.org Introduction
timeout
https://web.archive.org/web/20160811065905mp_/http://www.nextinpact.com/news/100831-les-revenus-damazon-et-google-grimpent-notamment-grace-au-cloud.htm De l'inutilité et de l'hypocrisie d'AdBlock Plus
timeout
https://www.anthropen.org/voir/Sens Les limites de notre perception
timeout
https://www.gnu.org/licenses/gpl-3.0.en.html E-commerce et auto-hébergement
timeout