Quickly Migrate Your Self-Hosted WordPress Blog with Duplicator

Migrating a self-hosted WordPress blog to a live server or another web host isn’t something to look forward to. It’s a tedious and time-consuming process of backing up databases and files, editing certain WordPress files and settings, testing for errors, lots of going back and forth, and waiting. You also need to be extra careful as you’d be working with core files – any tiny bit of error when you modify the wp-config.php file will break your entire blog. Clearly, this is not for the tech-challenged, or faint of heart.

This is why when we say that Duplicator is a magical plugin that eases the pain of WordPress migration, we’re not exaggerating. It works like magic -- see it for yourself to believe how it simple it makes the process look.

0.intro movingwp

What is Duplicator

Duplicator is a free/donationware plugin that lets WordPress.org users duplicate, back up, and move their site with as little effort as possible. With 1.2 million downloads and a glowing 4.9/5 stars review, it is a very popular, reliable plugin. It was developed by Corey Lamle of Lifeinthegrid and Bob Riley, with contributions from other developers.

An enhanced version of this tool named Duplicator Pro has just been released, adding several brand new features including scheduled cloud backups.

When You Can Use Duplicator

There are four scenarios where Duplicator can be useful:

1. When moving your locally installed WordPress blog to a live server (publishing your site, essentially)

2. When you’re switching between web hosts

