A linkback is a protocol of communication between sites which allows the blog writers and web publishers to be informed when other blog writers or web publishers link to their post, article and any other document.
When notified, the blog writer (or blog system) can keep track which articles are linking to his article. A common practice in blog culture is to add the links to those linking articles in the bottom of the article.
Over the years, 4 linkbacks have been developed by the blog systems : Refback, Trackback, pingback and webmention.
Refback For Website Communication
Strictly speaking, Refback is not a linkback since it is not a protocol of communication between websites.
This article is part 2 of the series Linkbacks and Website Communication
Strictly speaking, Refback is not a linkback since it is not a protocol of communication between websites.
In other linkbacks, the linking site is responsible to inform the linked site about the linking document. But in this method, the linking site is not required to do anything and all the burden of finding the linking document fall on the linked site.
Refback is based on the fact that browsers used to add referer HTTP header to their document’s requests. This referer HTTP header is added to the document request only when the user clicks on a link to the linked document in the linking document and its value is the URL of linking document.
In order to keep track with the linking documents, the linkback system should process each HTTP request and check whether it contains referrer HTTP header.
This linkback system has the some drawbacks.
First, the Refback method needs that someone will click on the link in the linking document. If nobody clicks on the link, the system will not be notified about the linking document
Moreover, due to privacy concerns, HTML 5 added noreferrer hyperlink annotation which indicates that the browser must not send referrer information when the user clicks on the link.
In other words, when following a link annotated with noreferrer, the browser must not include a referer HTTP header. Also, Some browsers allow the user to decide whether the referer HTTP header should be sent to the website when clicking on a link. (see Block Referer Headers in Firefox).
Another drawback, As my server log shows, referral spam become a trend these days. Any spam site that wants to advertise himself use this unethical technique. In this kind of spam, a bot sends a huge amount of document requests with referer HTTP header whose value is the spam site which is responsible to advertise and corrupt the site statistics.I find that unneglectable amount of HTTP requests with referer HTTP header are faked requests.
Since the Refback method relies on the goodwill of browsers to send valid and real requests, this method is not suitable for this task anymore.
Trackback For Website Communication
In the webmention linkback, the linking site is responsible to inform the linked site about the linking document.
When a new document is added or exising document is updated, the linking site should extracts all the links in the document. For each link it finds in document, the linking site should find the webmention URL and send notification request to the linked site about the linking document.
The linking site should send standard HTTP POST request to webmention URL. The request must contains the following fields:
- source – The linking document URL
- target – The linked document URL
The linking site response
The response should response as described in spec
The webmention URL autodiscovery
There are 3 ways the linked site announce about its interest in webmention notification:
First, Add Link HTTP Header to document response with the value of webmention URL
webmention – http header
HTTP/1.1 200 OK Link: <document webmention URL>
Second, Embed a webmention URL link in the document’s header
webmention – link tag
<link href="<webmention URL>" rel="webmention">
Embed webmention URL link in the document’s body
webmention – a tag
<a href="<webmention URL>" rel="webmention" />
Pingback For Website Communication
In Pingback, the linking site is responsible to inform the linked site about the linking document.
When a new document is added or exising document is updated, the linking site should extracts all the links in the document. For each link it finds in document, the linking site should find the pingback URL and send notification request to the linked site about the linking document.
The linking site request
The linking site should send XML-RPC request to pingback URL which call the pingback.ping method with the following parameters:
- sourceURI – The URL of the linking document
- targetURI – The URL of the linked document
The linking site response
The linked site should process XML-RPC request and response as in described in spec
The pingback URL autodiscovery
There are 2 ways the linked site announce about its interest in pingback notification for a document
Add X-Pingback HTTP Header to document response with the value of pingback URL
Embed the pingback URL in the header of the document
Pingback – The link tag
<link href="<document pingback URL>" rel="pingback">
The linking site should download the linked document and extract pingback URL.
Trackback For Website Communication
In the Trackback linkback , the linking site is responsible to inform the linked site about the linking document.
When a new document is added or existing document is updated, the linking site should extracts all the links in the document. For each link it finds in document, the linking site should find the Trackback URL and send notification request to the linked site about the linking document.
The linking site request
The linking site should send standard HTTP POST request to Trackback URL. The request must contains a url field which should be the URL to the linking document. The request can contains some of the following fields:
- title – The title of the document.
- excerpt – An excerpt of the document
- blog_name – The name of the site where the document was published.
The linked site response
If the linked site should response as described spec
The linked site can decide to ignore the request. For example:
- The request does not contains the url field
- The linked site decides that it spam request. For example, the document does not link to the document.
The Trackback URL autodiscovery
There are 2 ways the linked site announce about its interest in Trackback notification for a document:
The first method is to Embed the Trackback URL in the header of the document
Trackback – The link tag
<link href="<document Trackback URL>" rel="trackback">
The second method is to Embed the following RDF document in the document
Trackback – The RDF document
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/modul/trackback/">
<rdf:Description rdf:about="<document URL>" dc:identifier="<document URL>" dc:title="" trackback:ping="<document Trackback URL>" />
</rdf:RDF>
The linking site should download the linked document and extract the Trackback URL from it.
Linkback Compaction
The Trackback and pingback are defacto standard and widely used by blogging systems
The Refback is an ancient systen is not suitable as the task as requires to process each HTTP request and it is spam friendly. The webmention is a new w3 draft for linkback and does not widely used yet.