How To Perform A WordPress Migration (Without Breaking Anything)

by Jos Velasco
How To Perform A WordPress Migration (Without Breaking Anything) thumbnail

So you’re planning a WordPress migration.

Maybe your hosting company has sub-par service, maybe you found a cheaper hosting option, maybe you’re changing your domain, or maybe you just want to migrate your site… for fun?

Whatever your reasons for migrating your site, we have you covered.

WordPress migration can be a little daunting. You might be worried about losing business opportunities because of site downtime, losing website data, or just losing your mind trying to figure out how to press all the right buttons without breaking anything.

Lucky for you, it’s not actually all that hard if you have the right instructions

In this article, we’re going to:

  • List and detail the three options for WordPress migration
  • Provide a checklist to help you prepare for migration
  • Identify common challenges you may encounter
  • Provide tips on how to avoid challenges
  • Demonstrate (step-by-step) how to migrate your WordPress site to a new host from start to finish

So hold on to your HTML because we’re goin’ in.

But first…

What Is WordPress Migration?

WordPress migration is moving a WordPress installation (a website and all its contents) from one hosting service to another while maintaining the original website function and design. People migrate their WordPress websites all the time, often citing reasons such as better hosting performance, reduced costs, or moving to a new domain.

Or there could be technical problems that require a WordPress migration. For instance, if your current host cannot handle high traffic or lacks crucial features like daily backups.

DreamHost Glossary

Hosting Provider

A hosting provider is a business that charges a fee in exchange for “renting” server space and resources. You can choose any hosting provider that you want to launch a new website.

Read More

In these situations, implementing an organized plan for WordPress migration becomes necessary, just like when packing up for a move. You wouldn’t want items randomly thrown into boxes, either. A structured approach ensures minimal data loss and keeps the site functioning smoothly during the transition.

The entire process typically takes a few hours, has little or no cost, and can typically be accomplished by all skill levels, even beginner web admins with little to no development experience.

Get Content Delivered Straight to Your Inbox

Subscribe to our blog and receive great content just like this delivered straight to your inbox.

3 Ways To Migrate Your WordPress Website

Having learned the definition and importance of WordPress migration, it is now essential to examine the three main ways this process can be carried out: manually transferring your site through FTP, utilizing a migration plugin, or delegating the task to your hosting provider. Each approach has its specific steps and prerequisites.

1. Manual Migration

The first method of migrating your WordPress site is through manual migration. With manual migration, you will be doing everything yourself.

You will download all your existing website files and database(s) from your current hosting provider and transfer them to your new host. This method requires knowledge of using File Transfer Protocol (FTP), accessing databases, and making changes to files on the site’s back end.

DreamHost Glossary


File Transfer Protocol (FTP) is a connection that you can use to transfer files over Transmission Control Protocol (TCP)/Internet Protocol (IP). You can use FTP to connect to a server you own and interact with its files.

Read More

Sound scary? It’s not.

If you can format a Google Doc, you can do a manual WordPress migration, and we’ll show you the step-by-step procedure in the tutorial below.

Pros for manual migration:

  • It’s free.
  • It’s not that hard.
  • You can do it on your schedule.
  • You will feel like a genius hacker when you pull it off.

Cons for manual migration:

  • You will need to download an FTP client.
  • It can be time-consuming, especially on a large website with several files.
  • It’s the most difficult of your three options.

2. WordPress Plugin Migration

There is a WordPress plugin for virtually everything; website migration is no exception. WordPress migration plugins (such as DreamHost Automated Migration, Duplicator, and All-in-One WP Migration) offer convenient solutions specifically designed for individuals who may not have technical skills in website migration.

DreamHost Glossary


WordPress plugins are add-ons that enable you to extend the Content Management System’s (CMS) functionality. You can use plugins for almost everything, from adding e-commerce features to WordPress to implementing page builders or using Search Engine Optimization (SEO) tools.

Read More

These automated migration tools have impressive features like compatibility with larger sites and multisite networks, mobile accessibility options, integration with cloud storage platforms, and user-friendly drag-and-drop functionality.

Using a WordPress migration plugin eliminates the need to manually download and migrate all your site files and databases yourself.

Pros for plugin migration:

  • It’s (typically) free.
  • If you’re familiar with WordPress plugins, the process is very easy.
  • Allows you to work mostly inside WordPress (as opposed to an FTP client).

