How to Move Your WordPress Blog to a New Host

First of all, moving your WordPress blog to a new host is not fun. It’s always a process that’s a bit stressful and can cause some unexpected issues.
But let’s not be all that pessimistic here. The truth is that if you do some preliminary tasks and plan everything out, you can hope for a smooth process, and your readers will probably not even notice that there was a big operation running in the background.
The fast and expensive way
Depending on what hosting company you’ve chosen, and how expensive your plan is, your new provider may offer transferring your blog without additional payments.
In most cases, this is something you should take advantage of. It’s always better to have a professional handling such a task. If someone’s been doing this as their job, they’ve probably already seen every issue that can come up during the process.
Besides, you always get someone to yell at in case anything goes wrong…
If, on the other hand, you’re moving your WordPress for the simple reason that it has outgrown your previous provider, but you want to keep this as cheap as possible, then you will probably have to do everything on your own.
How to move WordPress to a new host by yourself
First of all, a little clarification. In this guide I’m describing how to move WordPress to a new host without changing the domain name. Changing your domain along with your hosting provider will require some additional steps not described here.
0. Signing up and selecting a plan
This isn’t actually part of the main process – that’s the reason why it’s step number zero.
Besides, I can’t really tell you what hosting plan you should select… Depending on your niche, traffic, budget, and location, some plans will be more attractive than others, so this is on you.
However, before you can move to the next step, make sure that you have these things set in place:
- Access to your new cPanel or any other hosting account management platform.
- Access to an FTP account.
- Access to phpMyAdmin – a database management platform.
- Your old domain hooked up to the new cPanel.
- DNS servers’ addresses of your new hosting account.
- The IP address of your new server.
1. Pick the low-traffic day
It’s always best to do this kind of operations the day when your blog receives the least amount of traffic.
For most blogs, it’s Sunday or some other day during the weekend. Simply go to your Google Analytics and see what’s the situation for you.
Also, take notice what’s the low traffic hour during that day.
When the day comes proceed to the next step.
2. Deactivate plugins
Whenever you’re making a switch to a new hosting environment the thing that’s most likely to fail are your plugins. WordPress itself is pretty good at working on different machines, but the plugins are a lot more unstable … even the most popular ones.
Therefore, before you do anything. Go to your plugins page in WP admin and deactivate every single one of them.
3. Backup
This is the funny part. Because in step #2 I told you to deactivate all plugins, and now I’m telling you to get the Online Backup for WordPress plugin, install and activate it. Well, anyway, bear with me please…
Once you have the plugin, go to Tools > Online Backup, then the “Backup” tab, and do a complete backup of your site.

This can take a while; up to 10 minutes, depending on the size of your blog.
When the process is done you can download the backup to your local computer.
4. Creating a database mirror
Online Backup for WordPress creates a backup as a ZIP archive you can then use in many ways.
Take the archive, and extract it somewhere on your local hard drive. What’s important in this step is to locate the .sql file, which holds your whole database. The file should be named: OBFW_Database.sql.
Go to the database management platform – phpMyAdmin – on your new hosting account, and create a new blank database. Name it whatever you like.

