How to Migrate a WordPress Site with the Duplicator Plugin

WordPress has a lot of migration systems. We’ve had lots of good experiences with All-in-One WP Migration, some people swear by WP Migrate DB Pro, and others are partial to WP-CLI’s terminal-based systems. On top of these options, I’ve recently found a plugin I really like called Duplicator that approaches WordPress migrations in a unique way. Here’s a guide on how to use Duplicator, and what sets it apart.

What Makes the Duplicator Plugin a Great WordPress Migration Tool

With the Duplicator plugin, you don’t need WordPress to be already running on the destination server.

One of the few tools I’d never tried until recently was Duplicator. When I did, I loved it, mainly because of one pleasant surprise about how to use the Duplicator plugin: you don’t need WordPress to be already running on the destination server. Instead, you just copy over two files, put them in the destination folder, and the Duplicator installer takes care of installing both WordPress itself and all your site’s contents.

This is a really great advantage over other WordPress migration tools. Rather than Duplicator’s very quick process, you first have to install WordPress, then install a migration plugin to accept my migration as an “Import.” Duplicator skips that, with an installer.php file that will get WordPress itself installed, and your WordPress site migrated, in a few click of a wizard.

Here’s a video demonstrating how to use Duplicator to migrate a WordPress site:

And here’s the text version of the video, broken down into a step-by-step WordPress Duplicator plugin tutorial:

How to Migrate a Site Using the WordPress Duplicator Plugin

  1. Install and activate the Duplicator plugin, on the WordPress site you’re copying from.
  2. Click on “Duplicator > Packages” in the left-side menu (it’s toward the bottom).
  3. In the top right on that screen, click the “Create New” button.
  4. Click through the wizard. That’ll be a blue “Next” button on the “1-Setup” screen, and a “Build” on the “3-Build” screen.
  5. When you see “Package Completed” click the “One-Click Download” link. You should be prompted (by your web browser) to download two files. Save both.
  6. After they’ve completed the download, move the two files (installer.php and something ending with .zip) into the folder you’ll want the WordPress site in.
  7. In a web browser (with your server running) visit the installer.php file.
  8. If everything works, you should see a wizard screen similar to the style you saw in your WordPress dashboard. You’ll need to click “I have read and accept all terms & notices.”
  9. Click “Next.”
  10. Here you’ll need to have a database ready. Then tell Duplicator your database name, user, and password. For me, that meant creating a new one with MAMP, but this step will vary depending on your environment. For many shared hosts, you’ll have a cPanel based “Database Wizard” to do this.
  11. If it all works, you’ll see “Step 4 of 4: Test Site”. There you’ll want to click the “Site Login” button, and log in to your WordPress site using the same username and password as you have on the remote site.
  12. You should now be in a full-fledged copy of your WordPress site.
  13. Make sure to clean up after Duplicator. It’ll give a helpful admin notice (a banner at the top) showing you things. If you click “Take me there now!” you’ll then be on the screen to click “2. Remove Installation Files Now!” After you do that, you’re done.

It’s pretty amazing how polished and slick the Duplicator plugin is. I know 13 steps looks like a lot, but migrating sites is hard, and the above outline is made of very small explicit steps—I assure you this is easier than most other WordPress migrations I’ve done in my career. You can hear my surprise and excitement in the video. ;p

Studying Migrations Because You’re Not on the Best WordPress Hosting?

We hope this Quick Guide helps you know how to use the Duplicator plugin to migrate WordPress sites. We also know that lots of people do WordPress site migrations because they’re dissatisfied with their current hosting plan. If that’s you, be sure to check out our comprehensive guide to where to find the best WordPress hosting:

The Best WordPress Hosting: An Honest Guide (2023)

Most Voted
Newest Oldest
Inline Feedbacks
View all comments
December 10, 2020 3:53 am

my installer.php not open in browser

July 14, 2020 9:52 am

I’m pulling my hair out… I can’t get beyond stage one – rather than the system prompting me for the database credentials, I just get ‘error establishing database connection’. Any ideas?
Thanks 🙂 Jez

Dan Chaytor
May 17, 2020 3:34 pm

Does this work if you already have WP installed on the target server? Or should it be a server that doesn’t have WP installed?

Vidal Health
January 8, 2020 1:10 am

I just did this yesterday. Didn’t know that I needed to have a completely wiped website to throw it on so there would be no errors. I originally tried to have backup the site and then clone it but ran into some issues… So this plugin worked great!

September 25, 2019 3:10 pm

I tried several WP plugins to download the Database before finding Duplicator (all the others ran out of memory). the original designer wouldn’t give us access to the control panel so we couldn’t use the other plugins but with Duplicator we can download to the computer so that worked.

We are moving the site to a new host. I got the database installed on the new host (with the help of the host’s tech person) but he said the “content” is missing and he said he can’t help me any further. I’ve never done this before so not sure what to do. Is the content hiding somewhere in a folder or does duplicator not copy the content?

September 16, 2019 9:55 pm

I have a perfectly running localhost web site running on the Mac OS 10.6.8 partition of my laptop disk. I used Duplicator to clone it to the Mac OS 10.11.6 partition of the same laptop disk.

