Definitions and assumptions The topic here is link maintenance. By link maintenance, I mean keeping links working: if https://example.com/example exists now, it should always exist. If for some reason it canât exist any more, donât just let it go: it should show a useful error. Iâm going to focus on the most frequent failure case: the HTTP status code 404 Not Found; itâs the most obvious failure case. My feeling on the matter is that the fact that the number 404 is well known among nonâtechnical users shows that we as web developers and maintainers have failed in our duty. I also start with the assumption that you agree with W3C that cool URIs donât change. If you donât, Iâm afraid I canât help you yet; come back when you do. The problem [Microsoft has significantly less excuse for breaking links than GitHub. I think they just break links for the fun of it. With GitHub, itâs partially inherent (user content changes) and partially an artefact of their architectural design, as covered later in this article.] You know GitHubâs 404 Not Found page? If youâve used GitHub much at all, youâre almost certain to have come across it. My opinion over the past few years is that GitHub has been vying with Microsoft for the âworst maintainer of links on the entire Webâ trophy. Iâm not sure whoâs winning it at present. Youâve seen this too often. Linkrot is unfortunate but inevitable. Certainly for a website like GitHubâs they cannot prevent it in all cases. But if you look at that 404 page, youâll see that it is almost supremely useless. Itâs absolutely generic and tells you nothing about what or why the problem is. What belongs on an error page? The most important thing is an indication that something is wrong. Few people make a mess of this. GitHub donât do this particularly badly. Unfortunately, thatâs where most 404 pages stop. There seems to be an assumption that 404 pages must be useless. Well, Iâm here to tell you that thatâs not the case. You are allowed to make a useful 4...
First seen: 2026-01-12 23:03
Last seen: 2026-01-13 01:03