SEO Tip #115: Is There An Advantage to Using REL Canonical Over 301 Redirect?
Matt Cutts: I’m going to take your question and answer the question that I want to answer, which is some people seem to think, “Oh how much PageRank do I lose or how much link juice do I lose if I do a 301 redirect.” You lose just a tiny little bit, not very much at all but if you didn’t lose any then there would be some temptation for people to use 301 redirects for all the stuff on their site rather than links. Since some sort of PageRank always sort of evaporates or disappears whenever you follow a link people would say, “Oh why use links? Why not just use 301 redirects for everything?”
So that’s why, among other reasons there is just a little bit of link juice or PageRank that doesn’t pass through a 301 redirect but really you don’t need to worry about that and to the best of my knowledge it doesn’t change over time.
Now regarding 301 redirects versus rel canonical in general I would use 301 redirects if you can. The reason for that is that they are more widely supported, everybody knows about how to follow 301 redirects and any new search engine is going to have to handle those. The other reason is if you can have it work within your content management system then the user’s browser gets carried along with the 301 redirect as well.
The rel canonical is more appropriate whenever you can’t get to the server headers. So for example at my old school, UNC.edu, you know if I wanted to do a redirect from my old school account to my new domain at MattCutts.com I have to go to the IT guy and ask, “Hey can you make a redirect that goes from my old school account to this particular page?” And they have more and better things to do so I can just add a rel canonical on my homepage that points to the appropriate place on my new domain.
So if you can do 301 redirects I would definitely do it that way. If you don’t have the ability or the option to do 301 redirects; maybe you’ve moved from a free host or whatever reason you can’t control the server headers coming from the web server that’s when rel canonical makes sense.
But as far as the amount of PageRank that gets passed there is really not a lot of difference between them.