My localhost website cloned perfectly. BUT, in addition to the proper menus on the left side, the clone also included a second menu system entitled “Pages” below the first set. The second set listed ALL the pages of my web site including ones that originally could only be reached with internal links.

Why did I get that second set?

Anna Nordin
September 8, 2019 2:23 pm

It didn’t work for me 🙁

The installer file just downloaded on my computer instead of being open in the brower window.

Corey Fronek
September 3, 2019 1:19 pm

I just did this yesterday. Didn’t know that I needed to have a completely wiped website to throw it on so there would be no errors. I originally tried to have backup the site and then clone it but ran into some issues… So this plugin worked great!

Fred Meyer
September 3, 2019 1:58 pm
Reply to  Corey Fronek

Great to hear, Corey! 🙂

Diya Jain
July 29, 2019 7:52 am

You are absolutely right…. it’s a big task.
By the way nice article with defined pointers.

July 27, 2019 10:25 am

works for me too.

I was using updraft Plus and it worked well also

July 12, 2019 6:48 am

Hi Dave,

In trying to follow your directions of moving my remote site to Localhost, I am having problems getting the installer.php to activate. I have the latest WordPress and PHP installs.

Are you aware of the reasons why this might be so?

With thanks…

May 28, 2019 7:55 am

Hi, what do I do if I want to reinstall an old site locally but I don’t remember my login info

May 24, 2019 1:56 am

Just a quick question.
Just noticed this – how come the article date is May 9, 2019, but the first comment is June 5, 2018?

Fred Meyer
May 27, 2019 3:17 pm
Reply to  Arnold

Time travel would be the coolest explanation. 🙂

The more mundane one is that we continue to update and expand this article periodically.

May 24, 2019 1:52 am

I develop sites under a temp folder on my website and the client has a link so that they can see my progress and suggest changes during the process. Once everything is done to their satisfaction (and I’ve been paid) I transfer to their domain.
I’ve been using Duplicator for about 8 years now. Seen all the hype about other migration plugins, but never felt the need to try them as Duplicator did all that I needed and I found it straightforward to use.

Devendra Singh
May 8, 2019 10:38 pm

love you man…….

April 17, 2019 3:58 pm

What about replacing an existing WP site? i.e. overwriting it.

Here’s the scenario:
Existing site is in the (/), new site layout and design is in /new/. I would simply like to overwrite the old site with the new one. Assuming I have backed up the original site, is it ok to run the installer in the root dir of the existing WP site?

Muhammad Talha
April 15, 2019 12:57 pm

Thanks for the wonderful guide. Keep writing 🙂

April 3, 2019 11:13 am

Hello, I completed all the steps, and it says it was successfully migrated over, but when i go to the subdomain i put it on, it says “Future home of something quite cool.” … but yet the wordpress dashboard seems to be up and running… just not the front site. Any thoughts? Thanks so much!

February 20, 2019 8:26 pm

Sir, If I am going to clone the site to target host. The target host tells me there is an error of extracting the archive. The page tells me to go Advanced Option but I cannot find this option at my target host installer.php . Please tell me what to do next

Abdullah Prem
February 20, 2019 5:48 am

After watching this video, I did migration myself.

Kunal Mate
February 4, 2019 3:02 am

Really helpful for work on the local machine.
Great plugin.

January 17, 2019 9:09 am

I want to duplicate my live site to a subdomain.

1. Does the Duplicator package contain all of WORDPRESS or do I need to install WORDPRESS first on my subdomain?

2. Where do I upload the Package to on the subdomain?

Thank you.

December 26, 2018 4:09 am

Hi David,
thank you for this great step-by-step guide. Do you suggest to use Duplicator (maybe pro version) also to have regular backups?
Or do you suggest another plugin?

November 23, 2018 3:04 am

Hi David,
Thanks for putting up this tutorial. I’ve just finished building a new website on my localhost and am ready to migrate. Your tutorial is clear, apart from step 10, where you say: “Here you’ll need to have a database ready. Then tell Duplicator your database name, user, and password.”

Do you mean I have to set up a new database at the domain I want to migrate to, or do you mean the specs of the database on my localhost, which obviously is already filled with my newly made website?

November 18, 2018 4:11 pm

I forgot to download installer.php, so what can I do now? My previous site has gone and i just have archive file. Could I take another installer.php and put a side archive?

November 16, 2018 8:37 pm

this works ok even if moving to a new directory and new domain?

Fred Meyer
November 18, 2018 9:21 pm
Reply to  Tony

Yes, correct!

November 15, 2018 8:49 am

This WordPress duplicator is used to migrate a website from one hosting to another hosting. This plugin creates a backup of our website. Can we use UpdraftPlus WordPress Plugin to create our backup and then transfer our website??
Can we use UpdraftPlus instead of WordPress duplicator?

Martin Jocher
November 3, 2018 7:14 am

If I download the archive zip, it’s suddenly 0 Byte.
Why can this happen?

Somnath Jadhav
November 2, 2018 4:52 am

If you could add screenshots along with the steps, it would be more helpful.

Thanks for article.

Tom Jackson
June 5, 2018 4:47 pm

Backup Buddy (by iThemes) works exactly the same way, plus you can obviously use it for backups.


June 6, 2018 2:50 am
Reply to  Tom Jackson

I was about to comment the same.