To WWW or Not WWW : Canonicalization, SEO and the .htaccess Fix

It’s been awhile since my last post, and that means business has been good. I have a series of great new client projects to work, and that has kept me pretty busy. However, I needed a break from the layout and coding, so I thought I would add a new entry to the blog. This one deals with the use, or lack of use, of www on your sites URL, how it can affect your search engine rankings, and what you can do to correct the issue.
First, what really is the issue with using www or not you might ask. For one, it’s an issue of what is the best URL to serve for a given web page, otherwise referred to as canonicalization. Most of us would consider the following to be the same thing:
grademyshades.com
www.grademyshades.com
www.grademyshades.com/index.htm
Actually, the list could be a lot longer, and in this case these all point to the same page… but they don’t have to. Each of these URLs could actually represent a different page, and that’s how the search engines see it, as different pages. Just check out the following image for reference:

Notice above how Google has listed both grademyshades.com and www.grademyshades.com as two separate listings. So what’s the big deal? The deal is two-fold. First, search engines don’t like duplicate content and will very often hand out penalties because of it. This is exactly how the search engines see this - as duplicate content - two different pages with identical information and this is something you should definitely avoid. Second, search engines place a lot of weight on links from other sites to your pages. Let’s say that some of those links include the www in the url, and some do not. You are essentially splitting those links up between what the search engine sees as two different pages, and neither version of your page will rank as well as if all those links were pointed to the same page.
Good news, there is a simple fix that essentially makes the non-www version non existent. Just add the following bit of code to your .htaccess file (place in the root directory of your website - and replace domain.com with your domain) :
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
What this does is redirect any requests for the non-www version of you site to use the www version. It also issues a 301 permanent redirect code, so that the search engines will know to only index the www version. And there you have it - 2 simple lines of code to prevent or help correct what could be a big problem for your search engine optimization efforts.
Want more information on the subject? Here’s a good link from an industry insider on the subject of canonical urls (primarily from a google point of view) that should help answer more questions.

October 23rd, 2007 at 9:54 am
What if you want to use the non WWW version as your canonical url? In other words, you want everything pointing to: http://yourdomain.com
Then what would the code look like?
Travis
October 24th, 2007 at 2:36 pm
Hi Travis,
I believe this should do the trick.
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
Pretty much like the first example, but in line 1 we remove the “!” (respresents NOT and meant the url did not start with www, but now we are rewriting if it does start with www), and in the second line we leave the www out of the RewriteRule.
Again, remember to replace domain.com in the example above with your domain name.
April 17th, 2008 at 11:28 am
Great stuff! Do you know if it is possible to do this with Microsoft Live Small Business? If so please contact me!
April 17th, 2008 at 12:30 pm
I am not familiar with Microsoft Live Small Business, but I believe it probably runs on an IIS server. The example above uses .htaccess which works on Apache servers, not IIS.
However, you may look into isapi rewrite to accomplish the same thing. It is designed to work on IIS servers and you can get more detailed information about isapi rewrite by visiting http://www.isapirewrite.com/.