Migrating Your Website Away From WP Engine

Migrate Away From WP Engine

I am just as much of a fan of WP Engine as the next person, however, if you try to migrate a website away from them, this is another story. There are a few things you should know so you can plan accordingly. With a normal web host, I can download a backup, move the MySQL db, and have everything back up and running on a new host within about 10-20 minutes depending on FTP download time. However, this last weekend, it took me about 2 hours to migrate a website because I ran into a few hitches. Below is a list.

1st Delay – Slow FTP

You cannot use WP Engine’s backup feature to transfer your site. The reason is because the backup file excludes a lot of directories and files that you need. For example, they exclude your upload folders…

*/uploads*/200*/

*/uploads*/2010/

*/uploads*/2011/

*/uploads*/2012/

*/uploads*/2013/

You can see a full list of excluded files here: http://wpengine.com/support/restore/. They have a good reason for doing this and when you are only working within the WP Engine environment, it does make it fast to backup and restore. However, when you are leaving WP Engine you will need to FTP your files. When you download (FTP) your files from WP Engine you will discover it is incredibly slow. And that is is because they are actually hosting a majority of the files remotely. My site was 250MB and it took 1 and 1/2 hours on a 70Mbps connection. If you can, I would recommend asking their support for a full zipped up download; which should be a lot faster.

2nd Delay – Folder Permissions

Ran into permission errors on files and folders once I migrated the website to a standard Apache server. If this happens to you, you might want to look at what your current PHP handler is. You might have to switch yours to SuPHP or DSO depending on which was running on the previous side.

3rd Delay – WP-Config.php File

WP Engine uses a slightly modified wp-config.php file, located in the root of your WP Install, and so you might end up having to generate a fresh one at your new host. I recommend using the wp-config.php Generator.

4th Delay – Removing WP Engine Remnants

The last thing you have to get rid of is the WP Engine menus in your WP dashboard and the extra unnecessary files. The first folder you will want to delete is the “mu-plugins” folder, which will be located here: wp-contentmu-plugins

You can also remove the two files, .gitattributes and .gitignore. from the root folder.

The most important file that you will want to remove is the object-cache.php file located in the /wp-content folder. If you don’t you could very well end up with a blank or white screen when you are migrating to a new host.

You can then also remove the mysql.sql file located in the /wp-content folder. This is used by WP Engine for their automated backups.

Delete WP Engine Administrator Account

And last but not least, most WP Engine WordPress sites will have a 2nd administrator user besides their own called “wpengine.” This account is used by their staff to gain access to your admin area to provide support and troubleshooting. This is no longer needed and can be deleted.

Hopefully this helps someone and makes your migration process a little quicker. I actually moved to Kinsta and it is much faster (by about 2 seconds without caching plugins), and support is beyond comparison. They also don’t overcharge you based on the number of visitors you receive each month. If you are looking for other hosts check out my list of recommended WordPress hosts.

I wish I had read this like 6 days ago. I’m moving a client away from WPengine to InMotion hosting. My second choice was Knownhost. This took me way longer then planned, but it was worth it. WPengines caching caused all kinds of site problems in addition to weird URL issues.

Sorry for the delay in getting back to you. I think with multisite if I remember correctly simply adds an id on the table_prefix. So you would just want to make sure the table_prefix in your wp-config file matches what is actually in your mysql db. Each sub-site should have sets of tables that correspond to the blog_id in the wp_blogs table.

Hi, I also found a folder called hyperdb on the plugins folder that can be removed and the file advanced-cache.php too. What I am doing is install a fresh wordpress and replace the database and the plugins and themes folder so everything is like is supposed to be on a fresh install without any mod by wpengine. Going to try Kinsta in the future, it looks good. Happy new year!

Hey Brian – Thank you SO MUCH for this! You made it so that I wasn’t terrified of the migration :)

You were right about the slow download times! I didn’t run into a file permissions issue, but I DID have to revert to the wp-config-sample.php file because WP Engine extensively customizes the wp-config.php file. I’m still crossing my fingers on the PHP stuff (that’s totally out of my league), but at first blush it looks like I’ve gotten the site safely migrated.

