For me, domain names are impulse purchases, and after developing a new site for a while, the original domain I picked sometimes just doesn’t have the same appeal anymore. Migrating content between sites then becomes an issue. Previously, I recommended the use of SSH to migrate a locally developed WordPress siteHow To Migrate Your Locally Developed Wordpress Site To A Live ServerHow To Migrate Your Locally Developed Wordpress Site To A Live ServerWe’ve talked a lot in the past about running local web servers for development purposes or to try out software such as Wordpress without having to pay for hosting, but how do you take it...Read More, with a simple search and replace on the database. While this works in most cases and has never failed me yet, it’s a little riskier if you’re moving directories (such as mydomain.com/blog to myotherdomain.com) or if you have plugins which use serialized data (where all of a plugins settings are stored in one encoded database entry rather than a single row for each setting).

So today, I’m going to try out 3 plugins which can semi-automate this entire process for you. I’ll be migrating data from an old domain of mine, to a new site, both running on a virtual private server.

Though, I’m fairly certain the Open Base dir restriction isn’t relevant due to the version of PHP I run on this server, so perhaps they need to update. Nevertheless, I will go ahead and create my first package. Packages are the contents of your database and files, all wrapped up in one. Click the create button in the top right, or if your package set is currently blank there should be a link in the center of the screen for you. My test site is fairly small, with only 30 posts and little else – this gave me a pre-zip size of 50mb.

After clicking create, it’ll go to work. You can view the log if you’re curious, but mine was completed within seconds. You’re then presented with two buttons for file downloads, and instructed to grab both the “installer” and the “package”.

There are some advanced options too under the settings panel; you can email when the package is complete, if it’s taking too long. You can exclude directories or certain file extensions; and pre-populate the installer fields (though this is not required). I kept all the defaults.

Upload both to your new site, via FTP. Duplicator aims to replicate the entire setup for you, from databases to core WordPress files, which is clever – I was expecting to have to set up a basic functional WordPress, but apparently not.

On with the testing then, I uploaded the package and installer.php file. Now the fun begins. Launch the installer.php – on the new domain now – from your browser, and you see something like this:

The only details you’ll need to add are the DB access details; while Duplicator can create the individual tables, you’ll still need a mysql user and database set up for it to use. Check the database connection, accept the disclaimer, and proceed with the install.

You’ll even be given the option of re-activating plugins, which is pretty nifty.

Finally, there’s a list of steps you need to click manually. These involve re-writing the permalinks file, deleting the installer, and finally testing the site.

I’m happy to report that everything was 100% working and fine; the site was exactly as it had been before, but with a new domain and title. Fantastic!

Total time to migrate: less than 10 minutes (though this will vary upon the size of the site in question).

Before using migrate, you will need to configure the plugin from the settings sub-menu so I proceeded to do that. this involves adding FTP access details for the new site. The only complicated bit here is the relative path; in my case this was:

httpdocs/wp-content/plugins/wordpress-move/backup

You also need to have WordPress and the wpmove plugin installed at the other end. This was quite a disappointment considering Duplicator could operate without that, and it added a good 30 minutes onto the process. Sigh.

With a fresh WordPress installed, and the WordPress Move plugin also added, I headed back to begin the transfer process from the old site. Type the ftp password, the new domain name, and hit start migration.

…Error. I try changing the port number, remember that I usually connect using secure FTP (typically port 22) rather than the unsecure regular FTP protocol. Even though both should work.

Again, connection error. At this point, I’m calling it quits on this particular plugin. Maybe your luck would be better, but honestly why would you even try with this when the Duplicator plugin works so well?

The process of backing up and restoring a site is much the same as migrating, so it’s no surprise that a premium and well respected backup plugin such as this has added “magic migrate” functionality to its already extensive feature list. The only setup needed here is to first create a restoration password from the settings pages.

Before migration can occur, an initial backup must be taken. Choose the “complete backup” type, and begin. Then head over to the restore/migrate area, and select automated restore/migration. Hover over the latest backup and an option to “migrate this backup” should appear.

You’ll need to setup a new target for the backup to be sent to. I added the FTP details for the new site and confirmed they were working, but unfortunately it ran into errors along the way when it was trying to access newdomain.com/httpdocs (this was the subdirectory for public HTML files that I had to set, but it shouldn’t be in the URL); I eventually figured out how to get this working by creating a new FTP user which defaulted to the HTTPDOCS directory.

At this point, the process is basically identical to Duplicator; you can choose the manual mode which will actually give you a similar “importbuddy.php” and backup file to download then upload to the new site over FTP, or if you managed to make the FTP work it can all be done from within the old WordPress install. During the process, you enter database information, and everything else is done for you. As a final step, the install files are deleted and some common problems and their solutions are presented.

