There’s quite a bit of confusion over 301 redirects and how they effect SEO and a sites rankings. We’ve extensively used permanent 301 redirects on both our own and client sites and in this article I’ll explain how to use them and what you should expect SEO wise.
First some basic information for those new to permanent redirects.
What is a permanent 301 Redirect
A 301 or permanent redirect basically tells a browser (or search engine spider) that the site or page it is accessing has moved permanently. It then immediately redirects that page to the new one.
Search engines like Google will attempt to pass SEO benefit (PR and anchor text benefits) from the old page to the new page.
How to Setup a 301 Redirect Within your .htaccess File
There’s several ways to setup a 301 redirect, probably the easiest is via your .htaccess file since it doesn’t require access to the server, just FTP access. The .htaccess file is a text file that you add to your site to store site and even directory specific server information (you can have a .htaccess file for every directory or just one for the whole site). Basically it adds to or overrides the current server settings.
If you have trouble creating a .htaccess file (some text editors won’t create a file named .htaccess) download this example one below (or one of the others later) and edit to your needs.
Example .htaccess file (all the code mentioned in this article)
A Simple 301 Redirect
A simple 301 redirect that redirects an old page to a new page for example to redirect www.seo-consultant-services.co.uk/old-seo.htm to www.seo-consultant-services.co.uk/new-seo.php do the following.
Open your .htaccess file in a text editor (like Notepad) and add the following code:
RewriteEngine On
Redirect 301 /old-seo.htm http://www.seo-consultant-services.co.uk/new-seo.php
Or download this .htaccess file and edit to your needs.
The first part (RewriteEngine On) might not be needed, but just in case it’s turned off on your server add it (only needs to be added once per .htaccess file).
Save the file and upload the .htaccess file to the root of the domain that hosts the old page: “root of domain” means if you wanted to load it with a browser it would be found at http://www.seo-consultant-services.co.uk/.htaccess
Now when accessing http://www.seo-consultant-services.co.uk/old-seo.htm it will immediately redirect to http://www.seo-consultant-services.co.uk/new-seo.php and Google etc… should pass any link benefit (PR and anchor text benefits) to the new page.
Be patient since it takes time for Google etc… to re-index the page and pass benefit to the new page, during this period (usually within 6 weeks) you may see a drop in SERPs, but it should be temporary.
You can use the same procedure above to redirect to another site, if we added the following to your .htaccess file on www.seo-consultant-services.co.uk
RewriteEngine On
Redirect 301 /old-seo.htm http://www.seo-gold.com/new-seo.php
or the code below to use the same file name as the old site-
RewriteEngine On
Redirect 301 /old-seo.htm http://www.seo-gold.com/old-seo.htm
When we load www.seo-consultant-services.co.uk/old-seo.htm it will redirect to www.seo-gold.com/new-seo.php or www.seo-gold.com/old-seo.htm respectively.
Download this .htaccess file and edit to your needs.
Now you know how to setup a simple 301 redirect one page at a time for varying effects.
301 Redirects and www/non-www Canonical Issues
There’s two ways to view most sites, that’s the www and non-www version. I won’t go into the full history of www (mainly because I don’t know it in detail), it’s enough to know when the first websites went online they were put in the folder www on the server (World Wide Web) and to access them you had to use the URL structure www.domain.com and it basically became the standard way to access a site via a browser. But, it’s not the only way, the true ‘location’ of the files are under domain.com (the www is in fact a sub-domain, you can have a completely separate site at www).
This has led to problems with search engines like Google indexing both versions resulting in duplicate content and sharing link benefit problems. Some webmasters link to the www version and others the non-www, search engine spiders follow the links and spider the site twice.
The major search engines have the ability to determine the www and non-www versions are the same and combine the results (passing all the benefit to just one version), but occasionally it fails and we see both versions indexed, we call this a www/non-www canonical issue. This is bad for the site owner since link benefit (PR/anchor text) is shared over two sites (making it harder to gain competitive SERPs).
To check if you have a www/non-www canonical issue perform a site: search in Google-
site:http://domain.tld
The above search will find all pages indexed under the domain including the www and non-www versions. If you have a small site look through what is indexed, if you find both www and non-www pages indexed you have a canonical problem.
For larger sites the next search will only find the www version-
site:http://www.domain.tld
If there’s differences you might have a canonical problem. To be safe use the .htaccess code listed below as then you’ll never have to worry about www and non-www canonical problems again.
301 Redirects Fixes the www/non-www Canonical Issue
Fortunately a small amount of code within your .htaccess file located at root can solve the canonical problem. What this code does is 301 redirect one form of the site to the other, it’s like you setup an unlimited number of the simple 301 redirects I listed earlier on the fly.
If you use the www version use this code
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.seo-consultant-services\.co.uk$
RewriteRule (.*) http://www.seo-consultant-services.co.uk/$1 [R=301,L]
The code above will 301 redirect the non-www version to the www version. Obviously replace seo-consultant-services and co.uk with your domain name/tld.
Download the 301 redirect code in a pre-made .htaccess file and edit to your needs.
If you use the non-www version use this code
RewriteEngine On
RewriteCond %{HTTP_HOST} !^seo-consultant-services\.co.uk$
RewriteRule (.*) http://seo-consultant-services.co.uk/$1 [R=301,L]
The code above will 301 redirect the www version to the non-www version. Obviously replace seo-consultant-services and co.uk with your domain name/tld.
Download the 301 redirect code in a pre-made .htaccess file and edit to your needs.
More Complex Permanent 301 Redirects
The above 301 permanent redirects cover most situations you’ll come across, below I’ll post a couple of detailed permanent redirects for when you want to change domain names for an existing site whilst avoiding any www and non-www canonical problems.
www version
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.seo-gold\.com$
RewriteRule (.*) http://www.seo-consultant-services.co.uk/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^seo-gold\.com$
RewriteRule (.*) http://www.seo-consultant-services.co.uk/$1 [R=301,L]
The code above will 301 redirect both the www and non-www version of seo-gold.com (the old domain) to the WWW version of seo-consultant-services.co.uk (the new domain). Add this .htaccess file to the OLD site and upload the files from the old site to the new to see a seamless switch from an old domain to a new one.
Non-www version
RewriteEngine On
RewriteCond %{HTTP_HOST} !^seo-gold\.com$
RewriteRule (.*) http://seo-consultant-services.co.uk/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.seo-gold\.com$
RewriteRule (.*) http://seo-consultant-services.co.uk/$1 [R=301,L]
The code above will 301 redirect both the www and non-www version of seo-gold.com (the old domain) to the non-www version of seo-consultant-services.co.uk (the new domain). Add this .htaccess file to the OLD site and upload the files from the old site to the new to see a seamless switch from an old domain to a new one.
Expect some temporary (under 6 weeks) SERPs drops as Google etc… take the new 301 redirects into account.
Download both versions of the code above in a pre-made .htaccess file and edit to your needs.
Don’t forget when moving domains you should also add a .htaccess file that deals with canonical problems to the new domain (the code under the heading “301 Redirects Fixes the www/non-www Canonical Issue”).
This article should cover the vast majority of scenarios requiring 301 redirects.

