Changing URLs? 301 redirects vs. rel canonical

There comes a time in nearly every website’s life cycle when it becomes necessary to change the URL structure of a page or an entire site. The most common reasons I’ve seen are:

  • Switching CMS platforms or a site redesign
  • Implementing tactical SEO recommendations to improve page relevance
  • Re-categorizing content within a site’s information architecture

For simplicity’s sake, I’ll use OldPage.html and NewPage.html in the examples below.

Implications for rankings and traffic

Any of these scenarios could spell trouble for the page’s rankings and organic search engine traffic. Why? Because Google’s crawler knows about OldPage.html but not NewPage.html. OldPage.html has links pointing to it from internal and external pages. OldPage.html has history with Google, which accounts for some of the trust and credibility factors in their ever-changing ranking algorithm.

Even if the content stays the same between OldPage.html and NewPage.html, search engine crawlers will not pick up on the new address unless instructed to do so with a 301 redirect, links from internal navigation or inclusion in an XML sitemap.

But what about applying a rel=canonical tag to OldPage.html that points to NewPage.html? Would that accomplish the same things as a 301 redirect?

301 redirects vs. rel=canonical

For the uninitiated, a 301 redirect is an instruction to your web server to automatically forward requests for OldPage.html to NewPage.html. The “301” portion means “this page has permanently moved” and search engines will begin to transfer links and other ranking criteria from OldPage.html to NewPage.html. Eventually, OldPage.html will be removed from Google’s index and search results and NewPage.html will likely take its place.

The rel=canonical <link> tag serves a different purpose. When placed in the <head> section of OldPage.html (and pointing to NewPage.html), it tells search engines that the content on OldPage.html is identical (or nearly identical) to the content on NewPage.html. This helps the search crawlers and ranking algorithms sort out duplicate content problems on sites with very complex and dynamic URL structures. When a rel=canonical tag is found, Google will begin to transfer PageRank and other ranking criteria from OldPage.html to NewPage.html. But, the key difference is that OldPage.html still exists somewhere in Google’s index and rankings.

Are they interchangeable?

No. The 301 redirect is meant to be used when one URL is permanently replaced with another. The rel=canonical tag should be reserved for two (or more) pages that still exist but are largely identical. There’s no need for each page to be indexed and compete with each other, so it makes sense to tell Google which copy you prefer them to rank.

What happens if I use canonical instead of 301?

If OldPage.html still exists (resolves when the URL is typed in the address bar), the page will persist in Google’s index but should not continue to rank well because they will start to favor the canonical page (NewPage.html).

OldPage.html’s rankings will drop over time due to fewer internal links, but the canonical tag won’t make it disappear entirely. It could theoretically remain in their index until one of the following occurs:

  1. it is redirected permanently via 301
  2. it returns a 404 for an extended period of time (they will keep checking for a while before dropping a URL)
  3. a meta robots “noindex” tag is added

The corollary to that is NewPage.html will soon start to rank higher in Google because of the added internal links and canonical tag on OldPage.html will consolidate PageRank and links on NewPage.html. In most cases, the rel=canonical tag will likely not pass 100% of the PageRank applied to OldPage.html. But then again, a 301 redirect doesn’t pass 100% of the PageRank either.

A couple of caveats

Keep in mind that the canonical tag is viewed as a “hint”, not a “directive” to Google. They will try to honor it but make no guarantees that it will be followed. I still recommend the 301 redirects as the best case scenario for changing URLs because they should work faster. If they are not possible, properly implementing the canonical tag will help fill the gap.

Even though Bing and other crawlers now recognize the canonical tag, their implementation may not be as quick to notice changes or transfer PageRank and rankings to NewPage.html.

What have you noticed when comparing the impact of 301 redirects and rel=canonical tags?


  1. says

    The 301 it’s a little bit risky… I used once the 301 for one small blog and Google totally deleted all the pages present in its index. Basically I burned out 2 weeks of work. With the canonical URL you can play around in a safer way.

    • says

      I know 301’s can cause trouble if implemented incorrectly. I’ve never heard of proper redirects causing a site to be de-listed before the new pages are indexed and ranking.

      Both types of URL management have pros and cons but can be really powerful in the right hands.

  2. says

    Thanks for post Andrew. I can’t answer you question as yet but I think I’m going to opt for the 301 redirects to reorganize my site.
    What’s the idea of them being powerful in the right hands?
    Anyway I hope I’m going to use the 301 correctly( I hope).
    I’ll copy old post into a new post and publish it in correct category and then add the 301 redirect to the old post pointing to the new (duplicate) posts url.

  3. says

    Hi Andrew,

    Thank you very much for this helpful article.

    Some websites refer to their homepage with these two url:
    a) domain.ext/
    b) domain.ext/homepage

    There are also multilanguage websites that use two urls for the same pages (because lang=default website language):
    a) domain.ext/page
    b) domain.ext/lang/page

    What is your suggestions about that?

    • says

      Good questions. In those two cases, I would use the rel=canonical tag on the duplicate versions of each page. This will tell the search engines that you recognize the duplicate content but prefer to promote one version over the others.

        • says

          301 redirects would also work, but you might end up with a complex set of redirect rules if the site is large or the CMS is complex. I was assuming the site was large, which could justify the canonical tags as a more scalable option. If you have fewer pages, the 301’s might be a good option. Good luck!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>