Migration is the process of cloning a website and moving it to another location. Some of the more common reasons for migrating a site are a change of web host, a change in domain name, or creating a development site to test things. There are many migration and cloning tools for WordPress. Plugins are the easiest tools to use for this purpose. In this tutorial, I’ll review 3 of my favorite plugins that replicate all of the files and the database from one site to another: Duplicator, Backup Buddy, and All-in-1 WP Migration.
The database is the main feature that differentiates WordPress from HTML sites. HTML sites are comprised only of files, so copying and moving them is relatively simple. But, WordPress has a database, which makes it a bit more challenging to copy and move. All of the content resides in the database: text (pages, posts, comments), meta data (categories, tags, custom fields), user accounts (user names, passwords), site options, plugin and theme settings, etc. It’s a very important part of what makes WordPress a “Content Management System”.
Pre-Cloning and Migration
Before diving into using any of the plugins, let’s clarify some terms and follow a few preliminary steps.
Source = the original site that you are cloning.
Destination = the new site
Step 1 – Create the new Destination Site
The new site can be an entirely new primary domain, subdomain, or subdirectory. In the reviews of each plugin, I’m using a subdomain.
Primary Domain – If the destination site is at the top level of the domain, the folder will likely be named “public_html” (URL address would be myurl.com).
Subdomain – If the destination site is a subdomain, the folder will be named like this: destination.myurl.com.
Subdirectory – If your web host doesn’t allow subdomains, create a subdirectory: myurl.com/destination.
Step 2 – Backup the Source Site
Prior to any migration, make sure you backup the source site just in case you need to revert back to it! I also strongly suggest you backup the site before implementing any kind of updates to plugins, themes, WordPress, etc.
- Log into your WordPress site.
- Install and activate one of the WordPress migration tools (a backup plugin).
- Use the plugin to backup the database AND all of the files.
- Download the files and the database to your computer and/or to a secure cloud area (Dropbox, Amazon, Google docs, etc.)
Step 3 – Create the Destination Site Database
When using Duplicator or Backup Buddy, creating the new database for the Destination site should precede cloning or migration.
Database Settings. Log into your web host account, then go to cPanel (or its equivalent), find the database area (MySQL Databases), and create a new database. Web hosts sometimes name the database for you, giving you the option to add your own prefix (which must include an underscore). Keep it simple and memorable. I use a prefix that includes the year and is easily identified. For example:
Next, create the user; then, you need to add that user to the database (with all privileges). Write down the names of the database and user, as well as the password. You will use this information in the migration phase of Duplicator and Backup Buddy.
Plugins Review and Tutorial
One of best, free WordPress migration tools available. Premium versions (Pro plans) start at $59/year with additional features, including scheduled backups, cloud storage, installer creates database and users, and multi-site. Developed by Snapcreek.
- Click on Duplicator > Packages in the left sidebar. You’ll see a list of any backups that have already been made. You can download any existing backup by clicking on both the Installer and Archive buttons.
- To make a fresh backup, click on the “Create New” button at the top of the page. A name for the package will automatically be generated, but you can change it if you want. Click the “Next” button to continue.
- System Scan and Build – Duplicator scans the site and alerts you about any problems. You can attend to the problems (which are usually related to file size), or you can continue by selecting the box next to “Yes. Continue with the build process!” Then click the “Build” button.
Duplicator will create a downloadable package of the site that includes the database, images, plugins, themes, and other files.
- Download the package – when finished, the links for downloading will appear. There are separate buttons for the Archive (backup files) and the Installer script. Since you need both files, click on the “One-Click Download” link.
- Using your preferred ftp program (I use Filezilla), upload installer.php and the .zip archive of the complete backup file to an empty folder in the intended destination on the web host’s server.
- In your web browser, navigate to the url where you placed the 2 files:
- Deployment – Setup and Validation should have a green “Pass” icon. You can review the default settings by clicking on the Options section. If all is well, select the checkbox next to the terms and notices agreement. Then click the “Next” button to continue. Your files will be “unzipped”.
- Database Settings and Test. Enter the MySQL database information in the Duplicator fields. Once everything is correct, you can click the “Next” button.
- Update Data. When prompted, update the data by clicking “Next”. The destination URL will replace the source URL.
- Verify Site and Finish. Click on the admin. login link to verify and clean-up the installation. Navigate to a few pages and check to make sure things look OK. In particular, I recommend that you review the navigation menu and its links, the footer, home page, at least 1 or 2 interior pages, blog, and any page that has a calendar or a form (contact form, subscription form, etc.).
- Finish Cleanup. Duplicator will clean up the files automatically. But, as an added measure, go to the Duplicator > Tools area and manually delete the installation files by clicking the “Remove Installation Files” button. You can also click on the “Clear Build Cache” button. Now, you’re done!
Of all the paid WordPress migration tools, I prefer this one. Premium plans start at $48/year. Years ago, I paid a one-time fee of $297 for a lifetime license of Backup Buddy Gold. It gives me access to support, licensing, updates, and themes forever. They no longer offer this license, but I’m grandfathered in. Developed by iThemes.
- Click on BackupBuddy > Backups in the left sidebar. You’ll see a list of any local backups that have already been made. You can download any existing backup by selecting the 3 dots to the right of the list item and scrolling to “Download” or “Send to Remote Destination”.
- To make a fresh backup, select the “Create Backup” tab at the top of the page.
- Choose a Backup profile to run. Select “Complete Backup” (includes all files and database). When that is complete, click on the “Download Backup File” button.
- As an additional precaution, you could backup the database separately by clicking “Back to backups” and selecting “Database Only”.
- ImportBuddy. In the top right corner, select the ImportBuddy dropdown menu and select “Download importbuddy.php”. You’ll be prompted to set a password or use an existing one that you may have previously established. The importbuddy.php file will assist you during the actual migration.
- Using your preferred ftp program, upload importbuddy.php and the .zip archive of the complete backup file to an empty folder in the intended destination on the web host’s server.
- In your web browser, navigate to the url where you placed the 2 files:
- Click “Restore Backup” button. Your files will be “unzipped” and uploaded to the server.
- Database Settings. The Database Wizard will guide you in setting up the new database. Fill out all fields and then click “Create Database”.
You could, instead, use the standard form and fill in the fields with the MySQL database information from Step 3 at the beginning of my tutorial (Pre-Cloning and Migration).
- Once the database settings have been configured successfully, click the “Next Step” button. The database will be restored.
- URL Settings. Review the old URL and new URL addresses, and make sure they are correct. Fix any mistakes, then click “Next Step” to finish the migration.
- Verify Site and Finish. Click on the destination site’s URL on the verify window. Navigate to a few pages and check to make sure things look OK. As with Duplicator, I recommend that you review the navigation menu and its links, the footer, home page, at least 1 or 2 interior pages, blog, and any page that has a calendar or a form (contact form, subscription form, etc.).
- Finish Cleanup. If all looks well, click on the “Finish Cleanup” button. You’re done!
ALL-IN-1 WP MIGRATION
I use this plugin on the rare occasions when my other migration tools for WordPress don’t work. If this fails, I do a manual migration! It is a gem of a plugin. You don’t have to create the database, because Allin1 does it for you. On sites larger than 512MB, you’ll need to purchase the premium version for a one-time fee of $69. This will be money well-spent. Developed by ServMask.
Source and Destination Site
- Install WordPress on the destination site.
- Install and activate the All-in-1 WP Migration plugin on both sites.
- Click on All-in-1 WP Migration in the left sidebar. Select the Export link.
- Click on the “Export To” dropdown menu and select “File”. The process of collecting the files and database will begin immediately.
- When the process is complete, click on the “Download myurl.com” button. The exported file will be named with the suffix “.wpress”.
- Click on All-in-1 WP Migration in the left sidebar. Select the Import link.
- Click on the “Import From” dropdown menu and select “File”. Find and select the “.wpress” file you exported from the Source site. The process of collecting the files and database will begin immediately.
You can Drag and Drop the “.wpress” file.
- When the process is complete, your destination site will be an exact clone of the source site!
If you prefer learning by watching, check out my video tutorial that shows you the how to use these 3 WordPress cloning and migration tools.