18 responses to 301 Redirects and www/non-www Canonical Problems
thanks for owsome guide for 301 and canonical but I have few question and i am glad if u answer it and add to your post.
Question1:-I guess this htaccess redirect for linux hosting but if it is windows hosting than what will be the procedure.
Question2:- Many web site hosting provide Cpanel for redirect will it permenent redirect or temporary.
Please guide in details and this post is vary useful
301 Redirects and www/non-www Canonical Problems
This is vary nice post for redirect and i understand everything now.
But i have one question that how to do redirect if hosting is windows as this .htacces is for linux web hosting.
Thanks,
This is really useful matter for me. I have a blog which is indexed for both www and non www, I suffered from supplemental index. Thaks for sharing.
thanks, it works
Thanks – great information. Does this matter on an old site? My site has been up since 1997, without a canonical redirect. So… I’ve read that implementing this might not be a good idea on older sites. To your knowledge, is this true? Thanks. -jp
I think you forgot to escape the .uk in the second line of code in “If you use the www version use this code”
My Dear Developers,
This is Mahalakshmi. We are using Shared windows server hosting. I would like redirect non www pages to www using 301 redirect. On our server we don’t have IIS, no asp pages. So Please help me how to redirect all non www pages to www html pages. Please help on this issue.
Advanced thanks.
301 Redirects and www/non-www Canonical Problems
Man! Your .htacess example file is the best! Tks!
Very well written and explained. Thanks for sharing this important information and offering the downloads for a hands on quick update and edit. I recently had a redirect nightmare with literally 700-1000 pages. I ended up adding roughly 2-300 redirects and most of the remaining were able to be done by redirecting whole directories. What a daunting task to have to enter 1000 manual entries. Thanks again for the info.
301 Redirects and www/non-www Canonical Problems
A huge Thank You! to you for this information…
I’ve tried to follow somewhat similar (but less specific) directions on how to make Canonical changes to my htaccess file…all without success…until now…
Your kind and patient explanations of what the changes will do and how they will actually function and look like made an enormous difference…
I simply copied your code and made the appropriate changes germain to my url…and presto!
instant success…
I really can’t thank you enough…
kristo
301 Redirects and www/non-www Canonical Problems
Just wanted to say, after trying a lot of different methods to redirect from non www to www without any sucess your guide saved the day
Many thanks and I will be adding this page as a bookmark for future reference, top work!
Many Thanks
i want to 301 redirect my page http://business.vsnl.com/matchmakers/index.html to
http://thangavelmatch.com
I cannot upload .htaccess to my rootfolder which is business.vsnl.com (they dont allow us).
Now how can i redirect using 301 ?
anyone pls help me. My old website has good website rankings and it is going to expire in 6weeks.
301 Redirects and www/non-www Canonical Problems
@Rajesh -> if your hostingprovider doesn’t allow you to use a .htaccess file, then consider to move to another provider.
otherwise… use the meta tag http-refresh to the new site
I am not able to use .htaccess file. Main problem is, I am not able to where to locate that file in my web application. I am using Tomcat 5.0 as webserver on windows machine. Anyone can please send me steps with directory structure to us .htaccess for www/non-www Canonical Redirection.
301 Redirects and www/non-www Canonical Problems
Wow! Thank you a ton.. explanation was perfect and easy to comprehend. Much appreciated.
Hey,
Everything is fine but what about window hosting problem? how we can resolve url canonical issue with window hosting.
Regards
sushilver
I know this post is ages old but just wanted to say thanks, this file saved me a total headache.
Thank you so much!
Out of the tens of articles I have seen on the subject, yours is the only one to provide code that WORKS!!
Leave a reply to 301 Redirects and www/non-www Canonical Problems