I have been spending a bit of time working through implementing the rel=canonical tag on a number of sites and I found myself returning to the Google Webmaster Central post on the subject trying to figure it all out. The problem is that there are too many questions in the comments section and it takes forever to find the answers and clarifications from the Googlers. So I figured I would just do some cutting and pasting and post only the answers right here. This will save us all a bit of time:
Here are the first FAQs created by the Googlers:
Now, you can simply add this <link> tag to specify your preferred version:
<link rel=”canonical” href=”http://www.example.com/product.php?item=swedish-fish” />
inside the <head> section of the duplicate content URLs:
and Google will understand that the duplicates all refer to the canonical URL: http://www.example.com/product.php?item=swedish-fish. Additional URL properties, like PageRank and related signals, are transferred as well.
This standard can be adopted by any search engine when crawling and indexing your site.
Of course you may have more questions. Joachim Kupke, an engineer from our Indexing Team, is here to provide us with the answers:
Is rel=”canonical” a hint or a directive?
It’s a hint that we honor strongly. We’ll take your preference into account, in conjunction with other signals, when calculating the most relevant page to display in search results.
Can I use a relative path to specify the canonical, such as <link rel=”canonical” href=”product.php?item=swedish-fish” />?
Yes, relative paths are recognized as expected with the <link> tag. Also, if you include a <base> link in your document, relative paths will resolve according to the base URL.
Is it okay if the canonical is not an exact duplicate of the content?
We allow slight differences, e.g., in the sort order of a table of products. We also recognize that we may crawl the canonical and the duplicate pages at different points in time, so we may occasionally see different versions of your content. All of that is okay with us.
What if the rel=”canonical” returns a 404?
We’ll continue to index your content and use a heuristic to find a canonical, but we recommend that you specify existent URLs as canonicals.
What if the rel=”canonical” hasn’t yet been indexed?
Like all public content on the web, we strive to discover and crawl a designated canonical URL quickly. As soon as we index it, we’ll immediately reconsider the rel=”canonical” hint.
Can rel=”canonical” be a redirect?
Yes, you can specify a URL that redirects as a canonical URL. Google will then process the redirect as usual and try to index it.
What if I have contradictory rel=”canonical” designations?
Our algorithm is lenient: We can follow canonical chains, but we strongly recommend that you update links to point to a single canonical page to ensure optimal canonicalization results.
Can this link tag be used to suggest a canonical URL on a completely different domain?
No. To migrate to a completely different domain, permanent (301) redirects are more appropriate. Google currently will take canonicalization suggestions into account across subdomains (or within a domain), but not across domains. So site owners can suggest www.example.com vs. example.com vs. help.example.com, but not example.com vs. example-widgets.com.
Sounds great—can I see a live example?
Yes, wikia.com helped us as a trusted tester. For example, you’ll notice that the source code on the URL http://starwars.wikia.com/wiki/Nelvana_Limited specifies its rel=”canonical” as: http://starwars.wikia.com/wiki/Nelvana.
The two URLs are nearly identical to each other, except that Nelvana_Limited, the first URL, contains a brief message near its heading. It’s a good example of using this feature. With rel=”canonical”, properties of the two URLs are consolidated in our index and search results display wikia.com’s intended version.
And here are the questions answered in the comments section: