As a WordPress developer, I develop the mock-ups for my clients on my own server, and when we are ready to go live, the site needs to be ported to their own URL and server. Which means that we are going to have an entirely new URL, server, file-path and database credentials for our client’s WordPress site.

There are some plug-ins that can help with this (these days my preferred solution is UpdraftPlus Migrator). However there are times where I have run into bumps with about every solution, and can end up wasting a lot of time either trouble-shooting or eventually giving up and moving the site manually anyway. So, if like me, you find yourself in the situation where you have to port your site manually, here is the process that I use for moving a single site WordPress installation.

What you will need in order to proceed are:

  • FTP access to your current WordPress installation and the ability to export your site’s MySQL database
  • FTP access to your client’s site. Test this and make sure that you can upload a file to the directory you will be using.
  • Access that will allow you to create a new MySQL database on your client’s site. Most decent hosts packages support many MySQL databases and provide the phpMyAdmin utility to work with them (if a host doesn’t – you might rethink using them!). Ideally test creating an empty database to be sure you can do this before you begin

Now you may as well start with the most time consuming step and allow it to proceed while you then move down the list.

Step 1. FTP all of the files in the current WordPress installation to a local directory on your own computer. This will take awhile. Let this process continue and proceed on to Steps 2 thru 5.

Step 2. Using phpMyAdmin export the contents of your current WordPress database to a file.
export sql
Step 3. On the Client’s server create a new MySQL database that is empty. Make note of the database access credentials (database name, username, password and database host)

Step 4. Using myPhpAdmin on the client’s server, import the SQL from the saved file (file created in step #2).
import sql

Step 5. Edit two records in the Client’s database wp_options table: siteurl and home. The values for these records should be updated to replace the URL from your existing WordPress site’s location the appropriate new path and URL for your client.
update database records

Step 6. With any luck, your FTP download from Step 1 has completed. If so, you can proceed and update the wp-config.php file. You will be updating the database access information and the values for WP_SITE and WP_HOME.
edit wp_config

Step 7. You may have other non-WordPress files that you will want to remove or update as appropriate. Files to consider include: .htaccess, sitemap.xml, robots.txt.

Step 8. You are now ready to upload vis FTP all of files in your download directory to the appropriate location on your client’s server.

Take a break and stretch. Step 8 will typically take awhile.

Step 9. You should now be able to access the WordPress admin panel on your client’s server, go to http://theirwordpressurl.com/wp-admin and verify.

Step 10. You likely have internal links to your old site. For instance, view the image information (in Firefox simply right click on an image and select “view image info”) for an image that is part of a page or a post. If it is not already installed, install the Velvet Blue Update URLs plug-in and run it to change all references to your own URL to your client’s URL.
velvet blue plug-in

Step 11. Double check that you in fact removed all internal links. It is possible that some theme specific parameters were not updated by Velvet Blue. For each page of your website, select “view source code” (method will vary by browser) and be sure there are no links to your site remaining.

Step 12. Be sure that you have removed settings that are specific to your site. For instance if you have a Contact form – check that the client’s email is in place rather than your own (if you used your own to test). If you have Google Analytics turned on, verify that that the tracking code is the correct one for your client. And so on…

Step 13. You should now be all set! It is time to send your client their invoice for you work 🙂

I have referred to this post as reference in the past and it addresses some issues that I didn’t cover which could potentially come up during your move. So I want to share this link with you as well: Cranium Storm’s How to Move a WordPress Site.