Manually Migrate Your WordPress Site to SiteGround


Written by

Dave Warfel

Reading Time

10 minutes

If you buy something from one of our links, we may earn a commission.

I’ve hosted most of my WordPress sites with WP Engine for the past 4 years, but I recently decided to switch hosts. You can read more about my decision to switch to SiteGround here.

In this article, I’m going to walk you through the steps to manually migrate your WordPress site to SiteGround. This should also work if you’re moving your site to any host using cPanel. The instructions are very similar for just about any manual WordPress migration; you’ll just see different UIs depending on your new host.

Note: SiteGround offers one free migration with each new account. So if you only have one site, definitely reach out to them first. Even if you have many sites, but one of them is of high importance, you might want to let them migrate the important one for you.

I need to mention there are several plugins that make it pretty easy to migrate a WordPress site. However, WP Engine does not allow those plugins on their platform (for security & performance reasons). Therefore, when migrating multiple sites from WP Engine to SiteGround, I had to do it the manual way.

Before you migrate manually, you might want to try SiteGround’s new WordPress migration plugin.

[adrotate group=”11″]

Migrating your WordPress site can either be incredibly easy, or a huge pain in the butt. Some hosts, like Flywheel, offer unlimited free site migrations. Someone personally handles the transfer of your site while you sit back and relax.

Other hosts use automated migration plugins to move your site. With the occasional exception, those work pretty well, too.

But sometimes you have to manually migrate your WordPress site, and that’s what I’m going to show you here.

I spent HOURS trying this several different ways before finally arriving at the best method. I hope this can save you some time.

WordPress Manual Migration to SiteGround

The basic steps are as follows, in this order:

  1. Create an addon domain (only if you are managing multiple sites in one account)
  2. Install WordPress
  3. Download your site files & database
  4. Upload your themes, plugins & uploads via FTP
  5. Import your database
  6. Test your site
  7. Update your DNS
  8. Test your live site
  9. Install SSL via Let’s Encrypt (optional, but highly recommended)

TIP: You can migrate your theme, plugins & uploads in advance, since they will take some time to upload via FTP. You can test your site with an older copy of the database. Then, when you’re ready to make the switch, put your site in maintenance mode and ask your client not to post any new content for a few hours. Then just re-import the most up-to-date database file.

[adrotate group=”11″]

01 Create an Addon Domain

Skip this step if you are only hosting one website. But if you are managing multiple WordPress sites, you’ll need to create an addon domain.

  • Login to your SiteGround account
  • Click on the My Accounts tab
  • Click the Go to cPanel button

SiteGround go to cPanel button

Look under the “Domains” section and click Addon Domains.

cPanel Addon Domains button

Now you’ll enter the information for your new domain.

Create an Addon Domain in cPanel

  • New Domain Name:
  • Subdomain or FTP Username: yourdomain
  • Document Root: public_html/
  • Password: create a unique, strong password, or use the “Password Generator” button to create one for you
  • Click the Add Domain button

You have successfully set up a new domain to use with your SiteGround hosting account.

02 Install WordPress

Now it’s time to install WordPress. SiteGround uses a program called Softaculous to make installing WordPress really easy.

Navigate back to your cPanel home page. Look for the cPanel Home button in the top-right corner.

Under the “Autoinstallers” section, click on WordPress.

cPanel WordPress install button

Look for an Install button on the Softaculous page, and click on it.

cPanel Softaculous Install WordPress Button

Let’s walk through the installation options:

  • Choose Protocol: You probably don’t have an SSL setup yet, so I recommend http://. It’s fine if you add an SSL later.
  • Choose Domain: Choose your domain from the dropdown list
  • In Directory: Leave blank

Site Settings

Site Name and Site Description will be overridden when you import the database file from your old host, so you can leave them as is. If you are migrating a Multisite install, check the “Enable Multisite” option.

Admin Account

This will also be overridden with whatever users you had setup on your previous host.

Language, Plugins & Theme

  • Choose your language
  • I recommend leaving both plugin options unchecked
  • I recommend leaving theme set to “None”

Advanced Options

