January 31, 2021

A comprehensive WordPress migration guide


You've built your client a fantastic new website, they've approved the design, and now they want to take it live. The only thing is, now you need to migrate the website to their hosting.

WordPress migrations can be a scary and time-consuming task, but it's a task that is expected when you work on your client's new website. This guide will help take you through a couple of different options you can easily migrate to any client's WordPress site.

Why use your clients hosting vs your own

Before we begin, I wanted to discuss why you should let your clients host their website in their own account vs. keeping it in yours. Yes, you can likely earn additional income to host their site but it comes at a huge disadvantage.

To start, you're now at the frontlines for any hosting relating issue with their website. Instead of the client contact the hosting provider, it's up to you. This takes time. Time that could have been used working on your business or a new website.

Next, you're responsible for maintaining site backups. Accidents and catastrophes happen. If, for some reason, the site goes down, and it either takes you a while to restore it or maybe you can't at all, it's 100% your responsibility. The client could leave negative reviews for your business or, worse, sue for damages.

The last reason I'll discuss but definitely not the last for this topic is you're responsible for the content on their website. If the client added a copyrighted image or content and the owner sends your hosting company a cease and desist, your server could be shut down along with any other websites hosted. One client could impact many this way.

Different ways to migrate a WordPress site

There are countless ways of migrating a WordPress site to your client's hosting account. Instead of giving general steps for various methods, I'm going to go deep with three different ways to migrate a site: Manually so you understand the full backend process, using GoDaddy Pro, and using the All In One Migration plugin.

Manual migration

I don't recommend manually migrating a website unless you absolutely have to. I typically have to do this for extensive sites, which is why I wanted to walk you through this process. It also helps when it comes to troubleshooting when something doesn't work.

Download wp-content folder

First things first, you'll need to download the files of the WordPress site. Luckily, you will only need to download the wp-contents folder. You do not need to download all the root files, wp-admin, and wp-includes folder.

wp-admin, wp-includes, and the root files are known as Core WordPress files. These are identical across installations, which is why you won't need to download these when migrating a site.

To download files from your server, you will need to download an FTP program such as FileZilla. Filezilla is an open-source FTP program that will let you download and upload files.

To connect to your hosting account, you will need the following:

  • FTP username
  • FTP password
  • FTP hostname (typically just the domain)
  • FTP port
  • FTP connection type (sFTP, FTP, etc)

If you don't know what these are, contact your host or check out their help articles. These are common settings, so they shouldn't be too difficult to locate.

Once you have the settings and Filezilla opened, enter the FTP details across the to and click connect.

filezilla details

Your local files are located on the left-hand side of FileZilla and the website files are located on the right. Find the wp-content folder on the right and drag it over to the left.

I recommend navigating to a folder on the left where you can easily locate these files before dragging the folder over.

filezilla folders

Once you let go, the files and folders will start to download. This process can take a while, depending on how many files you need to move over and how fast your internet speed is. There is a method to increase the download speed, though!

Increase simultaneous downloads

  1. Navigate to FileZilla settings
  2. Choose transfers on the left-hand menu.
  3. Increase the maximum simultaneous transfers. I recommend starting with 7. I've found setting it to a max setting causes issues with your hosting, thinking you're a malicious bot.

While files are downloading, you can start on the next section, exporting the database!

Export Database

The WordPress database houses all the goodies that make your site function along with the content within it. It's vital to migrating all the contents of a database to ensure the site functions after the migration.

To export your database, you'll need to access phpMyAdmin. The exact methods to get here will vary depending on your hosting provider, but once you're in the dashboard, the rest of the steps should be the same.

Select the database name on the left-hand menu. Likely, it will be a username you did not create.

Next, you'll want to click on export in the navigation.

You most likely won't need to modify any settings that appear. The export should SQL format. You will want to ensure you choose Save as file, otherwise, you'll be taken to a page with all the database text. Once you've verified this, click go.

That's it! You've exported the database from your hosting account.

Changing domains during migration?

If you are changing the domain during migration, there are extra steps needed to ensure the site functions after migration. I will typically set up a site I'm working on with dev.domain.com, so I need to change dev.domain.com to domain.com.

The process to do this is straightforward. Open the SQL file you downloaded from phpMyAdmin in a program such as Notepad ++ or Brackets.

Next, you will perform find and replace with that file. Find all instances of the development domain name and replace it with the live domain name. When you're finished, save the file.

Install WordPress

Now that all files are downloaded, and the database has been exported, head over to the client's hosting account. We're going to assume the client doesn't have a live site yet. If they do, I recommend moving the current files into an archive folder on the hosting account.

As mentioned earlier, WordPress core files are almost identical with every install. Your next step would be to install a fresh copy of WordPress on the hosting account. This will add all the core files needed, create a database, and connect the files to the database.

Upload Files

Connect to the new hosting account where you'll be migrating the files via FileZilla/FTP. On the remote side, rename the default wp-content to wp-content.bak. You can rename a file by right-clicking the folder and then choose rename.

Next, drag the wp-content folder from your local machine to the remote server. Uploading will likely take longer than it did to download. Luckily, you can multitask while this is working.