FWIW, at this point, I had a tougher time migrating *into* WP Engine than migrating the site away, and it had to do with the uploads folder not copying in correctly. I use A2 hosting, and while they were willing to provide help with migration, it wasn’t as simple as “I’d like my free site migration, please” because WP Engine doesn’t use cPanel.

i agree that WP Engine should provide at least some documentation for migrating away from them… it would make me more likely to use them in the future (for most of my clients, the cost is prohibitive, but in this case, it wasn’t… *until* she wanted to have two sites. then it was like, well, I can do $30 but not $60).

Np D’nelle :) Thanks for the great comment! Now that you mention it I have also had to generate a fresh wp-config file many times when migrating people away so I just updated the post above. You can see it in step 3.

Ya I wish WP Engine had more flexible plans cause they really are a great host.

Hey so this was pretty helpful, as I’m currently in the process of migrating my site away, but I’m finding that I’m still having so many issues and I think they may still be connected to WPEngine. Basically almost all of my image links are showing up as the wrong file path for some reason, and I can’t figure out how to correct this. On the admin end, everything looks fine, with the right images showing up in the right posts/pages, but when you go to the live site the images are broken. Any idea what this might be/how I could fix it? Any help is appreciated!

I’m assuming a plugin on your site is generating thumbnails in that location or your theme? Do you happen to have your old site still up on WP Engine to look at the path of the thumbnails on there? My guess is that it is possibly a permissions issue. I’m seeing from your IP your new host is either GoDaddy or MediaTemple? If so I would open up a ticket really quick and have them check permissions on your folder directories. They could be set wrong due to WP Engine. That happened to me once on a migration away from WP Engine.

Thanks Brian, you answered my questions and confirmed my fears as I set up this migration process away from WPEngine. Personally I don’t why anyone would want to move away from them but I guess not everyone understands the benefits.

Hey Jim, thanks for your comment. I know a lot of people have been migrating away simply because they charge you based on visitor counts which is not the greatest. I prefer a host which charges a simply monthly fee or by bandwidth model. Also I migrated away to move to Kinsta which actually is much faster than WP Engine. However all that being said, WP Engine is still a great host and for small business owners I still recommend them because they will never have to worry about their site.

Thank you for the article. I wanted to add one more thing. If you do the backup via the WP Admin >Tools and use CDN, it does not have all your files. We had many files in /wp-content/uploads and They did not exist in the WP backup. Make sure you grab all your files off their SFTP server. You should also plan on taking some time. The SFTP was very slow. Even over fiber internet, it was slow.

we do like WPEngine service, but when you are stacked on a server that has adult content on your same IP, not so good.

Great article – the most comprehensive on this topic out there (and I’ve read a few!). I have followed the steps but am getting an “Error establishing a database connection” error. Any ideas what it might be? Or is it possible to hire you to help with this process?

Thanks Ross, glad you liked it. So I’m assuming you created the database on your new host and imported it? I actually have a tutorial that might help you: https://brianjackson.io/migrate-wordpress-website-new-web-host/ I’m betting its something with your database and your wp-config file. Hopefully that helps. Also your new host should be able to help.

Hey Scott, thanks for your comment. I actually just acquired http://wpseer.com this last weekend and I tried out Updraft Plus when I was moving servers. I was pleasantly surprised with the free version. Great little plugin indeed for backups and quick migrations.

I just followed this tutorial to get a site moved off of WPEngine. It seems like it went pretty smoothly, the only issue is that on the new server it runs REALLY slowly, but only if I’m logged in. Looking at the page it’s fine, then I log in and any time I click a new area in the admin section it takes a long time to load. Any idea if this might be related to the site being on WPEngine?

Hey there – hope this comment thread is still being read. Just a note on the 4th Delay – removing the mu-plugins – I am attempting to move away from wpengine to go daddy – There’s a guide here for manual migration and it says not to remove this folder – are you meaning the entire directory or just the plugins relating to wpengine – Refer here to the steps on Go Daddy that mentions not to. https://au.godaddy.com/help/managed-wordpress-manual-migration-12371 – I am staying with wpengine for most of my sites but there’s a few clients who find the fees cost prohibitive unfortunately. So I’m trialling Go Daddy.

