How to move your WordPress blog to a new domain without losing traffic

How to move your WordPress blog to a new domain without losing traffic the proper way, a summary of information and process used to move it across in a way that actually works, in an SEO friendly way. So with this solution you shouldn’t notice any loss of traffic, I noticed my traffic straight away in Google Analytics (Don’t forget to add this code to your new blog).

PROBLEM:
For me this was quite a specific problem that I was trying to address, but hopefully if you are reading this it will help you make the switch if you need to also. Fundamentally, I had my blog that I have been updating since 2007 on my domain www.11thstudio.com/blogs/ – but I wanted to move JUST my blog across to www.chrisridley.co.uk/blogs. BUT, I wanted to leave my existing site (not the blog) up on 11thstudio.com, which has some of my wedding photography, and the more commercial side to my business on it. I wanted to have my main blog on my www.chrisridley.co.uk domain purely to help strengthen brand and, well, because I just wanted to. So, this wasn’t just a quick move and a simple catch all 301 redirect, it needed to be a much more tailored solution. I needed to keep all my traffic, SEO, rankings and all that malarkey.

SOLUTION:

1. Backup, backup backup

Before you start, Back up, back up, back up, THE most important part of this whole endeavour I kid you not. I cannot stress this enough, please. Back up your files across all sites via FTP and backup your existing wordpress database in it’s entirety.

2. Use FTP to download your files to your machine

I used my FTP client to make a full copy of my entire /blogs folder on my 11thstudio.com domain to my local folder on my desktop.

3. Upload via FTP to new site

Uploaded my entire /blogs folder that I had just downloaded, to my www.chrisridley.co.uk/blogs folder (same path)

4. Set up new database on new site

Go into you control panel of your new hosting on your new site, and create a new blank database for you to install WordPress into.

5. Copy your old (live) wordpress database into you new blank database on new site.

You can use specific software for this such as Navicat, or you can manually do this from within your phpMyadmin on your hosting. What you are trying to do here is copy your entire existing database from your old site, so in this case from my 11thstudio domain, into your new blank database, so in my case on the chrisridley.co.uk domain.

6. Change your wp-config file on new site

Make sure you update your wp-config file with your new connection data so that your install connects to your database.

7. Check site to see how it’s looking

You should now be able to see a running version of your blog on your new site… but it’s likely to not be working 100% yet, you’ll probably see image links broken all over the place, and URLS not behaving correctly and pointing to your old domain, this is because WordPress likes to hard code FULL URLS into it’s database which is a pain in the butt if you were not expecting it.. but we have a solution..

8. Find and replace hard coded URLS.

Be careful here, there are never any ‘undo’ functions, but if you do mess it up remember you can install from a backup you made, you did make one right?! Right, so assuming you have a semi working version of your blog now on your new domain, you need to install and run Search and replace plugin to solve the hard coded URL problem. Install plugin, and once installed, activate it in the usual way, and you’ll see a couple of options. In my case, I searched for ‘www.11thstudio.com’ and replaced any instances of it with ‘www.chrisridley.co.uk’, in my case was about 950 places it got changed. You’ll find now that everything should be working correctly. It did for me anyway.

9. Set up redirects in HTACCESS file.
Careful editing htaccess files, I warn you in advance.
On my 11thstudio site I created a .HTACCESS file with the following information and placed it in my 11thstudio.com/blogs/ directory folder.
RewriteEngine On
RewriteBase /blogs/
RewriteRule (.*)$ http://www.chrisridley.co.uk/$1 [R=301,L]

This tells the browser it’s a permanent redirect via a 301 redirect, and to tell it that anything that comes after the /blogs/ to redirect it to the same page on the chrisridley.co.uk domain exactly the same..

IE if someone clicks www.11thstudio.com/blogs/category/post1333/ it will change it and redirect it to www.chrisridley.co.uk/blogs/category/post1333/ This is important, as if you miss this part and just use a normal 301 redirect, it will send ALL blog traffic to just your new blog page default homepage which is no good for SEO. I hope that made sense. So now your full 301 redirect should be in action and should help Google find your changes and update itself.

10. Update your RSS feed.

In my case I used feedburner, so I just went to ‘edit feed’,  changed my incoming feed link to the new wordpress default RSS feed link, which for me was www.chrisridley.co.uk/blogs/feed/ , and left the existing feedburner link the same. This way your subscribers won’t see any difference..

11. Done.

Double check everything, test a sample post and click your way through random pages in your blog – depending on how complex your wordpress template is, you may have a couple more things to do. But I think the above steps cover pretty much everything you need.

Any problems, feedback or new and better solutions please let me know and I can update, as this was just the way I did it, I’m sure there are other ways!

If you did use this and find it helpful please let me know using the comments below!

This post should address the following questions; moving wordpress blog to a new domain, moving wordpress blogs without losing search traffic, wordpress HTACCESS setup, and how to move your wordpress blog to a new domain and redirect SEO search traffic without losing any search traffic at all.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>