Migrate Guru Tutorial: How to Migrate WordPress Websites for Free

5 min read

WordPress provides a variety of different plugin tools to help you migrate your sites from one host to another. Migrate Guru can be a very easy option and fast. 

During this article, we will be referring to the site you wish to migrate as the origin site and the site or server being migrated into as your destination site or server.  

Multisite Notice

1. If you're migrating in a multisite, be sure to toggle on the appropriate multisite setting in your website customizer BEFORE you begin. Learn more here:
How to Enable WordPress Multisite on GridPane

2. Be sure to set the correct URL when migrating a multisite. DONT use a temporary URL/domain as you will not be able to change this after the migration has completed. Instead, use a local hosts redirect to check your migration has been successful:
How can I edit my local hosts file to redirect URLs

Step 1. Set up Your Destination Server and Site 

In your GridPane account, if you haven’t already provisioned a server to host the migrated site, do so now. We have easy to follow guides with step by step instructions here.

Then deploy your site. Here is how to deploy a site on Gridpane. 

Create a system user and add it to the site. we have this documented here. Save the credentials we might need them later. 

If you’re using Cloudflare or DNSME. You can use DNS API domain verification method to pull SSL before changing the A records. Here is how to go about it. 

Step 2. Go to the Source Site and Migrate the Site Over

Install and activate Migrate Guru on your origin site. 

Screenshot_2020-04-08_at_14.50.52.png

Go to Migrate guru and add your email then proceed. 

Screenshot_2020-04-08_at_11.05.55.png

On the next page. Select FTP. 

Screenshot_2020-04-08_at_11.06.22.png

You need to carefully add the details that you created on your destination site. Here is an example below 

Screenshot_2020-04-08_at_11.09.40.png

Destination Site URL

On the Destination URL, if the site has SSL then it’s https:// 

Without SSL it’s http://

FTP Type

Select SFTP.

Destination Server IP and Port

Add your destination server on GridPane. You can ignore the port.

FTP Username

Add the System User you created for the destination site. 

FTP Password

You can find your password on the System Users page. Find your system user and click on the little eye icon to open up and view your password:

Alternatively, you can create a new password by clicking on the padlock icon:

Directory path

The directory path looks as follows:  /sites/site.url/htdocs

For example:
/sites/example.com/htdocs

Once all your information has been added, click Migrate. If all the details are correct then you should get this page below. 

Screenshot_2020-04-08_at_11.15.11.png

You should get a confirmation after the migration. 

Screenshot_2020-04-08_at_11.19.31.png

Step 3. Test Your Site on GridPane

Make sure you test the migrated site on GridPane. Check both the front end and the dashboard if all was migrated. 

Use your local host to redirect URL. This is how to go about it. 

Once you have confirmed the migration was successful you can safely flip DNS to the GridPane Server. 

Important

Please double check that another wp-config.php has not been transferred over inside your websites /htdocs folder.

Troubleshooting

Your migration may have gone flawlessly, but there may be an issue or two that may need correcting once complete.

The common one we see is directly below – if you or you’re host have configured a custom database table prefix, then you may need to update this in your wp-config.php file.

Incorrect Database Table Prefix

The Problem
You’ve imported your site, but all the plugins are deactivated and content is missing.

Diagnosis
We sometimes see this when migrating from managed hosts such as Kinsta and WP Engine. Here you need to check to see if the database table prefix is “wp_”. You can do this by clicking on the database icon next to your website to open up phpMyAdmin:

We’re looking to see if these match up (be sure to check thoroughly as the original database tables from the sites creation may still be there):

A custom prefix could potentially be anything, but often looks something like: “wp87f_

The Solution
If your table prefix doesn’t match up, but all your database tables are using the same prefix, you can edit the table prefix in your wp-config.php via SFTP (download, edit, reupload) or the command line.

To edit via the command line type the following command (switch out “site.url” with your domain name):

nano /var/www/site.url/wp-config.php

Edit your prefix, and then hit Control+O, and then enter to save the file. Exit with Control+X.

Checking for and deleting duplicate wp-config.php files

To ensure your migration has been successful, you may also want to double check that you don’t have two wp-config.php files inside your site. If you have one inside /htdocs you should delete or rename it.

/var/www/site.url/htdocs

GridPane securely stores the wp-config.php file 1 level up outside of /htdocs here:

/var/www/site.url

If you have two wp-config.php files these can interfere with each other and cause problems. Please simply delete the wp-config.php file inside /htdocs if it exists, and leave ours in it’s place.

You can do this by connecting to your server over SFTP:

Connect to a GridPane Server by SFTP as Root user

Or you can delete them directly on your server – please see the following guides to get started setting up your SSH Keys, and connecting over SSH:

Once connected to your server, you can navigate to your websites htdocs folder with the following command (switching out “site.url” for your websites domain name):

cd /var/www/site.url/htdocs

Then display the contents of the file with:

ls -l

And if you see a wp-config.php file, you can delete it with:

rm wp-config.php

Once that’s done you’re all set!