Canonical URL Issues and Link Equity
I’ve assessed hundreds – probably thousands – of small business websites over the past few years. Canonical URL issues seem to be a common problem for many of them, regardless of whether the site was built by a design firm or a do-it-yourself business owner.
For those who aren’t familiar with canonical URL issues, also referred to as url canonicalization (and sometimes “canonical home page issues” – which is technically incorrect as it does not just apply to the home page), put simply it is having the same page show up on multiple URLs inadvertently – not to be confused with purposely having multiple pages that contain the same text content.
If, for instance, your home page is accessible at both www.domain.com and domain.com, your site is suffering from canonical URL issues. In the worst case scenario, some pages are accessible at up to 6 or 7 different URLs…or more.
What URLs Are Being Linked To
While the duplicate content created by canonical URL issues may or may not have a negative impact on ranking, one thing is certain: it DOES have an impact on the link equity of the page. What does that mean? Well, in short, if the same page can be accessed using two, three, four or more URLs, it means each of those URLs could be bookmarked or shared on a variety of social media outlets or linked to by other websites.
Let’s say that 100 sites link to your home page, but your home page is accessible at www.domain.com, domain.com, www.domain.com/index.html and domain.com/index.html – all of which contain the same useful, and clearly popular content, based on 100 sites linking to it. Now, let’s say that 25 of those sites link to the URL www.domain.com, 25 others link to domain.com, another 25 to www.domain.com/index.html, and the last 25 to domain.com/index.html.
All of the links ultimately serve up the same content, so it doesn’t make any difference…right? WRONG! Instead of the home page being given credit for having 100 links, those four separate URLs are considered individual pages by the search engines and each is given credit for having only 25 links – even though the links ultimately lead a user to the same content. DOH! In a world controlled by Google and PageRank, the number of external links pointing to an individual URL can have an enormous impact on ranking.
What About Duplicate Content?
While some were put at ease by Google’s post back in September, entitled “Demystifying the Duplicate Content Penalty“, some in the search marketing industry still remain convinced that duplicate content issues can hurt a page’s ranking in the search results – myself included. I, and many of my search marketing colleagues, have enough experience to understand that leaving Google to figure things out for themselves and determining which URL should be the preferred URL in the search results is like playing Russian roulette – a point that I elaborated on in a previous post, “Duplicate Content – Did Google Do A 180?“.
The Solution: A 301 Redirect
Creating a 301 redirect is somewhat technical and involves making changes to the .htaccess file in the root directory of your domain, so most small business owners aren’t comfortable creating or modifying the file themselves. This is generally something that is best undertaken by an IT professional. That said, here is the redirect code that should be placed within the .htaccess file on (provided your server is running Apache with mod_rewrite enabled):

NOTE: this is the 301 rewrite code for a server running Apache – if your server is not running Apache, the redirect code is likely different from what is included above. This is yet another reason that creating a 301 redirect by modifying the .htaccess file is often tackled by an IT professional.
A 301 redirect points the browser to a single, preferred URL – the typical choice is www.domain.com. That means that if someone were to follow a link that pointed to domain.com, www.domain.com/index.html, or domain.com/index.html it will be redirected to www.domain.com automatically.
The biggest advantage to creating a 301 redirect is that existing links to any of the variations of that URL will continue to pass “link juice” – meaning you don’t have to inform the sites that may have linked to one of the newly redirected URLs of the change and there is no risk of losing the link juice being passed by those links.
Referring back to the previous example, adding a 301 redirect for domain.com, www.domain.com/index.html and domain.com/index.html will result in links to those URLs being recognized as links to www.domain.com, so www.domain.com will receive credit for all 100 links, rather than 25 links being attributed to each of four individual URLs. Problem solved!





Comments
great article.
may I reproduce this article to my blog? I will linkback
Reply
Alysson Reply:
February 5th, 2009 at 1:59 pm
You may reproduce the post, provided I am given proper credit as the original author and the links back to my site are not nofollow links.
Reply
Now you can specify canonical url with tag rel=”canonical”
look at http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html
Reply
Alysson Reply:
February 15th, 2009 at 12:29 pm
I read the news earlier this week that Google, Yahoo! and MSN are now recognizing that command. It should come in very handy, particularly for e-commerce sites that have several pages that contain the very same content.
And thanks for sharing the news of Joost’s new plugin.
Reply
Oh, and now you can did it on wordpress with “Canonical URL plugin” http://yoast.com/wordpress/canonical/
Reply
Now I have found one more great “canonical” plugin:
SEO No Duplicate http://wordpress.org/extend/plugins/seo-no-duplicate/
I think it more powerful than Joost’s canonical plugin.
Reply
The above code does not fix the canonicalisation for a URL request with www in it and an appended port number and/or a trailing dot.
Try either:
[code]RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com(\.|\.:[0-9]+|:[0-9]+)
RewriteRule (.*) http://www.example.com/$1 [R=301,L][/code]
or try this:
[code]RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L][/code]
Reply
Wow! Your grasp of code is truly impressive. I can’t lie…I used my host’s cPanel access to redirect the non-www to www and left it at that.
Thanks for taking the time to elaborate. I’m sure people will find the above information very useful!
Alyssons latest words of wisdom – Search Engine Optimization Jacksonville – Hometown Scams
Reply
You’re welcome!
There’s so many ways this code can be used that it’s very easy to build in an unintended response for some URL format that you haven’t considered.
That unwanted functionality can often silently erode searchengine listings and destroy traffic levels without leaving many clues as to what happened.
Reply
Am I correct is saying that:
Redirect Permanent / http://example.com
Does the same thing for a much lower cost (does not have to run the regex)
Max´s last blog ..Hide information about your server…
Reply
That redirect will fail because it needs to detect the domain that was requested, and only redirect if it is wrong in some way.
As coded, it will create an infinite loop after the first redirect.
You *must* use Mod_Rewrite, and redirect either for any wrong sub-domain, and/or for any domain with an appended port number.
Reply
Why not go a step futher and redirect all sub-domains to your prefered url. This would apply in the case that a wild card had been used in the zone file and for practical purposes its more convienent to apply this rule set via .htaccess than a server side redirect. Here is an example of the scenario. http://www.technogenics.fr/france-search-engine-optimization.html
Martin´s last blog ..Technogenics Services
Reply
Leave a Comment
Login or Register
READ THIS: Reasons To Login Before Commenting