Ok – looking further and comparing to a GD clean install – there’s two plugins specific to GD that they’re referring to – so to add – don’t overwrite the original GD install mu-plugins folder with the one from wp-engine – delete it first before uploading i.e ensure you leave the “gd-system-plugin” folder and the “gd-system-plugin.php” file in place – 5 thousand steps and access via sftp later….!

Really helpful article Brian, thanks for writing it. I’m migrating a few sites away from WPEngine to SiteGround – was scared at first as I thought I’d miss WPEngine’s customer support, but actually SiteGround support blows them away! Plus WAY cheaper and great load times with their Cloud plan too.

Hi Everyone. I found this post as we were helping a client move away from WP Engine. WP Engine recently had been compromised and they had forced everyone to make security changes. This along with a host of other issues (I won’t get into them here unless someone asks) left our client uneasy staying with WP Engine.

This post was very helpful. Since my feedback is in January 2016, you may find a few things different from the original posting.

1. We did a full backup from WP Engine and the backup file we received included everything we needed including the Uploads folder and content. We did not find this to be a problem.

2. Folder permissions has not come up as an issue.

3. The wp-config.php file definitely had to be changed to an original version from WordPress.

4. We did ditch the mu-plugins folder.

5. The .git* files were also ditched as recommended.

6. The object-cache.php file did not exist in our case, rather a advance-cache.php This might be a change on the part of WP Engine.

7. The mysql.sql file was removed after we created our own MySQL setup through WHM’s phpMyAdmin.

All of this helped removed the WP Engine link in the navigation too once you entered WP Admin.

At present our client’s site is functioning as intended without WP Engine.

Just finished a chat with a wp-engine support person. They claim that */uploads*/2012/
*/uploads*/2013/, etc are included in the backup provided in the dashboard. We’ll see. Nonetheless, thank you for this writeup.

Hey David,
I totally understand that not everyone can afford Kinsta or WP Engine. I have tested a lot of hosts, and my 2nd best recommendation would be SiteGround. You can check out my review: https://woorkup.com/siteground-review/ I got great speeds from them!

Thanks, Brian. I’m in the process of moving from WPE to SiteGround. I had no problem copying my site (using All In One WP Migrate plug-in), but couldn’t work out how to get rid of the WPE software. Some google-fu brought me to this page, where you had just the info I was looking for. And it was also nice to see you recommending SiteGround. Thanks again, and I’ll be returning to your site in the future.

Thanks this!. All I ended up needing to do today was to rename the mu-plugins folder and that eliminated WP Engine from the mix. I had previously 1) installed WP at destination; 2) FTPed all content into wp-content folder; and 3) imported the database via myPHPadmin.

I see this article was posted a couple years ago, but it was at the top of my search for ‘Remove WP Engine from WordPress”. Good job.

Your article gave me all the clues I needed. Something that made my ‘migration’ easier was an UpdraftPlus backup prior to migration. Probably any other standard WP backup would work, but I’ve used Updraft for a while, it works well. It puts backups of everything (I usually backup to cloud storage) on the current server in zip files so they can be downloaded locally, including the MySQL database and ALL folders and files below public_html.

When your site is backed up:
Download the .zip files locally.
Point your name servers to the new hosting.
Set up a new empty version of WP.
Install the backup plugin.
Upload/Restore all the files.

Voila.

Updraft has a migration tool, but if your domain name hasn’t changed, it’s not necessary and the process only takes a few minutes. Actually, even if your domain changes, you can restore, you just have to do a global find/replace on the domain name in the .sql file. That may be a bit daunting for some, but it works.

THEN I removed all the WP engine junk per your instructions. Thank you very much for the assist!

This has been so good to see, migrating from WPE has been a nightmare.

That being said, I cannot for the life of me get the migration to work. I’ve tried manual file downloads and re-up to Godaddy, and the All-in-one import / export and duplicator pro and everything goes off without a hitch…right up until I try to access the site or admin and boom, nothing but some kind of TLS / Security error.

Man you are the best. Seriously! I just spent 1 hour with liquid web on the phone trying to figure out what was wrong with a website that I migrated from WP Engine, and we could not figure out. Then I start searching on google how to remove the stuff from Wp Engine. After I did what you mentioned everything was good.