Essentially then, the migration portion of Backup Buddy is almost identical to Duplicator, just with FTP upload step removed, if you can correctly configure the access details. Of course, Backup Buddy’s real power lies in the backups, but it’s difficult to recommend it purely as a migration tool, especially considering the premium price tag.

Total time to migrate: about 30 minutes, though this was particular to my FTP accounts setup.

Don’t Forget to 301 the Old Domain

It’s almost certain that you’ll want to redirect all traffic and search engine “love” to the new domain – use a 301 redirect for this. Simply replace the current .htaccess file with the following, replacing newdomain.com.

If you’re using webmaster tools to inform of the site re-location, you’ll need to add an exception for the Google confirmation file. Replace the googleXXXX.html in the following code with your particular verification URL.

Verdict: Duplicator Wins!

I had expected the premium tool to be the superior product in all aspects, but in this case I actually want to give the prize to Duplicator – and it’s 100% free. It lacks the fully automated aspect of BackupBuddy – assuming you get the settings right, that is – but anyone running self-hosted WordPress should be able to download and upload a few files to FTP, so I’m not sure that’s to such a great detriment to Duplicator. The fact that it presents clear advice and instructions at every step is also really appreciated; I was never in doubt as to do what to do next with Duplicator. Stay well away from WordPress Move at all costs though – it’s just far too fiddly.

Do you know of any better solutions? Let me know in the comments, and in the meantime be sure to check out our Best WordPress Plugins page, to which Duplicator will surely be added soon.

For those interested, I've been using this solution for hosting my own web site, Biblicomentarios.com . For years, I was struggling with the inconveniences of shared server (slowness, down times, suspicious IP, unable to run my own process, etc.) Then I've found this VPS server, with SSD, and at a very affordable price. The difference with shared server is that it is pretty faster, you're the owner of the server and you can set the rules of what to host and when, etc. Also, Google loves this kind of host more.

I couldn't believe that only 5 USD a month were enough to get this kind of solution, but it is. No strings attached, they even give you 10 USD to try the server with the coupon DROPLET10. You can take a try for free signing with the following URL ( https://m.do.co/c/08d35c8984bf ). When you're satisfied you can migrate your site to this server, according the rules given in this article. A convenience for me is that they don't ask for annual payments, if you like to stay with them you can pay monthly, just 5 USD a month. That is very comfortable for me.

You can ask your host for migration. I always ask the admins at Rosehosting to migrate my wordpress websites and they excel every time.
Never have I had so many stress-less migrations in my involvement in the hosting industry.

I have used many backup / cloning plugins, like updraftplus, backupwordpress, backwup and others. But, without doubt, the Duplicator is the best and more reliable compare to the rest.
The only downside is it lacks of scheduler, which is available on premium version. backwpup is also great tool, but don't contain of moving site feature (changing domain, urls, serialized data in database).

Hi, I need to know how the steps work to move my wordpress site from Fatcow to Dreamhost using the Duplicator. The domain is located with fatcow. Do I first use the duplicator to extract and download all files to my computer and 2. redirect the url to dreamhost. and 3 - use their one click to install another wordpress site. (I know you said I don't need to do this but someone on the dreamiest chat said to do it. Also, the duplicator has a list of easy migrations from certain hosts and mine is not on the list so we shall see how smooth this process works for me. Thanks for the help in advance. Laura Powell

Duplicator is a great choice if you are only moving a site or two but I did find it is rather picky as to the server requirements etc. Could not make the initial package on one server while it had issues with the new server in another instance. Translation "did not work and had to switch tools".

Backup Buddy does cost money but I found it to be very flexible and have yet to run into a server issue after about 45 WordPress moves so far.

I like UpDraft too. It's definitely a little more complicated but works fine.

I'd choose Duplicator if I was moving one or just a few sites. but if it was something I'd be doing a lot of, I would definitely opt for Backup Buddy.

Duplicator is super. For my money, no backup solution is worth its salt if you can't restore it, a lesson I learned the hard way a few times. I installed a local WAMPSERVER on my home computer and test every Duplicator package.

You said Duplicator is free, and it is. But there is a place to donate money to the developer, and I urge everyone who has the same kind of success with it to follow suit and donate money.

I recently used UpdraftPlus Migrator. The backup and restore tool is free. The Migrator is $30. It worked flawlessly to move my WordPress site from a shared hosting service to a VPS service. I even moved to a new domain. Works great. I really liked that I could send the backup files to my Dropbox account and restore from the same Dropbox account.

I can't compare it with Duplicator or WordPress Mover as I haven't used those before.

You should try cms2cms converter, it migrates content to WordPress and implements 301 redirect to the site automatically. The last option is free now and also you may try free demo to see how it works . Here you may find more detailed info on this tool http://www.cms2cms.com/supported-cms/wordpress