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.
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.
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.
WordPress Manual Migration to SiteGround
The basic steps are as follows, in this order:
- Create an addon domain (only if you are managing multiple sites in one account)
- Install WordPress
- Download your site files & database
- Upload your themes, plugins & uploads via FTP
- Import your database
- Test your site
- Update your DNS
- Test your live site
- 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.
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
Look under the “Domains” section and click Addon Domains.
Now you’ll enter the information for your new domain.
- New Domain Name: yourdomain.com
- Subdomain or FTP Username: yourdomain
- Document Root: public_html/yourdomain.com
- 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.
Look for an Install button on the Softaculous page, and click on it.
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 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.
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”
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
.zipfile 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:
.sqlfile of your entire database
If you’re using WP Engine…
- Login to my.wpengine.com
- 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
.sql file will be located in the
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).
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
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.
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).
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.
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.
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
On the left-hand side, click on the database name that corresponds with your site. You selected this during the WordPress installation step.
- Now click the Import tab at the top
- And then the Choose File button
.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.
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 hosts.cx.
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: escapecreative.com)
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!
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.
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: 220.127.116.11).
This is essentially telling yourdomain.com to load the files from SiteGround’s servers, and no longer from your old hosting servers.
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.
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.