A few months ago WPEngine transferable installs was released as a feature for all accounts. This is a great feature for developers who want to have a staging site readily available to work on their client’s site. If your client has an existing site you don’t have to take their live site down to work on a new site or come up with your own development site, and if they don’t even have a site yet you don’t have to wait for them to set it up. An even better bonus for developers is that you can earn a referral bonus for clients who set up a new hosting account through WPEngine. After you’re done developing your client’s site it’s just a few quick clicks to transfer the site to their account.
Talk about a win-win!
Of course, WPEngine wants all of the transferable installs to be transferred to new or existing customer accounts to keep or grow their customer base. However, as I have noticed a lot of times, clients may not want to host their site with WPEngine. Sometimes they have a limited budget and are looking for the cheaper $5-10/month hosting. Other times they will have an existing site on a host they’ve used for years and are still loyal to that host.
Whatever the reason, the customer is always right and should get the hosting they want.
After I came across a client that wanted their site hosted elsewhere, I realized there were a few extra steps to move a site away from WPEngine’s Transferable Installs than there are with other standard hosting accounts.
Even if the client’s site doesn’t end up on WPEngine the transferable installs makes life as a developer much easier as you don’t have to manage a separate account just for development sites.
Move WPEngine Transferable Installs to Another Host
Set Up New Hosting
If your client doesn’t already have a hosting account, you’ll have to get them to do that. If they already have hosting, you’ll need to get access to it in order to set up the new database, and use the account’s FTP/file uploader.
You can set up a new database and database user, and leave it empty for now. Be sure to copy down the database information (name, username, password, etc.)
Download Site Files
WPEngine has an awesome backup system that takes daily backups of all installs in your account including transferable installs. You can even take a manual backup once you’re finished with your client’s site and then download a ZIP file of that backup.
I recommend using their internal ZIP backup functionality to download the client’s site files. You could also download them via FTP, but that is the slower way to go.
You should note that there are a number of files that are not included with the ZIP file backup. If you should happen to need any of those files, you’ll need to download them manually via FTP.
Download Database
Downloading the database isn’t as easy as logging into phpMyAdmin and exporting everything. This is because there are a number of references to the site URL and file paths in the database that will change once you move to a new host. For example the Site URL that you find in Settings > General is going to be http://example.wpengine.com on your transferable install, whereas on the live site it might just be http://example.com.
For that reason I like to use the WP Migrate DB plugin, which basically does a search and replace on the current URL and file path, and it replaces them with the new URL and file paths.
There are a number of other plugins that do the same thing, so if you already have a favorite go ahead and use that one.
Update wp-config.php
WPEngine adds a ton of stuff to wp-config.php that doesn’t need to be in there on most other hosts. If you aren’t sure what should stay and what should go, I would download the wp-config-sample.php from your client’s site or download it from WordPress.org. Then fill in the database information from the new host and add unique keys and salts. You can get the database information from the new host if you don’t already have it.
Once you have that, you can rename wp-config-sample.php to wp-config.php, and replace the wp-config.php from the ZIP file with your new version.
Remove WPEngine Specific Files
You will need to unzip the ZIP backup file in order to remove some of the WPEngine Specific Files that may be included. The files or directories you can delete are:
- /wp-content/mu-plugins
- You can delete the entire mu-plugins directory unless you placed any plugins in there yourself. This is the folder that has all of the plugins WPEngine requires you to use including the one that displays the WPEngine menu in your dashboard.
- /wp-content/mysql.sql
- This is the backup of the database on WPEngine’s servers, and really is useless to you off of WPEngine’s servers especially if you already downloaded a copy of the database.
- /wp-content/advanced-cache.php
- Although it doesn’t hurt anything if this stays in there.
Finally, re-zip the site files (be sure to include the new wp-config.php) so you can upload it easily to your client’s host.
Upload Files
If your client has had an existing site on their web host, you may need to delete any existing files they have there. Be sure to take a backup first!
If your new host has a cPanel file uploader or shell access, you can upload the ZIP file to their hosting account and easily unzip it once it has been uploaded.
If the new host doesn’t have an easy way to unzip the ZIP file you may need to rely on FTP to upload each file individually. This can be time consuming if the site is large, but it will achieve the same end result.
To save time, if your client’s host has a one-click install for WordPress, you can do that and once the new site is created, you can delete the wp-content folder on the new host and upload the wp-content folder from the WPEngine ZIP file. The other WordPress files should be the same assuming you’re using the same version of WordPress.
Import Database
Finally, import the database you downloaded earlier through the new host’s phpMyAdmin or similar service. As soon as you do this, your site should start working on the live domain right away.
If you don’t see the new version of the site showing up, you may need to clear your browser’s cache.
Housekeeping
Your transferable install has a few WPEngine remnants that should be taken care of.
- In your site’s list of users there will be a user “wpengine” with administrator access to the site. This user should be removed as you will no longer need to provide WPEngine support staff with access to your site.
- The user account you were using all along will still be active, and may need to be removed or modified if your client doesn’t want you to have access to the site anymore. Before you make changes to this account though, be sure to set up your client with an account they can use to access the site if they don’t already have one.
- By default the site’s admin email address will be set to the email address you have on your WPEngine account. You may want to change this to your client’s email address or another address that makes more sense to use.
And that’s all you’ll need to get your WPEngine Transferable Install moved to another host.
*Note some links in this article are affiliate links that I will earn a commission from. It does not affect the price you pay, or require you to use any endorsed service.
Amanda Hughes says
Thanks so much for writing this! I was able to transfer a WP Engine Transferable Install to a different host without any hang-ups following this guide.
Scott DeLuzio says
Awesome! I was hesitant to even write this post as I’d hate to send customers away from WPEngine, but sometimes the customer wants what the customer wants. Glad it worked well for you.
Devin says
I appreciate this as well! I send everyone I can to WPEngine, but it’s not my small clients that I have troubles with, it’s more my enterprise level clients that have their own internal hosting.
Thanks again.
Scott DeLuzio says
Glad this helped!
Rigo Guerrero says
Good steps to double check here https://wpengine.com/support/best-practices-uploading-wp-engine-site-another-environment/
I like to install fresh WP files and then just copy the “wp-content” folder that has been cleaned as per above–it just works.
Moving away from WPEngine some clients is all due to limited plugin support, cant run this or that…
Thanks,