A canonical page is the preferred version of a set of pages with highly similar content. It’s common for a site to have several pages listing the same set of products. For example, one page might display products sorted in alphabetical order, while other pages display the same products listed by price or by rating. In such instances you can use rel=canonical to let Google know what the preferred version pages is.
According to Matt Cutts, Google takes rel=canonical urls “as a strong hint”, but in some cases they will not use them for several reasons.
There are two main reason why Google wouldn’t honour canonical declarations:
1. Most people use open source CMS which could potentially be vulnerable to hijacking. Hackers and blackhat SEOs could potentially inject rel=canonical in a page which would lead to a potential disaster.
2. Some webmasters might use rel=canonical without actually knowing its impact or in some case they might duplicate a page and forget the fact that they are using an existing rel=canonical.
You must use rel=canonical in the HEAD section of your page as using it in the BODY section makes it less trustworthy. Matt Cutts recommends the following:
“But in general, as long as your HEAD looks fairly normal, things should be fine. If you really want to be safe, you can make sure that the rel=canonical is the first or one of the first things in the HEAD section. Again, things should be fine either way, but if you want an easy rule of thumb: put the rel=canonical toward the top of the HEAD.”
Canonical vs. 301 redirect dilemma?