Open up the advanced options.

  • Database Name: Name it something that makes sense for your site
  • Table Prefix: If your previous host used a specific table prefix, I would use the same exact one. It’ll make the migration easier. Otherwise, I recommend using the default wp_.
  • Backup Location: Leave set to Default

Click the Install button.

Now that you have a default WordPress site set up, let’s move on to migrating your files & database.

03 Download Your Website Files & Database

Before you can upload the files to your new SiteGround account, you need to export or download them from your old host. The exact steps will vary depending on your host, but will typically involve one of the following methods:

  • downloading a backup .zip file from your host’s control panel
  • using a WordPress backup plugin to download a backup of your site
  • using an FTP program to download

Regardless of how you acquire these files, make sure you have the following items:

  • /wp-content/themes/ folder
  • /wp-content/plugins/ folder
  • /wp-content/uploads/ folder
  • a .sql file of your entire database

You do not need to download any of the WordPress core files. We already installed them during the previous step.

If you’re using WP Engine…

  • Login to
  • Click on the appropriate install
  • Click on Backup points
  • Select the radio button next to the latest backup
  • Click the Download ZIP button
  • Choose Partial backup
  • Check everything except for “Everything else”
  • Confirm or change your email
  • Click Start production backup ZIP

Your .sql file will be located in the /wp-content/ folder.

04 Upload Your Themes, Plugins & Uploads Folders

Once you have obtained the backup files, it’s time to upload them to SiteGround. This is the most time-consuming step, and can take several hours if you have a large site, or particularly, a lot of images. For most small business websites with 10-20 pages, it shouldn’t take more than an hour (with a reliable internet connection).

FTP Program

You will need an FTP program to upload the files. I recommend FileZilla, but any FTP program will do.

Connect to SiteGround’s Server via FTP

You should always use SFTP when transferring files to any server, but SiteGround’s SFTP setup requires a separate tutorial. For now, just make sure you’re on a protected network (not public WiFi).

Use the FTP username & password you created when setting up your addon domain. You can find your hostname on cPanel’s home page. Look in the left column for Account Information.

cPanel, where to find server hostname

Upload Themes

You should only have one or two themes installed. If you have a bunch, you only need to upload your active theme (and possibly the parent theme, if you’re using a child theme).

Upload Plugins

If you have more than 10 plugins installed, I recommend uploading them in chunks of 5 or so. This will prevent timeout errors, and ensure everything gets uploaded properly.

If you are using mu-plugins, be sure to upload those as well. If you don’t know what they are, you can ignore them. You’ll know if you are using them.

Uploads Folder

This is where all your images (and other media) is stored. If you’re migrating an image-heavy site, this could take a while. I definitely recommend breaking these up into chunks.

If you separate your uploads into year- and month-based folders, I recommend trying one year at a time.

Be sure that everything uploads properly. If not, you could have broken or missing images on your new SiteGround site.

05 Import Your Database

Now you’ll need the .sql file that contains your database. If you’re migrating from WP Engine, it will be called mysql.sql and located in the /wp-content/ folder of your backup.

  • Navigate to your cPanel home page
  • Under the “Databases” section, click phpMyAdmin

cPanel phpMyAdmin button

On the left-hand side, click on the database name that corresponds with your site. You selected this during the WordPress installation step.

Choosing the wrong database can completely override another website, so be sure you choose the correct one.

  • Now click the Import tab at the top
  • And then the Choose File button

phpMyAdmin import .sql file into database

Select the .sql file you downloaded from your old host.

Confirm that you are importing this file into the correct database… and then click the Go button.

phpMyAdmin import file successful message

You should see a message that says the database was imported successfully. Before we make it live, we’re going to test that everything imported correctly and our site looks good.

06 Test Your Site

Unfortunately, SiteGround does not offer a built-in temporary URL for each site. If you only run one site, you can access it via IP address. But for multiple sites, SiteGround recommends you use a third-party service called homepage screenshot

Enter the following information, and then click Get My Testing URL.

  • Server address: The IP address of your server. This is located under “Account Information” on your cPanel home page.
  • Website name: The URL of your website, without the http://. (ex:

Navigate to the URL they provide you and test out your site. I also recommend you add /wp-admin/ to the end of the URL, and test the admin area. You can pull up your existing/old site in a separate window, and check for all the same settings and content.

Once you have confirmed everything looks good, it’s time to officially make your site live!

[adrotate group=”11″]

07 Update Your DNS

In order to tell the internet that you are now hosting your website on SiteGround’s servers, you need to update your DNS.

Your DNS records are usually managed by the same company who you registered your domain name with. One common exception to this is if you’re using Cloudflare.

The steps will differ based on where you manage your DNS, but the basic idea is the same. You will be updating your website’s A Record so that it points to your new SiteGround server’s IP address.

Cloudflare A record example

Once you login to your DNS manager, look for an existing A Record with a name that says one of these two things:

  • @

The value should be an IP address (ex:

cPanel IP addressYou need to change that value to your SiteGround’s server IP address. You can find this on your cPanel homepage, on the left side, under “Account Information.”

This is essentially telling to load the files from SiteGround’s servers, and no longer from your old hosting servers.

DNS can take several hours to update, so you might not be able to confirm the change right away. If after 12 hours it’s still pointing to your old server, reach out to SiteGround’s support team.

Once the DNS change takes effect, you have successfully migrated your WordPress site to SiteGround. Give yourself a pat on the back :-)

08 Test Your Live Site

However, you aren’t quite finished. You should definitely test your new site on SiteGround’s hosting platform to make sure everything is working as expected. Small differences could exist between your old and new host, and although it’s rare, they could be affecting your site.

Just keep a close eye on it over the first few days, as you’re making updates and navigating the site yourself.

09 Install SSL via Let’s Encrypt optional

The last step is optional, but I highly recommend it. There are many benefits to using an SSL certificate, and SiteGround offers a free SSL via Let’s Encrypt. You should definitely set this up.

It takes less than 5 minutes and only requires a couple of clicks.

I dedicated a separate article to this step. Please check out installing an SSL on SiteGround.

[adrotate group=”11″]

I hope this helped you successfully migrate your WordPress site to SiteGround. If you run into any problems, please let me know in the comments and I’ll try to help out as best I can.

Dave Warfel

LinkedIn  •  X (Twitter)Dave has been working with WordPress since 2011. He's built 100s of client sites and almost a dozen of his own. He's tested almost every plugin you can think of, hosted with at least 10 different companies, and gone down every SEO rabbit hole you can imagine. When's he's not tinkering with new software, you'll find him in the mountains of Colorado, trail running, summiting peaks, and rippin' downhills on his mountain bike. 🏔️🏃🚴🤸

6 responses to “Manually Migrate Your WordPress Site to SiteGround”

  1. Komal Avatar

    I uploaded all the files as well as database to the wp-content.
    Followed each and every step mentioned for installation but still couldn’t access the wp-admin as it says , the server couldn’t be reached.
    Kindly help me

    1. Dave Warfel Avatar

      Hi Komal — Sorry you’re still having trouble migrating your site.

      SiteGround’s support team will be able to help you better than I can, as they have full access to your account. Just open a chat or support ticket with them and they should be able to figure out what’s going on.

  2. Pam Avatar

    I’m transferring from a Pantheon environment to SiteGround and found this method to be the only one that works for me. After importing the database, I had to correct the site url and home url in wp_options and also corrected the guid.

    1. Dave Warfel Avatar

      Glad to hear it worked for you, Pam.

      Did you change your site’s domain name? I’m just curious why you had to update the site url and home url in the wp_options table.

  3. Mike Cole Avatar
    Mike Cole

    Hi, I have followed all the steps to my website but DNS is still not updating. How long will it take to get the DNS updated?

    1. Dave Warfel Avatar

      Hi Mike — I’m actually seeing what I think could be a problem with your A record. There are two entries for the A record for It looks like one might be a typo. Double-check the IP address of your SiteGround server, and then delete the A record that DOES NOT match up. So you’ll just be left with the correct one.

      See the two conflicting A records here.

Leave a Comment