Select “Import” from the top menu. Upload the OBFW_Database.sql file and hit the main submit button. If everything goes well, in a minute you’ll see a success message. This means that a new mirror of your blog’s database has been created.
5. Set your new wp-config.php
Go back to your backup archive created by the Online Backup for WordPress plugin and locate the wp-config.php file.
Switch the settings to use the new database mirror (the parameters: DB_NAME, DB_USER, DB_PASSWORD, DB_HOST).
6. Upload your site
Connect to your new host via FTP and upload your whole site to the proper location/directory (check this with your hosting provider; usually a directory named “public_html” or something similar).
Once this is done, you have a new mirror of your whole WordPress site.
However, no one can actually see it yet, but this is a good thing. You want to make sure that everything is working before you let people through the door.
This next part is all about tweaking, activating plugins, doing some final touches, and pressing the main launch button, so to speak.
7. Changing your local hosts file
This is for Windows users.
Find your hosts file and open it with Notepad. The file is located in: C:\Windows\System32\drivers\etc.
Go back to the cPanel of your new hosting account, or review the emails your provider sent your when you signed up for your new hosting. What you’re looking for is the exact IP address of your new server. Take this IP and go back to your hosts file.
Go to the end of the file and create a new entry. Example entry:
1.1.1.1 yourdomain.com
- 1.1.1.1 – replace with the IP of your new server.
- yourdomain.com – replace with your site’s domain name.
Save the file and close it.
This trick enables you to see the new mirror of your site by going to its normal address (yourdomain.com). Now, you are the only person in the world who sees this. Everyone else sees the old mirror (the one on your old hosting account).
This enables you to make sure that your site is working properly before launching it to the public.
8. Final touches
If everything went well, at this point you should be able to see your site normally, but with all plugins disabled, so there’s probably a lot of functionality missing.
Now it’s time to activate your plugins.
I had some problems with various plugins and hosting accounts, that’s why I like to enable each plugin individually and see how it affects the site.
Go to your WP admin, to Plugins, activate your plugins one by one, and always go back to your blog and view it after each activation.
If you’re lucky, all plugins should work equally as good as they did on your old host.
If you stumble upon any problems, it’s best to contact the support team of your new host and ask them for solutions.
Keep in mind that even if something goes bad, your visitors still see the old – working – version of your site, so you don’t have to worry that much.
Also, check the basic functionality. Do things like: submit a comment, use the contact form, click the re-tweet button, visit your custom page templates, etc.
9. DNS change
If everything’s fine you can make the final step and switch your domain name’s DNS to point to your new host.
This is done either by contacting your domain registrar or using an online tool provided by the registrar.
Once you’re done with this, the only thing left to do is … waiting. This can take up to 48 hours.
During this time, some visitors can still submit comments and interact with your old site. If they do, you will have to go through your old database manually (once the switch is done) pick all the comments and place them in your new database by hand.
(That’s why we’ve picked the low traffic day for this whole operation).
Also, go back to your local hosts file and erase the entry you made a while ago. You don’t need it now.
10. Do a fresh backup
Remember to install the Online Backup for WordPress plugin on your new site too. Then create a fresh new backup of the new site. You know … just in case.
11. Uninstall the old site
After a week or so you can safely delete your old site. First, “drop” the database, and then delete the files through your FTP account.
From now on you have a single instance of your site, sitting on your new hosting account. Fin.
Other scenarios
This guide describes how to move your WordPress without changing the domain name. However, if your situation is different, feel free to visit the Codex (moving WordPress) and check other possible scenarios.
One final thing: What’s your experience with moving WordPress around? Did you have to change hosting providers at some point of your blog’s existence? How did it go?






Comments
Nice tutorial karol.
Very nice tutorial. I would add that we also advise customers to disable comments and advise authors that there is a moratorium on submissions during the transition.
That’s a good idea, thanks.
One important consideration you overlooked: serialized data. For some reason, many plugins store the full path of some values (usually graphics), and so too does WP in some content areas (at least, that’s been my experience).
So, records in the database will contain pointers or links to http://www.yourolddomain.com/some_asset, and break on the new domain (or will break when the old domain goes away!)
Some widgets don’t work because their values are lost.
I found wp-migrate-db to be amazing for this, as it exports your data in sql format, but changes the serialized info during the export. A HUGE timesaver. Works great from test to live server work as well.
Sure, you are right, but the guide here describes how to move to a new host only. Without changing the domain. Changing both your hosting and a domain is a lot harder to do at the same time.
Thx for the tutorial
You are welcome (:
Have you ever tried or seen this? halty.net/website_mover_0.2.zip
claims to be compatible with wordpress but I am reluctant to try this on my live blog (my goal is to switch from godaddy to dreamhost and I have a new domain at dreamhost)
Hey there, youthink I could do this on http://www.decodehosting.com/?
I was just migrating a wordpress site to a new host it helps me a lot to understand the ways around. Thanks !
Really good guide which I followed last night and successfully moved my eCommerce marketing blog over to a new host. The reason for the move was to increase rankings further. Because we target the UK it’s best to have our server in the UK, before it was in Germany on slow hosting from 1and1 – then again for £5 per month you get what you pay for.
So with the speed of the new server, on a dedicated IP address and the box fully optimised for WordPress, then this should increase organic search rankings. Also at the same time lower my CPC costs on Adwords and Bing/Yahoo.
Thank you again for the guide, everything went better than I thought it would and I have very little technical knowledge.
Glad I could help!
The WP I need to migrate is v2.8.4 and the plugin is rated as 2.8.6 or later. I really need to move this and wonder whether it might work?