The wonderful folks at Delicious Brains made SpinupWP available to the general public in May of 2019. Since everything that comes out of Delicious Brains is top notch, SpinupWP caught my eye – but there is a certain inertia that affects some of us (me) when it comes to moving sites between hosts (bit of a misnomer in this case)…so I put it off until I couldn’t bear the poor performance and support of my current web host anymore and thus I gained some ertia.
Launching a new site using SpinupWP was fairly simple and the performance was impressive! My ertia was ready to migrate my existing sites until I saw the official migration guide from SpinupWP. The steps are sysadmin’ish (nothing wrong with that), involve a number of manual and time consuming actions, and I would need to repeat them for each site I wanted to move.
My ertia inertia’ed again and I decided to stick with my current host – until their Varnish cache kept failing (even after they “fixed” it) every few minutes resulting in every site visit hitting the database. I still wasn’t ready to go through the monotonous toil involved in following the official migration instructions repeatedly, so I struck out to find a simpler way–and I’m here today to share it with you!
When To Use This Guide
The SpinupWP site migration guide offers a number of best practices which should be utilized by high traffic / high importance sites. This guide is best utilized by individuals running small or medium traffic sites where a brief period of downtime will not be an issue and where time is a more precious commodity than robust process.
I hope this guide will be particularly useful to individuals without a technical background who are running / managing WordPress sites. To this end, I have included a copious number of screenshots and have attempted to be meticulous in recording even the smallest steps involved in this process.
You will already need to have a SpinupWP account created and have spun up a server, see the official Getting Started documentation for information on how to do so.
You will also need to follow SpinupWP’s directions for setting up transactional emails assuming you do not already have a solution in-place.
Warning: Many web hosts offer email servers as part of their platform. SpinupWP does not (for good reason). You must setup a transactional email solution if you want any emails to be sent by WordPress (e.g registration, comment notification, password reset).
Before we dive into the weeds, lets take a quick look at the major steps you’ll be undertaking to migrate your existing site to SpinupWP using my “expedited” process:
- Create a New Site on SpinupWP.
- Update TXT records with your Domain Name Server (DNS).
- Use the freemium plugin UpdraftPlus to create a backup of your existing site.
- Sidebar: Using Local Storage.
- Sidebar: Using Remote Storage.
- Sidebar: Cleaning Up WP.
- Modify your computer’s host file to use your new site.
- Restore the backup taken earlier using UpdraftPlus to your new site.
- Add SpinupWP and Limit Login Attempts Reloaded plugins to your new site.
- Update DNS records with your Domain Name Server (DNS) to point to your new server.
Create a New Site on SpinupWP.
Login to your existing SpinupWP account.
Choose “Add Site”
Note: If you are like me, your eyes are drawn to the big pinkish button “Spin Up a New Server” and don’t immediately see an option to “Add Site”. Look underneath the pink button to find the white “Add Site” button.
You are now in the “New Site Wizard” and will setup your “Domains”.
Ensure that “Enable HTTPS (SSL/TLS certificates)” is checked and enter the domain name of the site you are migrating to SpinupWP. Usually you’ll be making two entries on this page – mydomain.com and www.mydomain.com – where domain is the name of your site and .com is the top-level domain (TLD, e.g. .com, .net, .org).
Click Next. You will are now asked “Are you ready to point your domains at this server?” The answer is “No” – for the time being we want visitors to mydomain.com to continue going to the old host and not to SpinupWP.
Click Next. You’ll be shown two sets of TXT records you need to add to your domain name server (DNS). Oftentimes your DNS is the same as your Domain Registrar. For the sake of this example (and because I think they are awesome) we’ll be using Cloudflare as our DNS.
Sidebar: Configuring DNS Records with Cloudflare
Open a new tab in your browser and go to Cloudflare’s site. In the header menu you should see a “Log In” option to the left of “Sign Up” and a big orange “Under Attack?” button, click on “Log In”.
After logging in you will be presented with the domains you have registered with Cloudflare.
Click on the appropriate domain and you’ll be brought to the Cloudflare Domain Dashboard.
Towards the top of this page you will see a number of blue and white buttons – Overview, Analytics, DNS – ahh, that’s the one! Click!
You’ll want to add two records. Click on the blue “Add record” button.
You’ll change the Type of the record to TXT and then copy from your SpinupWP tab the top left column’s content into Name. Leave TTL as is and copy into Content from the SpinupWP tab top-right column. Click Save.
Repeat this step again for the second TXT record, this will be on the SpinupWP tab and you’ll be using the bottom left column for Name and the bottom right column for Content. Click Save.
Once you’ve added these records they should now appear in Cloudflare, something like this:
End Sidebar, Resume SpinupWP Site Setup
Great work! Go back to the SpinupWP tab and click the pink “I’ve Updated the DNS” button.
SpinupWP will check the new records have been added and show a successful confirmation message:
Click Next. You’ve now completed the Domains step of the New Site wizard and moved on to Installation.
Click on WordPress and ensure the checkmark appears next to it. Then click on Next.
You’ll now need to provide some information to SpinupWP about this particular instance of WordPress. Note that the Title, Admin Username, and Admin Password will all be overwritten once you restore your site to this WordPress instance later in this process.
Note: Make sure you copy down the username and password, you’ll need these until you restore your site.
Congratulations! You’ve left the Installation section of the New Site Wizard and are now working with the Database section.
You’ll be creating a new database. Note that the database name, username, password, and table prefix are not overwritten when you restore your site later with UpdraftPlus, so make sure you use sensible names and save them somewhere safe!
Note: If the database you restore uses the wp_ prefix then SpinupWP retains their unique prefix, but this is only if you are using the wp_ prefix.
Click Next. Almost done!
Choose a logical user name for your site. This is the Linux user name that runs the processes and owns the files on your server.
Unless you have a reason to do otherwise, choose the latest stable release of PHP (currently 7.4) and enable the full page cache. Then Click Next!
You’ll be presented with the Confirmation Wizard page. I’ve split it into two screenshots below.
Review the listed settings. They should match what you’ve entered throughout the wizard.
Ignore the Site Migration Guide note and click “Add Site”.
Wait a second, what is this? Did I fail to setup the site? It seems as if I’ve been dropped into a similar site setup wizard?
No, you’ve successfully created the site, unfortunately the SpinupWP dashboard for your new site is confusingly presented. Click on Back to Server on the top left to feel better.
Using UpdraftPlus to Create a Backup
Now that we have a brand new WordPress install setup on SpinupWP we can actually get to work. Log in to your existing WordPress site and install the freemium UpdraftPlus plugin:
Plugins –> Add New –> Search for “UpdraftPlus” –> Install –> Activate
Once the plugin is activated it can be accessed under:
Settings –> UpdraftPlus Backups –> Backup/Restore Tab.
- Click on the Big Blue “Backup Now” button. A modal window will open.
- Make sure you have checked off “Include your database in the backup”, “Include your files in the backup”
- If you have configured (see sidebar below) remote storage, ensure “Send this backup to remote storage” is checked.
- Click “Backup Now” at the bottom right of the modal window.
You’ll be returned to the main UpdraftPlus page and you’ll be able to watch the progress of the backup. It should look something like this:
Once the backup has completed you’ll see the Existing Backups section has files relating to your recent backup:
If you are using remote storage you are all set!
Sidebar: Using Local Storage
If you don’t want to setup remote storage, UpdraftPlus will save the backup files to your current host. You can then download your backup files to your computer and then upload them later to the new site.
In order to download the files you need to:
- Click on the button representing each type of backup data: Database, Plugins, Themes, Uploads, Others.
- On the same page will appear an option to download files of a specific data type. You need to click on each file and download it to your local computer.
Note: If your site is large UpdraftPlus will break the data across multiple files. For each file listed you’ll need to click on it to download. If there are three files listed under Database you’ll need to click on each individually (another perk to using remote storage).
Sidebar: Using Remote Storage
UpdraftPlus can save your backups to your local web host or a number of remote storage options. Click on the Settings tab to the right of the Backup/Restore tab to configure remote storage.
Consumer level storage options include Dropbox, Google Drive, and Microsoft OneDrive. If you use one of these services I’d recommend using an account dedicated only to backups, separate from the account you use daily. If your site is compromised (hacked) in the future you don’t want the hackers to gain access to your files as well!
For more business oriented options Amazon S3, Microsoft Azure, and Google Cloud are available.
Select your desired remote storage provider and then Save at the bottom of the page.
You’ll be prompted to authenticate (login) to your storage provider. Once you’ve done so, UpdraftPlus will be able to backup files to and restore files from your remote storage.
Sidebar: Cleaning Up WP
Over time WP has a tendency to collect garbage. Themes we’ve forgotten to delete, plugins we no longer use, database tables or entries that are irrelevant. To speed up your site migration you can eliminate some of these files/data and thus decrease the time it takes to backup and restore.
Warning: I’d recommend taking a bloated backup first (before you make any changes!). It is far too easy to accidentally delete something you actually need.
Go through the following steps to clean things up:
- Check under Appearance –> Themes for unused themes and remove.
- Check under Plugins –> Installed Plugins for unused plugins and remove.
- Install the Advanced Database Cleaner (ADC) plugin and use it to scan for garbage entries in your database and remove.
- Use ADC’s Table tab to remove garbage tables.
- Use ADC’s Table tab Optimize option to reduce the size of your db tables.
- If you are looking for a nightmare, try cleaning up the media library.
Modifying Host Files
Next we need to “restore” our site to the new WP instance we’ve created on SpinupWP. To make this easy lets change our host file so that the IP address of our SpinupWP site is set as the location of our mydomain.com.
I’ve included brief instructions on modifying your host file below. If the instructions don’t work for you, see this more exhaustive article on configuring hosts files by How-To Geek.
- Click on Start
- Begin typing “notepad”
- When the “Notepad” app appears as an option, right-click on it and choose “Run as administrator”.
- When prompted, allow it to run as administrator.
- In Notepad go to File –> Open
- Navigate to and open:
Open Terminal and enter the command:
sudo nano /etc/hosts
You’ll add a record to this text file that looks something like this:
The IP address is on the left and the domain of the site you are moving is on the right. You can find your site’s new IP address in SpinupWP.
Save the File.
What Is Happening Here?
Normally when we visit a website our browser contacts a DNS server which provides the IP address for the site we want to visit. When we add a record to our hosts file we tell our computer not to use the DNS record but instead to use the information in our host file.
If you’ve made this update to your host file, when you navigate to mydomain.com you should now see your new WordPress instance and not your existing site.
IMPORTANT: You will probably need to close your browser and reopen it before this will work. It seems browsers cache the IP address.
Restore the UpdraftPlus Backup to Your New Site
With your host file updated, use your browser to visit your new sites administration page (e.g. mydomain.com/wp-admin).
Note: You’ll login with the credentials you created while adding the new site (via SpinupWP’s Add Site Wizard), not the credentials for mydomain.com you use regularly on your site.
Once logged in you need to install UpdraftPlus on this site:
Plugins –> Add New –> Search for “UpdraftPlus” –> Install –> Activate
Next we’ll navigate to the UpdraftPlus dashboard:
Settings –> UpdraftPlus Backups
Using Remote Storage
If you used remote storage to perform the backup on your old site you can restore from this remote storage to the new site.
- Click on the Settings tab.
- Under Remote Storage choose the same storage option you used previously.
- Click Save and then authenticate with the same credentials you used previously.
- Click on the Backup / Restore Tab.
- Under Existing Backups click on “Rescan remote storage”.
After a minute or two you should see the backup you created earlier listed under Existing Backups. (Wife’s Editorial Comment: this would be a good time to get a snack).
Using Local Storage
If you used local storage and downloaded the backup files to your local computer you’ll need to upload them to the new site before they can be restored.
- Under Existing Backups choose Upload backup files
- Select all the backup files you want to upload.
After a moment your backup should appear under Existing Backups.
Performing the Actual Restore
Once you have your backup files loaded into UpdraftPlus you can click the Restore button under Actions. This will launch a restore wizard:
- Ensure that all the available components are checked: Plugins, Themes, Uploads, Others, and Database.
- Click Next.
- You’ll be presented with the option to exclude some tables from the restore – don’t.
- Click the Restore button.
Rare Problem: If, for some reason, your WordPress database tables don’t have a prefix, UpdraftPlus will restore the tables but they will not be accessible. You either need to add a prefix to your database tables before making the transfer or after. I hope to write a separate article explaining how to accomplish this soon.
UpdraftPlus will present a nice window informing you of all the activities it is taking. If successful you should eventually see a big green checkmark next to “Restore successful!”.
- Click on Return to UpdraftPlus configuration.
- You may be booted out to the WordPress login page.
- If you aren’t automatically booted, log out of WordPress.
- Log back in (mydomain.com/wp-admin) using your old site’s username and password.
Remember: When you restored the old site to your new site you overwrote the username and password you created while adding the site to SpinupWP. You’ll use your username/password from the old site going forward.
Add SpinupWP and Limit Logins Reloaded Plugins
SpinupWP automatically adds the SpinupWP and Limit Logins Reloaded plugins when you add a new site. By restoring an UpdraftPlus backup you have deleted these plugins.
- Go to Plugins –> Add New –> Search for “SpinupWP”
- Install –> Activate.
- Go back to Plugins –> Add New –> Search for “Limit Logins Reloaded”
- Install –> Activate.
That was easy!
Update Your DNS Server
Okay, to be honest, we aren’t just updating the DNS server. There are a few related steps we’ll be taking as well, but I promise they’ll only take a minute!
- You want to visit your site and make sure everything looks/works as expected. You could spend a lot of time here, that’s up to you.
- Once you’ve confirmed the site is working properly you should comment out the line we added earlier to your hosts file. The result should look something like this:
# 188.8.131.52 mydomain.com
- Now you can go update your DNS records. You’ll be replacing the IP address in your mydomain.com and www.mydomain.com records with that of your new site’s IP.
- Close out your browser and reopen it (or use another browser). You want to make sure the browser is not still using the IP you set in the host file.
Load up your site, it should be nice and snappy on SpinupWP’s service. Congratulations! You’ve successfully migrated your site to SpinupWP.
Remember: You need to setup transactional emails separately.
Tip: Make sure you remove any unnecessary plugins once you’ve migrated to SpinupWP, this includes any caching plugins you may have been using on your previous host.