How to Migrate WordPress:
Today we will look at the process to migrate WordPress website from WPEngine to a new host (in this case, SiteGround). SiteGround does offer a free migration service, but if your site is over 1GB, you will have to pay their $50 fee. Instead, we will migrate the site over ourselves.
WPEngine makes it harder than most other hosts to migrate a site out of their system because they block backup plugins. Normally, I would use BackupBuddy to migrate a site because it takes care of importing the database to the new host and switching URL’s to match the new domain. Instead, we will do a manual migration of the site.
Let’s get started!
Step 1: Move all files over via FTP
The first step, and also the most time consuming for large sites, is moving the website files to the new hosting account. Log into your WPEngine account via FTP. Our favorite FTP program is Transmit, but you can also use a free program like FileZilla. After accessing your server, you will be at the root folder of your WPEngine account. You will want to download every file and folder in this directory to your computer.
Once downloaded, you will then want to login to your SiteGround server via FTP. When you login, click on the folder: public_html. This is the folder where you want to upload all of the files that you just downloaded from WPEngine. See the screenshot below of the files and folders that should now be in your SiteGround FTP (don’t worry about the Apple touch icons or favicon, your site may not use those). This step took a few hours with a 2GB website and an internet connection of 25MB Down/5MB Up. Be patient and let everything transfer over.
Step 2: Create an Empty Database at SiteGround
WordPress is made up of two parts, the files (which we moved in the last step) and the database (which holds your content and settings). We will need to create a new database at SiteGround so we can import the one from WPEngine. This new database will be empty so we can do the import in the next step.
Login to your SiteGround account and click “Go to cPanel”
Once in the cPanel, scroll down to the database section and click on “MySQL Database Wizard”.
Give your database a name and click next step. Keep a record of this and the database username and password for later steps.
Give your database a username and password, which will be used when we update the wp-config.php file later on.
Make sure the user has all privileges, which is required to connect things with WordPress.
Step 4: Download Original Database from WPEngine
Before we can import the database into the new empty database at SiteGround, we need to download the old database from WPEngine. The best way to do this is to login to your WPEngine account and click on “Backup Points” in the far left menu. There, click the most recent checkpoint and then download the zip.
Unzip this file then click into the “wp-content” folder. There, your database can be found. It is the file titled: mysql.sql:
Step 5: Import Database to SiteGround
No that we have the database file from WPEngine, we need to import it into our blank database we created in Step 2. In your SiteGround cPanel, go back down to the database section and click phpMyAdmin.
Once loaded, click on your empty database name in the left column. Then click “Upload” at the top, which will brig you here:
Browse your computer to upload your .sql file that was downloaded from WPEngine. Once selected, click “Go”.
Step 6: Update wp-config.php
The files you moved over in step one will include a wp-config.php. The one made by WPEngine is highly modified, so you will want to edit the wp-config-sample.php file and then rename it to wp-config.php to replace the one from WPEngine. In wp-config-sample.php, enter your database settings in the section below. Your database name and username will also include your SiteGround username (sitegroundname_databasename). Hostname will be “localhost”
The last step in wp-config-sample.php is adding Unique keys, which can be found at the link seen below:
Once these changes have been made, save the file as wp-config.php to replace the one from WPEngine. Now you are ready to point your domain to the new SiteGround account.