How to Move a WordPress Site from One Server to Another

by Alex Fedorov

So you’ve developed wordpress on one server and want to move it to the client’s choice of server?

No sweat – just follow these steps and you should be fine:

Note: This tutorial assumes that the entire site is powered by WordPress and that the WordPress files are installed in the root of the website. If you’ve got the build working in a directory like /blog/ then make modifications as needed.

Step 1. Downloading Files:

Start by downloading the /wp-content/uploads/ folder from your development server.
Anything you’ve put into the client’s development site through WordPress application will be stored there, but probably won’t be on your local drive.

It also won’t hurt to download the /wp-content/themes/ folder that you’ve been working in – especially if you’ve collaborated with others on this project and are not using a Subversion system.

Step 2. Exporting the Database:

In the hosting control panel for your existing build, you’ll need to get all of the data you’ve put into the system out. Using Tools > Export in WordPress is helpful but to ensure you get everything from the existing database, you should really use PHP MyAdmin and export all of the database tables.

Launch PHP MyAdmin, Log In using the existing database credentials, select the database you want to export from the left, then click the Export Tab. Select the Save Without Compression checkbox and you’ve got a backup on your desktop.

Step 3. Creating the New Database:

In the environment that the client has chosen to host the final WordPress-driven site, you’ll need a new database. Ideally, you will have both the Control Panel and FTP credentials before the day of launch. A good rule of thumb is getting this from the client a week or two ahead of time to account for any issues. If you can’t get Control Panel access, have the client create a Database for you and have them list the Database Name, Username, Password and Host Name. That and FTP will do the trick – but the client may have to import the database for you. Configure the wp-config.php file for your new site/database and continue to Step 4.

Step 4. Uploading

Backup the client’s existing website first. Then upload all of the appropriate wordpress folders to their host. At this point, you may want to delete the files in the root of their site and replace them with the wordpress root files to make the transition complete. Remember to update the wp-config.php first to be sure it will connect with the new database.

Using a web browser, navigate the website and type /wp-admin/ after the url. Hopefully you encounter the WordPress screen where you can name your site, sign in for the first time and see the system working correctly.

It’s a really good idea at this point to go to Settings > General and make sure the URL is pointing to the correct address of the live website. (See screenshot below:)

Picture 1

Step 5. Importing the Data into the New Database:

Now you’ll want to get the data you’ve entered into the development site into the live site. This step is very similar to Step 2 – only the reverse. Log into PHP MyAdmin in the new hosting environment and click Import. Select the file from your desktop and you should have a working copy of the development site.

Step 6. Fixing Bugs

Sometimes during transitions you’ll encounter problems where the live site is looking for file uploads that reference the old development URL. The easiest way we’ve found to fix these problems is to install the Search and Replace plugin and find the old URL and replace it with the new URL.

Hope this was helpful. Cheers!

About Alex Fedorov

Alex is a strategic thinker with a gift for information architecture, known for his ability to wireframe complex workflows and multiple states of applications at...