This week, Google's Matt Cutts has been discussing rel=canonical, providing some info that webmasters might find pretty helpful. "A user submitted a question to Matt, which said, "It takes longer for Google to find the rel=canonical pages but 301 redirects seem to lose impact (link juice) over time. Is there similar churn with rel=canonical?"
He addressed this in the above video. Cutts' response was to say that some people ask how much PageRank/link juice if they lose if they use a 301 redirect, and that they lose just a "tiny, little bit" or "not very much at all".
"If you don't lose any, then there'd be some temptation for people to use 301 redirects for all the stuff on their site rather than links, since some amount of PageRank always sort of evaporates or disappears whenever you follow a link - people would say, 'Oh, why use links and not just use 301 redirects for everything?'" he says.
In regards to 301 redirects vs. rel=canonical, he says in general, he would use 301 redirects if you can, because they're more widely supported, everyone knows about how to follow them, and any new search engine is going to have to handle those. Also, if you can have it work within your own CMS, he says, then the user's browser gets carried along with the redirect.
Cutts also took to his personal blog to discuss rel=canonical a bit more, and said that Google actually doesn't use it all cases. "Okay, I sometimes get a question about whether Google will always use the url from rel=canonical as the preferred url. The answer is that we take rel=canonical urls as a strong hint, but in some cases we won’t use them," he says.
This applies to cases where Google thinks you're "shooting yourself in the foot by accident," like pointing it to a non-existent/404 page, or if they think your site has been hacked and the hacker added a malicious rel=canonical.
Google will also not use rel=canonical if it is in the HTML body or if it sees "weird stuff" in the HEAD section of the HTML. "For example, if you start to insert regular text or other tags that we normally only see in the BODY of HTML into the HEAD of a document, we may assume that someone just forgot to close the HEAD section," he says, suggesting that you make rel=canonical one of the first things (if not THE first thing) in your HEAD section.
Here's what Cutts had to say about the canonical tag when it was announced and WebProNews interviewed him about it a couple years ago: