WWW vs. Non-WWW, The PageRank Effect and the Solution
Have you ever wondered if there is a difference
between using http://www.anysite.com and
http://anysite.com for your site links? Does this
affect your PageRank?
YES, there is a difference! Your domain name is simply
yoursite.com. Any thing added to the beginning of the
address is a sub domain, so www.yoursite.com is a sub
domain just like mail.yoursite.com or
forum.yoursite.com. It's just using www is so popular
that most of the sites adjust their DNS and web server
settings so that using www or not using it will lead to
your home page, this is what your visitors expect and
this is what you should do. Fortunately, this is done
automatically for you when you buy a domain name and
host your site in most cases.
So can you use both www.yoursite.com and yoursite.com to
link to your site? Yes you can, but I strongly recommend
that you don't!
Why? For SEO (Search Engines Optimization) reasons you
should always use the same form for your links, pick one
(with www or without www) and stick to it. This is called
canonicalization and it means picking the best URL when
you have a choice.
Here is the explanation:
Because www.yoursite.com is not the same as
yoursite.com and if you have different inbound links to
both URLs, this could cause two problems:
First, some search engines might "think" that this is a
duplicate content and penalize your site for this!
Second, splitting your links will affect your PageRank as
PageRank is all about links, so if you have 1000 inbound
links to www.yoursite.com and 500 inbound links to
yoursite.com then you will have different PageRank for
both URLs and you will lose valuable inbound links
because they will be split into links for both URLs.
So what is the solution for this problem?
First, choose one form and stick to it. I prefer
www.yoursite.com because this is what most people use.
Also most people press (CTRL + Enter) in Internet
Explorer or Firefox to append http://www and .com to
whatever they have typed in the address bar of both major
browsers.
Second, in Google's Webmaster Tools, click "Preferred
domain" and choose the same URL that you chose in the
previous step.
Third, do something to redirect your traffic from one URL
to the other (like from non-www to the www). That is what
the major sites have done, try typing google.com, msn.com
or yahoo.com and you will be redirected to
www.google.com, www.msn.com and www.yahoo.com. The right
method is to use
"301 Moved Permanently"
as this will make sure that search engines will combine
the value of your inbound links.
I will show you two methods to do that. The best and the
most frequently used method to do that is in a file
called .htaccess (HTTP Access). It's a text file used in
most Linux based web servers. Just make a text file
called .htaccess and upload it to the root directory of
your site or append those lines to it if the file is
already there:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^yoursite.com [NC]
RewriteRule ^(.*)$ http://www.yoursite.com/$1
[L,R=301]
This will redirect all the traffic from the non-www
to the www of your site with the "301 Moved Permanently"
server response.
As I have told you this is the best and the fastest
method, but what if you - for some reason - can not use
the .htaccess method?
You can use PHP, just add those lines to your home page,
but make sure they are the first lines in the page or you
will get an error "headers already sent".
<?php
if (substr($_SERVER['HTTP_HOST'],0,3) != 'www')
{
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.yoursite.com/');
}
?>
While you need to put one .htaccess file in the
root directory of your site and all the pages in your
site will work properly, this is not the case for the PHP
method, that's why I have told you that the .htaccess
method is better. The previous PHP code will work only
for the home page so you need to add those lines to the
top of every page you want to redirect from the non-www
to the www URL:
<?php
if (substr($_SERVER['HTTP_HOST'],0,3) != 'www')
{
header('HTTP/1.1 301 Moved Permanently');
header('Location:
http://www.'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
}
?>
You can put those lines in an external PHP file and
use PHP Include function to include this file.
Remember:
Always use the .htaccess file method if you can.
Do not forget to replace "yoursite.com" with your domain
name.
More Useful Tutorials
How To Add A Favicon To Your Site?Favicon is the small icon that you see when you visit many sites next to the address of the site, in the tab of the site if your browser supports tabs and in the bookmarks or favorites. I will show you how toimplement a favicon in your site using only free programs.
Gone In Sixty Seconds! (What To Avoid In Your Site)How to make the visitors of your site leave in seconds and never come back! (What to avoid in your site).
Some Hints For Choosing A Domain NameChoosing a domain name is not an easy task. You have to take much time thinking before actually buying a domain name. These hints will help you choose a good one.
Current Comments (6)
Not EVERYONE in the web world uses a linux-based web server. There is no '301 redirect' for a Windows IIS-based server - and some of us are stuck with IIS whether we like it or not !!! There is also NO factual basis for the ASSUMPTION that Google penalizes you for duplicate content.
Well, most of the web world uses a linux_based web server, for a windows IIS-based server, you can use asp for 301 redirect like this: <%@ Language=VBScript %> <% Response.Status="301 Moved Permanently" Response.AddHeader "Location", "http://www.domain.com" response.end %> This script should be the first on the page. For a detailed how to redirect with IIS Read this: http://support.microsoft.com/default.aspx?scid=kb;en-us;313074&sd=tech About duplicate content, it's mentioned in many of the people working for Google blogs.
Nice posted "Turorialsroom.com", it was really informative and easy to catch up and its well explained and justified. As an SEO specilist too, i really appreciated and thank full for what you shared... more power for this room. Best Regards, ARED
I find it best to just set up a new website in IIS and define all additional domains (inc non-wwws) in the headers. From here you just fill in the redirect address and your sorted. One important thing though, don't forget to tick the 'Permanent Redirect' option otherwise you get the default 302/temporary redirect - this isn't good for your SEO... if you don't have access to IIS the only alternative is to put it in your asp/asp.net code as described in a previous post - just type in asp 301 redirect code in to Google. IIS needs more htaccess built into the application not as a third party addon, it would make life so much easier!
Well - I have more inbound links to non-www version but I am shifting to www version. I have moved permamanently my all nonwww URLs to www URLS. My question is should I redirect www to non www as I have better linkes in non www version. Or it has same effect in re-directing all URLS to one domain as at the end all inbound linkes will be considered as one URL. Please inform me in this case when you have more inbound and outbound linkes in one form of domain. Thanks !
To IT, It doesn't matter which version to choose (www or none-www), it's only important to choose just ONE version and stick to it. In your case, if you shift to the www version and do a 301 redirect you won't lose traffic at all because it will all be redirected automatically to the www version but you will lose your PageRank until the next Google update.So if you care much about that, don't shift, just redirect the www to the none-www version in case some on is linking to you with www.