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:
- it is redirected permanently via 301
- it returns a 404 for an extended period of time (they will keep checking for a while before dropping a URL)
- 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?