Import Database

To import the database, log in to phpMyAdmin in your hosting account. You will need to empty all fields before importing the SQL file.

Click on the database name on the left-hand menu to ensure you're working on the correct database.

Next, click select all table fields by either individually checking the boxes next to them or choose check all towards the bottom. Once they're all selected, choose Drop in the drop-down menu.

check all

On the confirmation screen, choose yes.

Now your database is empty! Time to import the file you downloaded previously. Click the Import tab at the top, select the database file, and hit Go.

That's it! Your files should be uploaded and the database imported. Check the client's website to see if all is well. You may need to reset your permalinks if you find yourself able to visit the home page, but all other pages resolved to a 404 error. Log into the WordPress dashboard, visit Settings > Permalinks, and click save. You shouldn't need to change any settings. This rebuilds your .htaccess file and fixes the issue.

GoDaddy Pro

GoDaddy Pro is a free resource for Website Designers that makes it easy to manage your clients, sites, and projects.

Within this resource is the ability to migrate WordPress sites across servers and domains easily. I'm going to make two assumptions when giving you the steps here. You've already added the production and development site to GoDaddy Pro. If you need help doing this, check out their help guide.

Clone a website

The clone feature inside of GoDaddy Pro is a premium feature. You either need to be hosting with GoDaddy to receive premium backups free or pay for the premium backups at $1.40 per month.

To start, navigate to the development website within GoDaddy Pro and then navigate to backups.


If it is your first time activating backups, you will need to wait for it to go through making the first backup on your website. If you already have a backup created, click clone website.

After you choose Clone Website, you'll be presented with 3 options. Let's cover each of these options.

Existing website in Pro Sites

You will use this option if you've built the client's website using a temporary development domain and now need to migrate it to the live site.

After selecting this option, choose which website already added in GoDaddy Pro that you'll be migrating to (the client's main domain). You can create a new admin if necessary and modify SEO settings.


All that is needed now is to click clone. GoDaddy Pro does the rest and will show you a progress bar as it goes through the motions.

Same domain on a new server

Pro Sites allows you to easily migrate a website from one server to another using the same domain name. This is designed to assist you when switching the website from one host to another.

First, enter the temporary URL or the IP address of the destination server.

same domain

Then, you'll be able to add in the FTP and database details needed to migrate the website over. Once all the information is entered, you can test credentials to see if there are any issues with the connection.

connection details

When you're finished, click clone at the bottom to start the migration to the new server.

New website

If the website you're migrating to is not set up within your GoDaddy Pro account, that's okay too! Choose new website and then enter in the site's domain.

Then, you'll be able to add in the FTP and database details needed to migrate the website over. Once all the information is entered, you can test credentials to see if there are any issues with the connection.

Click Clone when finished and then sit back while the migration is done for you.

GoDaddy Pro makes it easy to manage your clients, sites, and projects. This is just one of many features that helps you save time.

All-in-One WP Migration

If I don't use GoDaddy Pro, I end up using the plugin All-in-One WP Migration. This is a simple WordPress plugin you will first install on the source website. After installing the plugin, mouse over All-in-One WP Migration on the left-hand menu of your WordPress dashboard and then click export.

all in one

If you are changing the domain from a development domain to a live domain, click the add button and then enter the dev and live domain name.

Click the Export To button and choose file.


It will take some time to compile everything for the download. When prompted, click download. The file will end in .wpress.

Once you have your file, log into the intended live site and install the All-in-One WP Migration plugin again.

This time, instead of choosing export, select import. Select the file and it will start to import.

import all in one migration

Keep in mind, this will be dictated by your hosting account's upload limit. Most hosting providers set a default limit but you can create a new file in your hosting account to alter these settings.

Adjust PHP upload limit

In your hosting account, create a file named php.ini in the web root. If you're using cPanel, this will be public_html.

Edit the file and add the following, adjusting the limits based on your needs:

file_uploads = On
post_max_size = 250M
upload_max_filesize = 250M

It can take some time for the PHP settings to take effect before you can upload more than the default limit.

But that should be it! If it's not a large website, this is usually my go to solution for migrating websites over.


Things can go wrong with a WordPress migration but typically most issues can be solved with a simple search and replace. At times, the domain change misses certain items within the database so the old domain is referenced when it should be the new domain name.

Download Better Search And Replace

search replace

Once installed, head over to Tools > Better Search Replace. Enter the old and new domain name, then select all tables. You can hit CTRL+A/CMD+A to select all tables.

Then uncheck the box for a dry run and click Run Search/Replace.

This will scour through your database and update all references of the old domain. This usually fixes images not showing, links going to old URLs, content not appearing, etc.


Migrating a website doesn't need to be a scary task. Once you find the method that works for you, it becomes rinse and repeat. The more you do it, the more efficient you become! If you have any questions, feel free to reach out!

Leave a Reply

Your email address will not be published. Required fields are marked *

We help you build your skills, create long lasting clients, and connect with others just like you.
Chandler, Arizona
©Copyright Creative Free | All Rights Reserved
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram