Canonical link element
A canonical link element is an HTML element that helps webmasters prevent duplicate content issues by specifying the "canonical" or "preferred" version of a web page[1][2] as part of search engine optimization. It is described in RFC 6596, which went live in April 2012.
Contents
Purpose
A major problem for search engines is to determine the original source for documents that are available on multiple URLs. Content duplication can happen in a lot of ways. The most common reasons for duplication are:[3]
- Duplication due to GET-parameters
- Duplication with multiple URLs due to CMS
- Duplication due to accessibility on different hosts/protocols
- Duplication due to print versions of websites
Duplicate content issues occur when the same content is accessible from multiple URLs.[4] For example, http://www.example.com/page.html would be considered by search engines to be an entirely different page from http://www.example.com/page.html?parameter=1, even though both URLs return the same content. Another example is essentially the same (tabular) content, but sorted differently.
Canonical tags can also be useful to solve www and non-www duplicate content—where two URLs, identical except that one begins with "www" and other does not, point to the same page. This particular problem can be solved by proper use of the canonical
tag.[5][6]
In February 2009, Google, Yahoo and Microsoft announced support for the canonical
link element, which can be inserted into the <head> section of a web page, to allow webmasters to prevent these issues.[7] The canonical link element helps webmasters make clear to the search engines which page should be credited as the original.
How search engines handle rel=canonical
Search engines try to utilise canonical link definitions as an output filter for their search results. If there is more than one URL with the same content (duplicate content) in the result set, the canonical link URL definitions will likely be incorporated to determine the original source of the content.
According to Google, the canonical
link element is not considered to be a directive, but a hint that the ranking algorithm will "honor strongly".[1][8]
While the canonical link element has its benefits, Matt Cutts, the head of Google's webspam team, has claimed that the search engine prefers the use of 301 redirects. Cutts claims the preference for redirects is because Google's spiders can choose to ignore a canonical link element if they feel it is more beneficial to do so.[9]
Implementation
The canonical link element can be either used in the HTML <head>, or sent with the HTTP header of a document. For non HTML documents, the HTTP header is an alternate way to set a canonical URL.[3]
By the HTML 5 standard, the
<link rel=canonical>
HTML element must be within the <head> section of the document.[citation needed]
Examples
xHTML
Lua error in package.lua at line 80: module 'strict' not found.
<html>
<head>
<link rel="canonical" href="http://example.com/" />
</head>
<body>
...
<link rel="canonical" href="http://example.com/index.php" />
HTTP
HTTP/1.1 200 OK
Content-Type: application/pdf
Link: <http://example.com/page.html>; rel="canonical"
Content-Length: 4223
...
References
- ↑ 1.0 1.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 3.0 3.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ https://support.google.com/webmasters/answer/139066#2
- ↑ Lua error in package.lua at line 80: module 'strict' not found.