Stable Link Campaign

Or The Campaign for Real Hyperlinks.

Aims

This campaign aims to let web users know that the pages on a web site will not mysteriously disappear, but instead will remain accessible forever.

Criteria

These are the necessary criteria to join the campaign:

  1. Pages should remain available from all URIs that ever identified them.
  2. No splash screens, adverts or other content should come between the referring site and the target page.
  3. No registration should be required to view the page.
  4. If the page must be removed, for whatever reason, a 410 GONE HTTP response should be sent for requests to that page.

The first can still be accomplished using HTTP redirects (code 301 and 307) if required (for instance, if the page must be moved). The 410 GONE response should include in the page body an explanation of what has happened, and preferable why the page was removed. Here is an example of this.

Involvement

To show your participation in the campaign, you can add a small image to your page. I have drawn this image Stable links! to show my site is part of this campaign, but feel free to draw your own. I will add any images people send.

410 Gone Response

This is what the HTTP/1.1 specification says:

410 Gone

The requested resource is no longer available at the server and no forwarding address is known. This condition is expected to be considered permanent. Clients with link editing capabilities SHOULD delete references to the Request-URI after user approval. If the server does not know, or has no facility to determine, whether or not the condition is permanent, the status code 404 (Not Found) SHOULD be used instead. This response is cacheable unless indicated otherwise.

The 410 response is primarily intended to assist the task of web maintenance by notifying the recipient that the resource is intentionally unavailable and that the server owners desire that remote links to that resource be removed. Such an event is common for limited-time, promotional services and for resources belonging to individuals no longer working at the server's site. It is not necessary to mark all permanently unavailable resources as “gone” or to keep the mark for any length of time – that is left to the discretion of the server owner.

So, if a page must be removed this response should be returned. This can be accomplished in Apache using this code:

Redirect gone /tmp/temporary-file.html

It should be in the server configuration file, or an .htaccess file. This will return the 410 response for the file /tmp/temporary-file.html. You can also use a wildcard: RedirectMatch gone /tmp/*.html

That will match all files ending in .html in the /tmp/ directory. There is more information in an article by Mark Pilgrim.

Credits

Thanks to Phil Hunt for the original idea and Mark Tranchant for suggesting the 410 HTTP response.

Phil Hunt posted the idea to several Usenet newsgroups, you can read the original post (using Google Groups if you prefer).

See also

The W3C’s article Cool URIs Don’t Change.

Phil Hunt’s article Link Stable, or A Campaign For Real Hyperlinks.

The HTTP/1.1 specification, RFC 2616.