Cons for plugin migration:

  • Possibility of encountering issues with complex websites.
  • Many plugins will only migrate to the main directory (not a subdirectory like

3. Website Migration Services

The last option for migrating your WordPress website is to use the migration services provided by a hosting company or developer. Reputable web hosts often offer free migration assistance through their control panels specifically for transferring WordPress files. Or, they’ll charge a small fee to migrate your site to a host of your choosing.

This is a white-glove service; once you sign up for hosting on their servers (or pay their fee if you want to use a different host), they’ll take care of the entire process and ensure everything runs smoothly on your site’s new platform. This option can be particularly valuable if you have complex or multisite migrations.

Pros for migration services:

  • 100% done for you.
  • Expert-level service.

Cons for migration services:

  • You need to use their hosting (or pay a small fee).
  • Lack of satisfaction of doing the job yourself.

So this is the lay of the land. When you’re ready to migrate your site, you’ll choose whichever of the three options is best for you.

But before you do, here’s a quick gut check to make sure you have everything you need for a successful migration.

Before Your Website Migration: Checklist

To ensure your migration goes as smoothly as possible, it helps to know a few things you can do outside of the actual migration that will reduce potential hiccups.

Make sure to check everything off this list before you begin:

  1. Evaluate your new web host carefully to verify it meets all requirements for server performance, support quality, pricing options, and scalability possibilities regarding your specific site needs.
  2. Communicate pertinent details about the migration process (such as potential downtime or additional features/functionality due to platform switch) to your website users. This helps manage expectations.
  3. Update WordPress as well as theme files and plugins before the migration takes place, ensuring they are on their latest versions so potential compatibility issues can be minimized afterward.
  4. Delete all unnecessary content from within WordPress (unused themes, plugins, etc.) to streamline the migration.
  5. Perform a thorough backup of the entire site so there is an available restoration point in case anything goes wrong during or after migration.
  6. Pick a slow day for businesses and high-traffic sites to execute your migration, possibly an evening on the weekend.
  7. Ensure you have login access to WordPress, your existing hosting service, your new hosting service, your domain registrar, and your FTP client (for manual migrations).

Got it? Good; let’s migrate!

How To Migrate Your WordPress Website Manually

If you opt for the manual route, here’s a foolproof plan for migrating your WordPress site from zero to hero.

Step 1: Purchase A Hosting Plan

The first step is deciding where to park your site. While it may seem obvious, it’s important to take stock of your needs (and perhaps why you’re moving hosts in the first palace) so that you can make an informed decision regarding pricing and performance.

At the most basic level, you have three types of hosting:

  1. Shared hosting
  2. Virtual Private Server (VPS) hosting
  3. Dedicated hosting

Read this web hosting guide if you’re not sure which is right for you.

Step 2: Download Your WordPress Site Files

Next, go out and get an FTP client; FileZilla and Cyberduck are popular, free options. Once you have an FTP client that you like, follow these steps:

Connect the FTP client to your current web host’s server by logging in with your username/password at the top of the client. You can usually find them in the cPanel of your web host provider. Click Quickconnect.

zoom in on top of cpanel showing the host domain, username, password, and Quickconnect button

Proceed to your WordPress root folder. This contains all of your website files. It’s typically named “public_html” or “www or sometimes “/.” Although it can sometimes be the name of your website. Right-click the folder and choose Download.

cpanel showing the dropdown with download as the first option

Depending on the size of your site, this process can take anywhere from a few minutes to a few hours.

Step 3: Download Your WordPress Database

Next, you need to export your website’s database. The database contains all the info about your users, site content, and other back-end info your site needs to function properly.

  1. If you’re using CPanel, navigate to the Databases section and click the phpMyAdmin icon.
  2. Select your database from the list.
  3. Find the Export tab.
  4. Choose the Quick option under Export Method.

Once the download is complete, you’ll have a copy of your website’s database as an .SQL file, which is exactly what you want.

Nerd Note: cPanel even has a handy guide on downloading your database

Step 4: Upload Your Database To New Host

If your new web host also uses cPanel, the instructions for uploading your database are as follows:

  1. Navigate to the Databases section in cPanel and click on the phpMyAdmin icon.
  2. In phpMyAdmin, you’ll see a list of databases on the left sidebar. Click on the database to which you want to upload data.
  3. Click on the Import tab at the top of the phpMyAdmin page.
  4. Click on the Choose File button and select the SQL file of your database on your local machine.
  5. After selecting the file, click Go. This will start the database import process. The time it takes to import the database depends on its size. Wait to close the browser or navigate away from the page until the process is complete.
  6. Once the import is finished, phpMyAdmin will display a success message. You can also check the tables in your database to ensure the data has been imported correctly.
  7. If your website’s configuration files (e.g., wp-config.php for WordPress) include database connection details, ensure they are updated with the correct credentials.

Nerd Note: Not all web hosts use cPanel. At DreamHost, we use a custom-built panel to manage your websites, databases, email, etc. However, the overall function is very similar to cPanel, and it’s even more user-friendly. This tutorial explains how to use it. 

Now, let’s add your website files.

Step 5: Upload Your Website Files To New Host

You should have a copy of your website files from Step 2 saved somewhere locally on your computer. Once you find the files, here’s how to upload them to your new hosting service:

Launch your FTP client and enter the FTP credentials (hostname, username, password, and port) provided by your new hosting provider. Click on your FTP client’s Connect or Quickconnect button, just like you did in Step 2.

On the left side of the FTP client, navigate to the folder on your local computer where your website files are stored.

cpane showing the location of the WordPress site files folder under Local site

On the right side of the FTP client, navigate to the root directory or the public_html directory (this name may vary depending on your hosting provider) on the remote server.

cpanel showing the / folder under remote site

Select the files and folders from your local computer to upload to the new host. You can usually drag and drop them to the remote server’s directory on the right side of the FTP client.

Most FTP clients will display the progress of file transfers. Ensure that all files are successfully uploaded without errors.

If your website relies on configuration files (e.g., config.php for certain content management systems), update them with the new server’s details.

So close!

Just one more step to launching your site to the public on your new hosting service.

Step 6: Update Your Domain Name Server (DNS) Records

Last, you need to update the domain name records via your domain registrar (DreamHost, Hover, etc.) The process is generally similar no matter which service you use.

DreamHost Glossary


The Domain Name System (DNS) protocol keeps records of which domain names correspond to specific IP addresses. DNS enables you to browse the web by typing in regular URLs instead of IP addresses.

Read More

Typically, updating nameservers involves inputting their URLs into your domain registrar’s settings. Some registrars may also require a corresponding IP address to each URL.

For example, if different providers are used for hosting and email service, it is possible to direct A records toward the new host while keeping other DNS settings and records (such as MX records responsible for handling emails) unchanged to avoid disrupting any essential functions.


How To Migrate Your WordPress Website With A Plugin

If you’re reading this section, we assume that a WordPress plugin has made your life easier at some point, right?

That will be the case with website migration, as well. No code, no FTP clients, no hassle.

Let’s cover two different plugin options.

DreamHost Automated Migration Plugin

Hey — what do you know!?! It’s our very own plugin

Some web hosts have developed custom plugins to make migration super easy, and DreamHost is one of those. Suppose you’re planning to use DreamHost as your web host. In that case, the DreamHost Automated Migration Plugin will make this entire migration process a total breeze.

There are only a few additional steps to migrate your site completely with our plugin, and we’ve created a crystal-clear tutorial here.


If you’re not using DreamHost, Duplicator is a host-agnostic WordPress plugin that can help you migrate your site. It has 1 million+ active installations and over 4,000 five-star reviews in the WordPress plugin directory.

Note that there is a free version with basic features that will likely work for simple websites and a paid premium version with advanced features you may or may not need.  

Here’s how it works:

Step 1: Install the Duplicator Plugin

Go to your WordPress dashboard, click Plugins from the sidebar menu, and then Add New.

wordpress lefthand menu showing the location of plugins and add new plugin

Search for Duplicator – WordPress Migration Plugin and install it. Note that there is a paid version with additional functionality called Duplicator Pro. Click Install Now, and after it’s done installing, click Activate Now.

wordpress plugins menu with duplicator typed into the search bar

Look for the new Duplicator option in your dashboard.

wordpress menu sidebar showing duplicator is now an option in the menu

Step 2: Build Your Package

Click on Duplicator and then Packages.

duplicator drop-down on the sidebar showing the Packages option right under duplicator

Choose Create New in the top right corner.

duplicator screen showing packages > all and No packages are found, click create new or archive site

Name your package and click Next.

duplicator menu under packages and new

Resolve any issues Duplicator highlights. Click the Build button once the scan is successful.

duplicator menu showing scan complete with setup and archive

Step 3: Download Your Package

After the backup is built, select Download Both Files. Download both the backup file and installer.php to your device.

build status download package files with buttons installer, archive, and download both files

Step 4: Create A Database On New Server

Step 5: Upload To New Host

Step 6: Database Creation On Hosting Server

  • Log into your hosting account and go to cPanel.
  • Under Databases, select MySQL Databases.
  • Create a new database. Remember the name.
  • Add a new user and remember the credentials.
  • Add the user to the database and grant full privileges.

Step 7: Run Deployment

  • Go back to the Duplicator wizard and click Run Deployment.
  • Check old and new URLs on the next screen.
  • Click Run Update.
  • Follow any testing suggestions on the final page.

And that’s how to migrate a website with Duplicator. Would you rather see a video tutorial from the Duplicator team on YouTube? Why didn’t you say so!

How To Migrate Your WordPress Website With A Migration Service

This will be a very short section because if you choose this process for migration, all you have to do is ask for the service and swipe your credit card, and they’ll do all the heavy lifting.

Read more about how to migrate your site with DreamHost.

Post-Migration Checklist

Now that you have your site at your new host let’s take a few moments to polish it up with post-migration best practices.

One important step is setting up redirects from the old URLs to the new ones either through redirect plugins or manually editing the .htaccess file.

DreamHost Glossary


’.htaccess’ is a configuration file used by the Apache web server software. The .htaccess file contains directives (instructions) that tell Apache how to behave for a particular website or directory.

Read More

Next, crack open Google Search Console and Analytics to detect any traffic inconsistencies or issues that may arise. We recommend informing Google if there is a change in the domain via Search Console by requesting indexing so that your website will appear in search engines.

On the non-technical side, directly after a successful migration is a great time to communicate with your users and site visitors about the switch. You can do this in various ways, like emails, front-page banners, website pop-ups, blog posts, and social media announcements.

Finally, once you have confirmed that your migration was successful, deleting all original files from your old server, including databases and content, is crucial. This helps maintain optimal loading speeds for better SEO rankings and overall user satisfaction.

Common Migration Hurdles And How To Avoid Them

There are two immutable truths in the world of website development:

  1. Anything is possible.
  2. Sometimes, things break.

And as frustrating as they can be, technical issues with website migration are somewhat predictable and generally easy to solve. Here is a short list of the most common challenges and how to troubleshoot and solve them.

Data Loss And Corruption

  • How to prepare: Always fully back up your WordPress site, including the database and files, before starting the migration.
  • How to solve: If data loss or corruption occurs, restore the database backup and reattempt the migration. Use reliable backup plugins or tools for this purpose.

Permalinks Issues

  • How to prepare: Take note of the existing permalink structure on the old site.
  • How to solve: After migration, update the permalink settings in the WordPress dashboard. If issues persist, manually check for .htaccess file permissions or update the rewrite rules.

Media And Image Path Problems

  • How to prepare: Note the location of media files in the old site.
  • How to solve: Update the URLs of media files in the database after migration. Use a search and replace tool or a plugin to update paths in the database. Ensure file permissions are set correctly.

Incompatible Plugins Or Themes

  • How to prepare: Check for plugin and theme compatibility with the WordPress version you’re migrating to.
  • How to solve: Deactivate plugins and themes before migration and reactivate them one by one on the new site, checking for compatibility issues. Update or replace incompatible plugins or themes.

Domain Name And URL Changes

  • How to prepare: Note the existing domain name and URL structure.
  • How to solve: After migration, update the site and home URL in the WordPress settings. If you’re changing the domain, update the database with the new domain using a search and replace tool.

Database Connection Issues

  • How to prepare: Ensure you have the correct database credentials.
  • How to solve: Update the wp-config.php file with the new database details. Check for typos or errors in the configuration file.


  • How to prepare: If your old site used SSL, ensure your new server and domain are configured for SSL.
  • How to solve: Update the domain URL to use “https://” in the WordPress settings. Update any hard-coded step guide links in themes or content to use “https://”. Ensure your SSL certificate is installed and configured correctly on the new server.

Performance And Caching Problems

  • How to prepare: Disable caching plugins before migration.
  • How to solve: After migration, reconfigure caching plugins or clear the cache. Check if any performance-related settings need adjustment on the new server.

Custom Functionality And Technical Issues

  • How to prepare: Document any custom code or functionality on the old site.
  • How to solve: Test custom code on a staging environment before migration. Debug and update code as needed for compatibility with the new WordPress version.

DNS Propagation Delays

  • How to prepare: Understand that DNS record changes may take time to propagate.
  • How to solve: Monitor DNS propagation and be patient. You can use online tools to check the status of DNS propagation.

Hopefully, this list will help you catch any migration problems before they arise. Still, if you don’t, you should be able to use it to solve your issues.

Migrate Your WordPress Site To DreamHost

We hope you enjoyed this tutorial on migrating your WordPress site, but more importantly, we hope you do something with it. Our goal at DreamHost is to empower web admins of all levels to have fast, secure websites that are always up and running.

If you’re ready to migrate your site to DreamHost, simply choose a plan, follow our guide on our Automated Migration Plugin, or use our website migration service. Migrate your site today!

Ad background image

We Make WordPress Easier for You

Leave migrating your site, installing WordPress, managing security and updates, and optimizing server performance to us. Now you can focus on what matters most: growing your website.

Check Out Plans

Jos Velasco is a WordPress Professional Consultant at DreamHost. His responsibilities include helping with advanced WordPress cases, creating training material, and identifying trends impacting the WordPress community. In his free time, he enjoys climbing mountains, eating healthy, and watching drama movies. Follow Jos on LinkedIn: