ShoutMeLoud – Shouters Who Inspire

Superlinks
≡ Menu

How to Move WordPress Site to New Host: Zero Downtime

How to Move WordPress Site to New Host: Zero Downtime

Moving WordPress Hosting When ever I talked about WordPress hosting, I always mentioned that WordPress is memory hogging CMS and you should always go for a Webhosting which is optimized for WordPress hosting. One of my WordPress client, wanted to move WordPress blog from Dreamhost to Hostgator, as Hostgator is one of the best alternative for Dreamhost. Here I will share the complete step by step tutorial to move WordPress site to a new host.

In this case, Dreamhost uses custom cPanel and Hostgator uses standard cPanel. Most of the Web hosting companies like Bluehost, Hostmonster, WpWebhost offers standard cPanel, so if you are moving to any cPanel hosting, this guide will help you to migrate WordPress site.

Moving WordPress to Hostgator Server: Handy Guide

I hope you have already purchased Hostgator hosting and if not, you can use coupon code “ShoutMeLoud25” to grab 25% off on total bill. <Grab Hostgator now>

Now, we need to make sure everything moves without any down time. I also suggest to plan out a day like weekend, when you get least traffic. This is to make sure, you will not lose any comments or guest post while migrating.

In this tutorial, we will be moving two things:

  • Wp-content folder from old host
  • Database of your WordPress site

Information and tool you need to keep handy:

On Dreamhost: Old hosting

Before we export wp-content and database, here we will be doing couple of things.

  • Delete all previous database backup
  • Delete all Cache files (Empty cache option in your cache plugin)
  • Delete all unused plugins & themes
  • Delete all Spam comments, Trash comments and trash posts.

We are doing so many cleanup to make sure your database and wp-content size could be as small as possible.

Install Wp-Db manager plugin and optimize database and after optimization, take a backup of WordPress database. If your database size is huge, use the gZip compression else take back up in .MySQL format.

Another thing which we need to take backup of is, Wp-content folder. if you are using cPanel hosting, you can simply login to file manager from cPanel and compress your wp-content folder and take backup, or use any FTP client and take backup of your wp-content folder.

On Hostgator: New Hosting

So far, at Dreamhost we have taken backup of Wp-content and Database and that is all we need to move ahead. Login to HostGator cPanel or new hosting account and Install WordPress on it. You can follow this guide to Install WordPress using fantastico. Along with this, we will be creating a separate Database and a user and associating that user with Db with all the privileges.

Create a Database + User + Associate:

Login to your cPanel and click on Database >MySQL Database Wizard

Create Database

Here you will be giving a name to your database, creating a MySQL user & password and associating user with that database. Note down all the details in a notepad, as we will be needing it later to make changes in wp-config file.

Db user

Database Privilage

So, here is the detail of newly created database and all associated details:

  • Db Name: unikaman_SML
  • Db user: unikaman_SML
  • Db password: _xzB-[Cbph.*

So, we are almost half way with our WordPress hosting migration, and now start the hard part. Since, our goal here is to move WordPress hosting with 0 down time, so we will first check everything is alright before migration. For this, we will edit our Windows hosts file, and point our domain to Hostgator server.

On Hostgator cPanel, left side bottom you can find the I.P address of your hosting account and edit your hosts file to point to that I.P. This guide will help you to edit your hosts file and here is what my hosts file look like, replace the domain name with real domain that you are migrating.

0 downtime migration

What this will do is, it will let you see your site on new Web-host on your machine, where as, everyone else in the world will see your site running on old hosting.

Now, open FTP and login to new hosting FTP. Upload all the content of Wp-content file (Backup from old host) to your new hosting at the same location. public_html/domain.com/wp-content

And on your hosting cPanel, go to Database > PhpMyadmin >Select the database from Left side > Import and upload the backed up database file from old hosting.

Import WordPress Database

If your database size is too huge and can’t be imported with default PhpMyadmin importer, we will use a 3rd party tool call Bigdump. If you need tutorial for importing huge WordPress database, let me know and I will write a separate tutorial for the same.

After importing is finished, click on Structure and note down the database prefix. Here is an example:

Database prefix

So, in this example migration, my WordPress DB prefix is : wp_7agot7_

Once it’s done, all you need to do is edit Wp-config file and add the database information that we created above: Open your wp-config file from root of your WordPress installation (Keep a backup of file before) and edit the details:

Editing wp config file

Also, search for following line in Wp-Config.php file: $table_prefix  = 

and replace the prefix with, our Db prefix which we have found using Structure under your Phpmyadmin. Example:

WordPress Database Prefix

Once you have done everything as mentioned in this tutorial, your site should be successfully migrated to new hosting. Now, all you need to do is verify all settings and make sure everything is working fine. Once you are sure about everything is working fine, go ahead and update Domain name servers to point to new hosting and in this case it’s Hostgator name servers.

Possible problem & solution after WordPress host migration:

After moving WordPress Webhosting company, your directory structure is changed. So, few of your plugins might not be working or you might be facing few issues. Here are some of the common problems which you might face and here are solution to those problems:

Weird Character problem:

At time after migrating MySQL database, you will notice some weird character in your WordPress blog in new host. For example, characters like :  Â and ’.

You can use Search and replace WordPress plugin, to find all such weird characters and replace them all together.

Image Upload problem:

After hosting migration, since your directory structure is changed you might get an error uploading new images. You need to go to Settings > Media under WordPress dashboard, and edit the location of Wp-content directory under “Store uploads in this folder” options.

Similarly, you need to make changes for Wp-db manager or any other database backup plugin you are using to store database on your server. Also, take a note of .htaccess file, as most of the time you end up having a faulty or empty .htaccess file, which gives 404 error for all internal pages. You might like to refix your cache plugin, to update the .htaccess code.

More over, this tutorial looks technical but once you start moving WordPress blogs, you will realize it won’t take more than 30-45 minutes for a perfect migration. Though, time may differ based on size of database, wp-content folder and your skills.

Infact, many of you can consider starting a service based on the same and you can charge from 50-100$ for a hosting migration. Something, which I offer under my WordPress services, from long and it makes decent money with hour of work.

Quick recap:

  • Take back up of Wp-content and Database on old server
  • Edit Hosts file on Local computer
  • Install WordPress on new Hosting server
  • Upload Wp-content folder
  • Create Database, user and password
  • Import Database
  • Update Wp-config file on new server
  • Verify everything
  • Update Nameserver to point to new hosting
  • Share this post :)

