A permalink (a portmanteau made by contracting the phrase "permanent link") is a type of URL designed to refer to a specific information item (often a news story or weblog item) and to remain unchanged permanently, or at least for a lengthy period of time. Permanence in links is desirable when content items are likely to be linked to from, or cited by, a source outside the originating organisation, and are desirable even within organisations when the complexity of websites grows to more than a modest number of pages. In particular, the growth of extensive commercial websites built on database-backed content management systems necessitated deliberate policies with regard to URL design and link permanence.
The earliest weblogs were static HTML pages. There were no links to entries per se; users had to scroll through other entries to find the desired one. If the author were to post many entries, this could mean that a specific entry could only be accessible for several days, if that. Before the introduction of permalinks (circa 1999), web users frequently discovered that URLs they had previously stored which referred to a specific story had, after some time, become invalid. This was a particularly common phenomenon when professional websites began to migrate from internal URL schemes based on the directories in which static html data was stored to all-dynamic storage, where all the pages served were generated on the fly by a database backed content management system.
Similar stories were frequently given meaningless "magic cookie" names, and the (seemingly arbitrary) number used to generate these was often an internal database identifier integer. As articles were moved, deleted, and new articles created, the unique correspondence between articles and these database identifiers were lost, and again links could no longer be trusted to refer to the correct article after some time had passed.
Permalinks typically consist of a string of characters which represent the date and time of posting, and some (system dependent) identifier (which includes a base URL, and often identifies the author, subscriber, or department which initially authored the item). Crucially, if an item is changed, renamed, or moved, its permalink remains unaltered. If an item is deleted altogether, its permalink cannot be reused.
Permalinks have subsequently been exploited for a number of innovations, including link tracing and link trackback in weblogs, and referring to specific weblog entries in RSS or Atom syndication streams.
Permalinks are supported in most modern weblogging and content syndicaton software systems, including Movable Type, LiveJournal, and Blogger.
Popular permalink formats
Authors of blogging software and websites which host users weblogs have not agreed a standard format for permalink URLs. Indeed, they may never do so, as some feel that meta-information about an article should be obtained from the associated RSS stream or from <meta> tags in the content itself, and that URLs shouldn't be "cracked" to obtain this information. Consequently, although various permalink implementations accomplish essentially the same job, several vendors have produced different solutions.
Movable Type and typepad.com:
http://<username>.typepad.com/<username>/<4 digit year>/<2 digit month>/<15 character name>.html
http://<username>.blogspot.com/<4 digit year>/<2 digit month>/<article name>.html
http://<site-specific prefix>/<4 digit year>/<2 digit month>/<2 digit date>/<article name>/
LiveJournal / bloglines:
http://www.livejournal.com/users/<username>/<unique integer identifier>.html
http://<site-specific prefix>/midcom-permalink-<document unique identifier>
Blog entries are usually laid out as follows:
Comments, permalink, and what category the entry was posted to (known as metadata)
Permalinks are usually represented by text (i.e. "Permalink" or "Link to this Entry"), but sometimes a symbol may be used. The most common symbol used is the pound sign, or #. However, certain websites may have a "trademark" symbol, such as an asterisk or dash. Sometimes, this trademark character is used as a permalink instead. Recently, it has also become acceptable for the entry's title to serve as the permalink.
PermaLinks can be displayed on the blogging system or Content Management System using a HTML link element. This way authoring tools can automatically detect the PermaLink and use that for linking instead of the regular URL. The Link element should include two attributes:
<link rel="PermaLink" href="<PermaLink URL>" />