Move your WordPress Blog to another host or server in 10 easy steps

Last week I moved this WordPress based blog to HostGator. Moving the blog to a new host service is usually a delayed decision for most people. This is mainly because of the fear of loosing data, potential downtime, lack of technical knowledge and even worries about the new service’ quality. Many times, people pay a lot more for renewing their current hosting services than switching to a cheap hosting that offer better service due the above worries.


Moving your WordPress blog is no rocket science and it is so damn easy if you follow the steps given below.

10 Simple steps to transfer WordPress to new Server or Host

Step #1 Prepare the new host space

Create a directory on your new hosting space where your blog has to be moved to. If your new host supports multiple domain hosting, you might want to add an addon domain using the cPanel. As much as possible, try to use the same directory name as your existing blog installation directory in order to simplify the moving process.

Step #2 Do a fresh WordPress installation

Now use your new host’s cPanel Fantastico tool (or the famous 5 minute install) to do a fresh WordPress installation.

You have to make sure that:

  • The new WordPress release version is the same or higher than your current WP release
  • Use the same admin panel login & password as your current installation, to simplify things
  • Use the temporary WordPress installation URL to fill the WordPress address (URL) parameter in your WordPress Admin=>Settings=>General page. Also, change the Blog address (URL) accordingly (e.g. something like http://YourHostServerIPAddress/YourAccount/

Visit your new blog installation using the ‘Blog address (URL)’ set above and make sure that the new WordPress installation (without your posts and theme) works fine. In order to avoid any accidental overwriting, you may want to keep a backup of your new wp-config.php in a safe place.

Step #3 Upgrade your current WordPress installation, if needed

From Step #2, if you installed a newer release of WordPress on your new host, make sure that your current WordPress installation is upgraded to that release via the standard upgrade process. It is better to complete the upgrade activities on your current playing field than on a new server and host. After the upgrade make sure that your upgraded WordPress blog and all your plugins work fine

(This step can be avoided if you decide to keep the target (new) WordPress release the same as your current one from Step #2. But this may not be possible when you use)

Step #4 Backup your current wp-content directory

Use your favorite FTP program (like the free FileZilla FTP tool) to backup the whole wp-content directory. In addition, you have to backup your robot.txt, wp-config.php and .htaccess files. Backup any other folders (e.g. download, temp, junk etc) and files that you might have created as well.

Step #5 Backup your current WordPress database

Use a tool such as phpMyAdmin (mostly available in your cPanel) to export your current WordPress database. Do not use the export feature in your WordPress admin panel as this would not take all your current settings but only the content (basically posts, pages, comments etc).

While using phpMyAdmin export, please make sure that you select:

  • All your WordPress tables and SQL as the Export option
  • Save as File

Now, when you hit ‘Go’ you will be prompted to save the database backup file on to your disk.

(Move to next page)

Pages: 1 2


  1. Douglas :

    Hi there,

    My host changed servers and all websites now have a new IP address. Same domain name and name servers, though my host and domain name provider are different.

    Please also note I never entered into my blog, a Name or description under General/Settings.That is when i could log into it.

    I can get into Cpanel but simply putting the newly advised IP infront of ‘/Cpanel’ however I can not reach the admin panel of my WordPress blog.

    I had been loggin into it via
    http:/ /, my host suggested to simply insert the new ip in place of the old one. I still get the error message

    “404 Not Found

    The server can not find the requested page:
    Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/ PHP/5.2.12 Server at Port 80”

    I have logged into myPHPadmin and found the wp-options table and searched for “SELECT * FROM `wp_options` WHERE `option_name` IN (‘siteurl’, ‘home’)”

    Only option ID 39 came up and the results are
    ‘Home’ has optionvalue
    http:/ /

    ‘siteurl’ has optionvalue http:/ /

    Both of which appear correct. Is there any part of the mysql tables where I can change an actual IP address?

  2. Hi Douglas,
    If your host changes their servers and if the DNS remain the same, it is their duty to make sure that the new server IPs are included in the DNS lookup. You don’t need to do anything here.

    Now, in order to access the admin panel in the form http:/ / (i.e. when DNS is not available) the site URL option has to be something like http:/ / because the other option that you have right now (i.e. http:/ / would need DNS.

    I hope your host has sorted out the DNS problem already

    (PS: I am on vacation and have very limited access to the Internet. Please expect significant delays in replies)

  3. I’m no technical here, but you’d think that following the directions that are so clear would mean I couldn’t go wrong. Apparently I have a knack for it. I think I did everything according to the directions. I am getting a 500 Internal Server Error. I am not sure WHAT to look for, but this happens as soon as I upload the wp_contents folder, before I import my DB into the new one, so is there something that could be referring to the old DB in the content files? I’ve tried this more than 5 times and still get the 500 error and I’m at my wits end.

    Any help?

  4. Tricia :

    appreciate this. this is the first time I have EVER successfully relocated a wp blog and held onto the content. Have tried many times….

  5. Thank you so much! I tried following instructions on other sites but they didn’t seem as concise. Your instructions worked out perfectly.

    I was under float hosting and quite frankly its a horrible hosting service. I’m back with bluehost now. thank you once again.

  6. @Tricia, @Samantha, you are welcome! I am glad that the post helped you to get through your upgrades smoothly.

  7. Rilla :

    Thank you incredibly much. I had to reinstall WP no less than 3 times before I found this tutorial which worked it beautifully & easily!

  8. Hey, how about a tutorial for moving from 2.9.2 to WP 3.0 RC1?? :-)
    I can see a lot of people pulling their hair out over this one.

  9. Anil :

    Hi, First of all a very wonderful post. Thanks. I am also thinking about moving my blog from my current host to a more reliable one. My blog remains down at least once in every ten days and it is seriously affecting the traffic. Could you explain a bit why u chose Hostgater ? So that I can also make the move.

    • @Anil, Among shared web hosting services, hostgator is among the best or the best itself. As a new customer, when you signup you get a very good discount as well. However, you have to sign up two or three years to get the cost benefit.

  10. All I can say is the Hostagor rocks!!! I’ve NEVER had problems with them…no down time…fast responsive customer service…low server load (when I peek the CPanel)…great apps via Fantastico Deluxe and Quick Install and on and on.
    I’ve been using them for about 3 years now and I don’t feel the need to look at other competitors because, well, I’m VERY HAPPY. :-)
    And I just got a $50 commission for referring my colleague here in Nairobi to their web hosting packages. Yeah!!!

  11. Sai :

    Hi Ajith, what a great post. Thank you so much for this.
    I am not at all a pro or in anyway technical. But I own a WP blog hosted by Fatcow and I am trying to transfer my blog to another account (with fatcow too, but they won´t help me without expensive cost). I have a simple question. In all of this, when or in which step do you actually transfer the domain (to reduce or avoid the down time)? thanks a lot.

    • Sai, the last step (10) is about changing the DNS IP addresses to the new host. It usually shouldn’t have any downtime though the DNS propagation takes upto 48 hrs. While it’s being propagated, the site will be pointing to the old host.

  12. Bruce :

    Dear Ajith,
    I have been trying since November last to mirror my website wordpress on my localhost.
    After much agony I have achieved (I hope!) local host recognition of the DB Name but stand on my head I cannot get passed the DB Username, as follows;

    ( ! ) Parse error: syntax error, unexpected T_STRING in D:\wamp\www\wrd_6mh22h1ngl\wp-config.php on line 22
    Call Stack
    # Time Memory Function Location
    1 0.0029 364032 {main}( ) ..\index.php:0
    2 0.0052 367848 require( ‘D:\wamp\www\wrd_6mh22h1ngl\wp-blog-header.php’ ) ..\index.php:17
    3 0.0381 384400 require_once( ‘D:\wamp\www\wrd_6mh22h1ngl\wp-load.php’ ) ..\wp-blog-header.php:12

    Line 22 is the DB Username, and it is correct!
    i dont understand the gobbledegook after ” line 22″

    Please could you help


    • Well, I have not faced this issue so far. Browsing the WP forums suggest that there may be an apostrophe somewhere in a wrong place within the wp-config.php. Please scan your config file for any ‘ or “.

  13. Jesse :


    Just used this guide to transfer a wordpress site from one Bluehost account to another. Everything worked pretty well once I figured out one thing:

    When importing the wp-config file into the new installation, I had to reset several values for the new hosting account:
    /** The name of the database for WordPress */
    /** MySQL database username */
    /** MySQL database password */

    The problem was that I had already overwritten the previous wp-config file with the new database,username, and password settings. So,

    Lesson: copy down your database/username/password info from new wp-config file before overwriting it with the old one. Then apply edits.

    Thanks for a great walkthrough, it really helped!


  14. 1 problem so far, after doing this, links to thumbnails are still with old server path, so images are not showing up. How can I fix this?

  15. still one problem, thumbs do not show for new posts, please visit and see the most recent post with (it generated its own error thumbnail)

  16. Dan J :


    Have you ever tried or seen this?
    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


  17. Dustin :

    I am trying to complete step 7 because I have saved my .sql file from my last host but when I try to do it my new host gives me this error:

    SQL query:




    /*!40101 SET NAMES utf8 */;

    — Database: `information_schema`

    CREATE DATABASE `information_schema` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    MySQL said:

    #1044 – Access denied for user ‘wrdHNcbl81U’@’10.%’ to database ‘information_schema’

    Thanks for your help!

    • Try this. Make a back up of your sql file. Open it in an editor like Notepad++, remove the line ‘CREATE DATABASE `information_schema` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;’ and then restore using this modified sql.

      • Dustin :

        Tried it and got this error:

        SQL query:

        — ——————————————————–

        — Table structure for table `CHARACTER_SETS`


        MySQL said:

        #1044 – Access denied for user ‘wrdHNcbl81U’@’10.%’ to database ‘information_schema’

        • Ideally, the backup sql shouldn’t have information schema, character sets information. The only thing I can suggest is to delete those error causing lines and try again (assuming that errors are caused only in sql lines not related to the actual WP data)

      • Dustin :

        Hey I found an SQL backup without the information schema, but now it is giving me:

        #1044 – Access denied for user ‘wrdHNcbl81U’@’10.%’ to database ‘middlek2_wrdp1’

        How can I allow access?

  18. abbhas :

    I have downloaded .tar file from my previous hositng i can find wp content folder and .htaccess and wp-config.php file in Public_Html but unable to file the database where it would i downloaded backup by selecting database and complete website Please Guide me Admin

  19. Anonymous :

    Hi!I just wanted to ask if you ever have any trouble with hackers?
    My last blog (wordpress) was hacked and I ended up losing several weeks of hard work due to no backup.
    Do you have any methods to stop hackers?

  20. Paul :

    thanks for the great walkthrough.

    Just thought I’d mention that I’m about to launch my new service at migrately which will help those folks who can’t or don’t want to move their site themselves.

    The service will focus purely on moving WordPress websites from one host to another. Nothing more or less than that. It will also be priced competitively!

    Launching soon, but there is a sign-up page at the above address where folks can register for more information.

    Thanks again for the post!


  1. […] You may download and install wp-minify plugin via this link. The plugin is so easy to setup and all that you need to do is to keep its cache directory as read-write-execute (chmod 777). Unlike the super-cache plugin, you may not face issues while upgrading WordPress or even while moving WordPress to new host. […]

Speak Your Mind