I hope this tutorial will help you to move WordPress site with Zero downtime, but if you are stuck anywhere, don’t forget to give me a shout for help via comment. If you find this tutorial useful, don’t forget to share it on Google plus and Facebook.

  • Author Bio

  • Latest Post

Article by Harsh Agrawal

Harsh has written 1058 articles.

If you like This post, you can follow ShoutMeLoud on Twitter. Subscribe to ShoutMeLoud feed via RSS or EMAIL to receive instant updates.


{ 17 comments… add one }

  • kingsley

    Thanks buddy,

    Just followed your tutorial to transfer my site for the second time

    Reply
  • Alex Taylor

    Hi,
    I wanna a ask that Is there is any extra step required for SSL website??? and would I require to disabled hosting then do SSL on VPS after its all migrated?

    Reply
  • Alex

    How is this “Zero downtime?” Propagation still plays a part, your site appears offline while it takes place. I even left my old server/hosting as is while it took place and it still doesn’t connect while propagation is happening.

    Reply
    • Harsh Agrawal

      @Alex
      You edit your hosts file to access your new hosting and where as world will see the existing site. When you change DNS, world will either see old site (considering you haven’t deleted it after moving) and once DNS propagation happens globally, everyone will see the new site. Technically your website is never down for a second for search engines and also for readers!

      Reply
  • Milan

    Million Thanks To Mr.Harsh.

    I followed each and Every Step So that I could move my wordpress site to new host. This Method Works Perfectly. :) :)

    Reply
  • sam

    I have used duplicator and it is quite easy to do so.
    I believe that using a wordpress plugin like duplicator is better as seen here.
    http://www.wpcares.com/migrating-wordpress-site-easily/
    Is there any flaws to use this plugin?

    Reply
  • Mukul Bansal

    Thank you so Much harsh…. I had to shift my wordpress website from my old hosting to the new hosting I purchased few days back. I followed the above mentioned steps and successfully moved my wordpress site

    Reply
  • Mike

    After doing this, everything looks good with site but when I try to login I’m getting “You do not have sufficient permissions to access this page.”

    Any ideas??

    Reply
  • Chris H

    I figured it out… Importing into the new database that was manually created and modifying the wp-config.php to point to it. Ignoring the DB that was created when WP is installed.

    Reply
  • Chris Harris

    Thanks for putting this together. A couple things don’t make sense and I’m stuck on them. I’ve copied the content and imported the DB however I see the blank generic Wordpress on the new host.
    1) You show creating a mySQL database manually, however you also show installing wordpress using a wizard which also creates a database.
    2) You show editing the wp-config.php in the root of the new wordpress, however that file was never overwritten and it already has the settings of the new hosting company database. Your steps only overwrite wp-content, so the wp-config.php in the root would already be configured for the new hosting companies database.

    Reply
    • Harsh Agrawal

      1) Chris we can also use the database created with WordPress installation, but to simplify the process…I asked to create database manually, as we will have all the information.
      2) This will be used when you import the database from old host and need to change the database prefix.
      Hope this helps…

      Reply
  • Tarcea Willis

    Man thanks so much for this. You helped me move my primary site without the issues I had previously with trying to move sites. LIFESAVER! lol…Well, Sitesaver! Thanks man…

    Reply
  • Felix Albutra

    Hi Harsh,

    Last few weeks ago, I’ve been looking for WordPress Migration tutorial and most of them don’t cover the detailed part. But upon doing some practice, I was able to get it done perfectly with the 100% content intact as well as the design from my localhost to my server.

    Your tutorial will be a great help for future reference, in case I forgot something because you need to do this kind of tasks over and over to master it. Thank you very much for documenting this tutorial. It was a big help.

    – Felix

    Reply
  • Prateek

    The steps are nice but I think Hosgator gives one free cpanel transfer on new accounts and you can also buy cpanel transfers from them and they are reliable. I prefer using their services to avoid hassle.

    Reply
  • Shashank Johri

    Thanks a lot Harsh Aggarwal for such a nice post.I was looking for such an article from a long time no.I tried this a lot times but always failed just because of some wrong steps but now this post will help me a lot..Thanks..

    Reply
  • Deepansh Khurana

    Hello, Thank you for this wonderful tutorial. I was finding a good tutorial when suddenly I saw that you shared this link on Facebook. Was never stuck, till the end while following this. :) No problems. All instructions are precise and detailed, just what first-timers like me need. :) The nameservers haven’t changed as of now but I am aware they take time to update and propagate. Thank you once again. You helped me alot.

    Reply
  • Ankit

    Thank U Harsh for such a wonderful way to shift Wordpress. I was looking for such a nice explanation. I earlier tried it, but there were error due to the fact that I wasn’t changing the image upload folder location.
    Thanks a lot :)

    Reply

Leave a Comment