I’m not writing this article because I dislike SiteGround. I’ve used them for WordPress hosting and I never had any issues with their service. The only complaint I’ve ever had is that I found their pricing to be misleading, they have an introductory price of $48/year. This price more than doubles the next your to $120. I think their wording is a bit deceptive and most of their customers can not easily move away. But I recently had a client who want to migrate from SiteGround to a self-hosted cloud server. I decided to document the steps of the migration.
How to Migrate from SiteGround
To migrate from SiteGround or any hoster, especially if you are moving your domain name, takes some time. ICANN has some very well defined policies on DNS transfers. On important rule is that you have to wait 60 days after registering or transferring a domain. Review ICANN’s FAQ for more details. So be sure to start early and give yourself time. I’m going to break up the steps into chunks. And like I mentioned these steps really apply to any hosting provider.
Prepare for Your Migration
Step 1. Before you can migrate your domain, you have to unlock your domain inside of the SiteGround admin counsel. Specifically turn off Privacy and Domain Locking. If possible do this 30 days prior to your migration to give yourself enough time.
Step 2. You also need to figure out where you will be hosting the site and who will be your registrar. In most cases Siteground has been functioning as your hosting provider and registrar. If you are going to self-host on a cloud server, you need a registrar that will control the domain. I recommend using Namecheap. I’ve been using them for several years, and not only do they have great prices, but I’ve been very happy with their support as well.
Transfer Domain Ownership
This step can actually be the most difficult part of the process to migrate from SiteGround. It’s not technically difficult, but there are several steps and you have to follow instructions closely. Also plan for it to take at least 7 days. The last one I did took almost exactly 7 days from start to finish. Make sure you give yourself enough time. Again this is where dealing with a good registrar comes into play.
Step 3. Log into SiteGround, go into the Customer’s area, My Account, Domain names. Next to your domain name there will be a “Manage” button. Click that and on the bottom of the next page will be an Obtain EPP Code section at the end. You can request that the EPP key code that is needed for the domain transfer be sent to you. The code will be sent to the administrative email on file for your domain name. You should then receive an email similar to this with the EPP key code.
Step 4. Login to your NameCheap account and start a domain transfer. If you did not do Step 1, Namecheap will not let you proceed with the transfer. The domain has to be unlocked. During checkout you will be able to provide the EPP code. You will then receive several emails. NameCheap will send you an email, like the following, asking you to confirm the transfer, you must click on the link and confirm you want to transfer.
After you click the link confirming you want to transfer the domain, SiteGround will send an email asking you if you want to stop the transfer, don’t click on anything in that email. At that point you have to wait 5 business days at which time you could cancel the transfer. Once the 5 days are up SiteGround will start transferring the domain to NameCheap. When the transfer completes you’ll get an email letting you know the domain transfer is complete. At this point the new registrar has control of the domain, but your domain will still be using SiteGround’s name servers.
Migrate the Content and Database
Step 5. Now that DNS ownership has been transferred, you now need to move your WordPress files and MySQL database to your new server. Login to the SiteGround cPanel, scroll down to Backups and click Create Backup. On the Backups page click Download a Full Website Backup. On the Full Backup page leave the defaults and click Generate Backup. The next page will tell you the backup is in progress, click Go Back. You may have to refresh the Full Backup page a few times, but the backup name should then become a link to file, download it.
You should now have a zip file of your WordPress content and MySQL database. Upload those onto your new server. Create a new MySQL database and restore your backup into it. Place your WordPress contents into /var/www and create the Apache or Nginx sites. For more details on restoring the backup and website setup, read my WordPress Command Line Cheat Sheet article.
Use a host entry on your desktop to point your website’s DNS name to your new server’s IP address. In a new browser window try accessing your website, make sure it loads correctly. You may want to make a minor change on the site, and then make sure its not on your live site. Remember to remove the host entry.
Update DNS Records
Step 6. Go back to the SiteGround cPanel, access the Advanced DNS Zone editor in the DNS section. Click edit on your website’s DNS record. Change the Address to your new server’s IP address, click “Edit Record” to save. It may take several minutes or an hour for the DNS change to propagate. Test the change by pinging your website’s DNS name and wait for it to respond with your new IP address. Once the IP updates in DNS, check to make sure the website is still loading correctly.
Change DNS Hosting
Step 7. At this point your website is fully migrated. The only step remaining to migrate from SiteGround is to move your DNS records to the NameCheap Name Servers. Go back to the SiteGround cPanel, and access the Advanced DNS Zone editor in the DNS section. cPanel doesn’t give you a way to backup your DNS records, so I’d recommend taking a screenshot of your records here.
Login to NameCheap and access your Domain list. For your website’s domain, the Nameservers section should be site to Custom DNS, change this to Namecheap BasicDNS and click the green checkmark to save.
You should now be able to access the Advanced DNS section of your domain in NameCheap. You will need to recreate your DNS records here. Create an A record for your domain pointing at your new web server. Now create a www record as a CNAME to your root domain. Check the screenshot from SiteGround’s cPanel to see what other records you need to create. Keep in mind cPanel creates a lot of DNS records you don’t need. You may just need to recreate your MX records for email.
Like the first DNS change this can take awhile to finish. Keep an on your website and make sure there are no issues. If all goes smoothly with the DNS change, this completes the steps needed to migrate from SiteGround.