3. When you’re moving your live site to your local server (reverse of #1) for faster development

4. When you’re copying and backing up your site

This tutorial focuses on scenarios #1 and #2, though most of the steps apply also to scenarios #3 and #4.

Whom This Tutorial is For

This is written for those who have self-hosted WordPress blogs, whether you’ve locally installed a blog (using WAMP, MAMP, or other local server platform), or would like to change web hosting providers. Multisite migration is not yet supported, but users can still use the plugin to clone or backup their MU sites.

If you’re coming from WordPress.com, these instructions don’t apply to you, but you can check out our short tutorial on that.

Duplicator requires at least intermediate WordPress skills and knowing how to upload files to your web host’s server, whether using FTP or your host’s file manager. The plugin comes with a disclaimer:

“If you plan to move WordPress or backup WordPress please use it at your own risk and do not forget to back up your files and databases beforehand with other backup system. Please do not attempt to use the plugin if you're new to WordPress or have a limited technical background.”

If you don’t feel up to this task, it’s best to seek the help of your web hosting provider to migrate your blog.

What You Need

Not all servers are configured the same, and your ability to use Duplicator also rests on the kind of hosting plan you have. Some shared hosting plans, and often, managed WordPress hosting, do not permit root access or give you privileges to upload files to the server. Many popular web hosts like BlueHost, Hostmonster, Inmotion, and A Small Orange are known to work with the plugin.

Duplicator will check if your WordPress installation and current server are configured right. If you’re moving your blog to another web host, you’d also need to check if the destination server is compatible with Duplicator. If you’re still shopping around for a host to transfer to, ask your potential new host’s presales team whether they support migration via Duplicator. Many web hosting providers offer site migration assistance for free, so take advantage of this offer, whether it’s done using Duplicator or not.

Versions Used in This Tutorial

We used WordPress 4.1 and Duplicator 0.5.12. If you’re reading this on a much later date you might see an interface different from what you see in the screenshots shown here.

Easy Migration in 5 Phases

We assume you’ve already made at least one backup of your entire blog. Here’s an overview of the steps (we’ll call them “phases” to distinguish them from the smaller, detailed steps):

  1. Install and activate the plugin.
  2. Create the Package.
  3. Upload the Package to your new host’s server.
  4. Create a database and run the installer.
  5. Test and clean up the Package files.

Now, let’s get to work.


Within your WordPress dashboard, search for Duplicator in the plugins page. Install and activate as is usual. If you want to install the plugin manually, you can download a copy here.

I 1 wpduplicator

Once activated, you’ll see the Duplicator options link on the left menu. Click on “Packages.”

I 2 wpd menu


You will be greeted by this message: “No Packages Found. Click the 'Create New' tab to build a package.”

II 1.dcreatenew

Click that tab as instructed to start packaging your blog.

 II 2.dpanels

SETUP PANEL OPTIONS – let’s take a closer look:

Panel 1: Requirements check – To avoid issues, Duplicator checks whether your site has the proper requirements (PHP support, permissions, server support, and if there are any leftover reserved files from a previous Duplicator setup that may conflict with your current one—which of course you won’t have if this is a fresh install.). You will get a fail error message if anything needs to be resolved first. Click on the dropdown arrow on the right of the panel to see further options.

II 3.dsetup1

Panel 2: Name and Description – Lets you label and distinguish between the packages you’ve made, especially when you’re creating several for testing or versioning purposes. The blue circular arrow resets what you’ve typed to a default name.

Panel 3: Archive options – A Duplicator package is composed of two separate files: the archive and the installer. Click on the panel’s dropdown arrow on the right to see the options. As shown here, both your blog’s files and database are archived automatically for you. Ticking “Enable File Filters” lets you exclude specific directories or paths, as well as file extensions. For example, if your blog has too many large files (such as hi-res photos and videos) it could slow down the archiving process. A solution is to tell Duplicator to skip the directory where those media files are located (often in /wp-content/uploads). Another is to simply filter out those with media file extensions (.gif, .png, .mp3, etc.).

II 3.dsetup2

Panel 4: Installer options – Unless you know what you’re doing, leave the options here blank. You’ll be asked for these values anyway when you get to the deployment process (Phase IV).

II 3.dsetup3

Once everything is set, click on the Next button to let Duplicator scan your blog and perform a diagnostic. In the screenshot below, the diagnostic revealed problematic areas like large files contributing to total size.

II 4.dscan

Clicking on the links beside the warning messages will give details so you could remedy the situation. In most cases, you can still go to the last step, which is to build the package.

Once this is complete, you will get two files: a .php installer and a zipped archive. Download these, as they’re the ones you’d be using for transferring your blog.

II 5.dsuccess


Now it’s time to upload the Duplicator Package to your web host. You can use an FTP program (such as Filezilla) or your web hosting account’s file manager. Depending on the size of your blog and your connection speed, this could take a while.

III 1.cpanel

Important: Make sure you’re uploading to an empty directory – there’s no need to install WordPress prior to this step. Otherwise, any existing blog you have on that directory will be overwritten or conflict with Duplicator while doing its job.

Also, the package files reference each other, so unless you know what you’re doing, avoid renaming them.


Here you need to create a database manually. This is the most technically challenging part – but if you follow the steps closely, this shouldn’t be as hard as it sounds.

1. Log in to your web hosting control panel (here we’re using cPanel), then click on “MySQL Databases.” Take note of the values you enter, as you will use them again.

IV 1.cpdb1

2. Create a database.

IV 2.cpdbcreate


3. Create a new user.

IV 3.cpdbuser

4. Add the user to the database.


IV 4.cpdbadd

5. Give new user all database privileges.

IV 5.cpdbprivs

6. With a web browser, navigate to http://yourblog.com/installer.php.

This opens the installer.php interface and starts deploying your blog to your new server.

IV 6.dinstaller

7. Enter the database values you’ve created in the previous steps. Then click on Test Connection.

For the Host, the default “localhost” works most of the time (unless your web hosting provider requires specific parameters). If you enter the other values correctly, you will get a test connection success dialog. Otherwise, if the test fails, you can try the suggestions on the dialog box on how to resolve common issues. In the example below, we forgot the prefixes for the database and user names. Once we corrected our error, we got to the next steps without further trouble.

IV 7.dinstallerfail

8. Once you get a successful connection test, check the “I have read all warnings and notices” box and click Run Deployment at the bottom.

IV 8.dinstaller update

You’ll be shown this page. Don’t concern yourself too much with the settings or advanced options, as these can be changed later on.

9. Click on Run Update.

Almost done!


At this point, your entire blog has already been moved to your new host’s server. These remaining steps ensure that you’ve migrated your blog without issues and lets you tidy up to prevent any security vulnerabilities. (Click on the links for details.)


V 1.dinstaller test

1.  Install Report – This summarizes properties of the database you’ve created, as well as any errors or warnings encountered during deployment.

2. Save Permalinks – Lets you update your permalinks, if needed, via the WordPress admin panel.

3. Test Site – Clicking on the link opens your blog so you can check if everything is in place.

4. File Cleanup – This is a crucial step for securing your newly migrated blog against possible intrusions. At this point, the Package installer and archive files have served their purpose, so you can delete them. Click on the link to let Duplicator do this automatically (you need to be logged on to your WordPress admin page). Additional cleanup options let you scrub your blog of old, potentially harmful Duplicator data.

V 2.wpdtestclean


Duplicator did all the heavy lifting really fast that you’d barely notice your entire blog—content, settings, and all—has been transported to a totally different server. Everything is amazingly intact: when you log in to your WordPress admin dashboard, for example, you use the same credentials as before; even zipped backups of the blog are included in the migration.

Further Support

One of the things that make Duplicator such a good plugin to use is its extensive documentation. Should you encounter any issues, the plugin author provides comprehensive support resources.


Of course, Duplicator isn’t the only WordPress backup, cloning and migration solution out there. If for some reason it doesn’t work or it isn’t to your liking, you can check out these other plugins:

And don’t forget, many web hosts would gladly assist you in migrating your blog, often for free. Take a look at experts’ and users’ reviews to find out which of them might offer you the best service.

Written 2015-04-06 (Updated 2016-10-10)
david for reviews7

Written by David Walsh

David Walsh is the editor in chief here at Web Hosting Search. Having been in the industry for many years now he knows pretty much everything about everything. At least that's what he keeps telling everyone at the office. So, don't hesitate to drop him a line  if you've got a question - david(a)webhostingsearch.com.

Share your thoughts

Jean,  13 May, 2015

Amazingly easy to use and reliable free WP migration tool, works like a charm.
Just make sure to exclude the following directories from your backup in the settings panel. This will dramatically decrease the size of the backup file and reduce the risk for errors during the backup process.
Important: you should obviously download these directories separately from your original site and copy them to the appropriate directory in your cloned site)
1. wp-content/uploads;
2. wp-content/cache;
3. wp-content/plugins;
4. any plugins included in your theme, for example: wp-content/themes/**yourtheme**/inc/plugins

Thanks for this great tuto!

Show all related articles..

Best Value Hosting 2016

Why wait? Get today's best deals now!