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

Step #6 Upload wp-content folder, .htaccess and wp-config.php

Use your FTP program to connect to your new host to overwrite the new wp-content folder with the backup that you created from step #4. Also, make sure that the .htacces files are uploaded to your new blog directory.

Step #7 Import your WordPress database

Open the phpMyAdmin tool from your new host cPanel, select the new WordPress database (usually named YourAccountName_wrdp1), and click the import option. Select the database backup file from Step #5 to import the entire data into your new WordPress table.

Step #8 Test your blog with the new host

Now it’s time to test your blog on the new host but before that you have to change the following settings.

  • Just like you did in Step #2, change the General Settings blog URL to the temporary blog directory of your new host. With the database import, it may be now pointing to your actual domain name (e.g
  • You do not need to upload your wp-config.php file, if you started with a fresh installation of WordPress as in Step #2. But if you opted to create a new database from the backup (using Step #5) and then setup WordPress, the old wp-config.php values may be handy

Now, test your new WordPress installation with the imported content and your blog theme using the temporary blog URL just like you did in Step #2.

Step #9 Import your mails, save your new comments etc

Before you make your domain permanently point to your new WordPress blog installation, make sure that you:

  • POP (download) all mails from your previous host to your Outlook or your email client
  • Copy any new comments (Commenter’s name, email, URL, comment text) that might have come during your installation so that it can be manually added to relevant posts later
Step #10 Switch the name server values

Logon to your domain registrar account (sometimes it is the same as your old hosting provider) and change the name server values there to make it point to the nameservers provided by your new host. After this, you have to log on once to your new WordPress control panel and change the blog address (URL) and WordPress address (URL) values to make them point to and its WordPress directory (only if WordPress was installed in a different directory – for example, Make sure that everything works fine

Troubleshooting tips

If you did not make any mistake and religiously followed the above ten steps, things should just work fine. Most of the issues are related to the wrong Blog address and WordPress address in the General settings section of your new WordPress admin panel. If you are not able to access the admin panel itself, you may want to use phpMyAdmin to open your new WordPress database, go to table wp_options, browse the rows and check the value of siteurl there. If it’s still pointing to your temporary installation directory or some other wrong value (check for typos), you have to correct that row manually.

If things still do not work, disable your plugins one by one and test. I had some problems with the Google XML Sitemap plugin which needs the chmod values of your sitemap.xml and sitemap.xml.gz files to be set to 666. You can do chmod settings for these files from your FTP tool.

The other common problem is the wrong wp-config.php usage. If you can’t connect to WordPress at all, please make sure to open and check the DB_NAME and DB_USER values in your wp-config.php file.

Further tips and precautions

  • You can take the screenshots of your General settings, Permalink structure, Active plugins page and complicated settings pages of important plugins such as Google XML sitemaps, All-in-one-SEO plugin etc for future reference
  • Keep important long text value (e.g. keywords) in some text file
  • Before starting the upgrade itself, you may cut-paste backup the contents of all your widgets into some text file. I lost my widgets during the upgrade process
  • Once the upgrade and move is complete, make a complete back up of your new WordPress installation directory on the server itself renamed to something like WP_2.8.2_Backup so that in case of any mistake done, you could rename and use this directory
  • Never upgrade your plugins blindly even when the Plugin info claims that it is compatible with your WordPress release version. Make sure to backup the plugin folder before attempting to automatically upgrade it
  • Check with your hosting service support team if you can’t solve the issues yourself. HostGator provided me wonderful chat support to fix some of the issues that I faced
  • Choose an appropriate time to upgrade when your ISP is running in full throttle – I have minor issues with my ISP (Airtel) which suddenly slows down post midnight

I hope this ‘How to’ tutorial is useful to some of you and if so please do not forget to bookmark. Also, let me know if I missed out any point or steps. You can even ping me on twitter for free consulting if you encounter any problem with your WordPress move when you go for your next hosting provider.

Happy Blogging (with WordPress)!

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