Is there an advantage to using rel= canonical over a 301 redirect

Today's question comes from Sam Crocker in London, and Sam asks, Hey Matt, I had a lingering question about using rel=canonical versus 301 redirects.

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?

So I'm going to take your question.

I'm going to 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?

So you lose just a tiny little bit, not very much at all.

But if you didn'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 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 verses rel canonical, in general I would use 301 redirects if you can.

The reason for that is that they're more widely supported, everybody knows about how to follow 301 redirects, any new search engine is going to have to handle those.

And 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 for when you can't get to the server headers.

So, for example, at my old school, unc.edu, 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, this particular page.

And they've got more and better different things to do.

So I can just add a rel canonical on my home page 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 for 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's really not a lot of difference between them.