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!
PowerPoint to Video says
great article.
may I reproduce this article to my blog? I will linkback
Alysson says
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.
Seo Keeper says
Now you can specify canonical url with tag rel=”canonical”
look at http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html
Alysson says
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.
Seo Keeper says
Oh, and now you can did it on wordpress with “Canonical URL plugin” http://yoast.com/wordpress/canonical/
Seo Keeper says
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.
g1smd says
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]
Alysson says
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
g1smd says
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.
Max says
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… =-.
g1smd says
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.
Martin says
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 =-.
Steve says
What about a case where you have multiple, different domains that all point to that server and you want to specify one as the Canonical Name of the site?
I’ve taken these examples, along with others, and tried those in my .htaccess file without any success. Any advice or examples you can give would be helpful.
-Steve
Alysson says
Hello, Steve. Good question. I assume you’re referring to a scenario similar to the following:
Actual website:
domain.com
Additional separate domains you want to redirect the same domain.com website:
domainA.com
domainB.com
domainC.com
domainD.com
Correct? If that’s the case, you will want to set up a 301 redirect for each individual domain so it will resolve at domain.com. Many registrars provide you with access to be able to set up redirects within your account control panel. GoDaddy, for instance, provides you with the ability to set up a 301 redirect from within your account. That way you do not have to access the .htaccess file or input the appropriate code yourself, as their control panel will do that for you.
Don’t just assume it has been done correctly. Once the rest of the domains are redirecting to the preferred domain go to http://www.seo-browser.com and run an advanced report for each of the domains you’ve redirected so you can check the server response codes. If everything is working as it should be each domain should indicate that it has been permanently redirected to your preferred domain.
I hope this helps a bit!
Price India says
I have a very different problem. In my webmaster tool show duplicate title and add ?ftr=vidpgurl on url of my website. please tell the solutions. thanks!
[Reply]
Alysson says
Looks like you can tack that on to the end of every URL throughout your site and still serve up the correct page. My best guess would be that someone, somewhere has linked to your site using a URL with that tacked on the end and that Google sees that as a separate URL from the actual URL because content is served up just the same.
One resolution would be to install the Redirection plugin (http://wordpress.org/extend/plugins/redirection/) and create a redirect for those pages that are being reported by GWT to the actual page. That way anyone who happens to follow the aforementioned link would arrive at the correct page, but just as importantly Google would know that URL ending in ?ftr=vidpgurl isn’t your preferred URL for the page.
.-= Alysson´s last blog ..DANGER – Pit Bulls Are MONSTERS! =-.