Your support helps keep this blog running! Secure payments via Paypal and Stripe.
Recently, I handled a migration task to move a WordPress multisite from Amazon Web Services (AWS EC2) to SiteGround. The client was unhappy with the previous agency’s response and service, and the website was loading slowly. I suggested SiteGround because, in my experience, their hosting performs exceptionally well, especially for online stores. My client’s business is based in Australia.
Typically, I prefer to migrate WordPress sites manually. This method ensures a smooth process and confirms that there are no issues. However, in this case, the client’s agency refused to provide the server credentials or the DNS settings values. This situation effectively locked the client to the agency.
My priority was to help my client move the website to the new hosting as quickly as possible.
Tip
If you hire an agency or a freelancer to build your website, you must be able to access your website files, database, email hosting, domain panel, and DNS settings. These are your assets.
Preparation
Check Domain Status
My client’s domain is currently hosted with Crazy Domains, where it was recently moved. The domain status indicated a Nameserver issue, which I promptly informed my client about so they could check with the registrar. Once that was resolved, the domain data updated correctly and is now ready for the Nameserver update once the files and database transfer are complete.
You can check the domain status using free tools such as Whois.domaintools.com or Whois.com
DNS Lookup
This was a critical step: I needed to determine the existing DNS settings for the client’s domain. Specifically, I was looking for the DNS records (eg: A, AAAA, CNAME, MX, TXT) that would need to be recreated in SiteGround, which is a new hosting.
Since the agency did not provide the DNS settings, I will need to determine them myself. This is an uncommon occurrence.
Here are the free tools I used to look up the client’s domain DNS records. They are not able to provide the CNAME records for my client’s domain, though.
I used the MX record to confirm that the email hosting is Microsoft 365. I also observed that verification records for marketing services have been added to the TXT records. Without the correct DNS records, the website may function incorrectly after the migration.
In the website backend, I discovered the site was using SMTP2Go to ensure reliable email delivery. Once the migration is complete, I will need to verify the domain with the new hosting provider for SMTP2Go.
Important note
If you have access to the current hosting’s DNS settings, please copy all the DNS records from that location. You will need them to recreate the DNS records on the new hosting.
Hosting Plan
Generally, when choosing hosting, you should select a plan based on web space, monthly visits, traffic capacity, and the number of websites you intend to host. Other hosting features depend on your specific needs. If you are unsure, consult your developer for advice.
Migration Plugin
Since I could not access the files and database via the hosting provider, I decided to use a plugin. Given that my client’s website is a WordPress multisite, I needed a reliable paid solution.
I considered three plugins: Duplicator Pro, WP Migrate Lite with Multisite Extension Add-on, and UpDraftPlus Premium. I chose UpDraftPlus Premium because it was the most cost-effective option. As the migration is a one-time task, the $70 annual license covering two sites was sufficient for this project. I contacted the support teams for those plugins multiple times to ensure all my questions were answered, and they responded promptly.
Super Admin
For a WordPress multisite, I need the capability to install and activate plugins directly from the Network Admin panel. Therefore, I must have Super Admin privileges.
Migration Process
For ease of reference, I will refer to the site on the current hosting as the source site and the site on the new hosting as the destination site.
Step 1: Buy the UpDraftPlus Premium Plugin
You should contact their support team and ask which plan suits your needs. In my client’s case, the site is a single domain with a multisite setup (five subsites). The Personal plan is sufficient. If the plugin fails and the technical support can not resolve the issue, they will refund it if it’s requested within 10 days of purchase.
After purchasing the plugin, download the file and store it on your computer. You will need to install this plugin on the site on both the current and new hosting environments.
Step 2: Buy the Hosting Plan
Purchase the hosting plan. On SiteGround, you will need to create a temporary domain (SiteGround will automatically generate this domain for you). By migrating the file and database to this temporary SiteGround domain, you can thoroughly review the site before making it live. Afterward, you can then change the temporary domain to your primary domain (your actual domain).
Once the temporary domain is created, you will need to install a fresh WordPress multisite instance.
Important note
If you accidentally create a new website and select an existing domain, you will need to delete that domain and then recreate the temporary domain. Only the site owner account can create or delete the domain.
Step 3: Set up a Fresh WordPress Multisite on the New Hosting
The WordPress installation must be functional to use the migration plugin. Therefore, you will need to set up a fresh WordPress multisite on the new hosting.
First, create a new WordPress website via SiteGround, then you should follow steps 2, 3, and 4 in the WordPress guide. When the WordPress Multisite setup is complete, you will see the three-stacked houses icon next to the WP logo in the backend.
Important note
If the setup is incomplete when migrating a site using the UpdraftPlus Premium plugin, only the main site will be migrated. Therefore, ensure that the WP Multisite setup is complete.
Step 4: Enable Maintenance mode and create a full backup
Source site
- Maintenance mode (Optional):
- If your site is an online store, you should enable maintenance mode. That way, no new orders are created during the migration. We want to ensure no orders are lost.
- Install and activate the UpdraftPlus Premium plugin.
- Backup:
- Create a full backup file and database using the UpdraftPlus Premium plugin.
- I left the default settings and created a full backup, including all plugins, themes, uploads, must-use plugins, and any other directories found inside
wp-content. You can also include thewp-config.phpand.htaccessfiles in the backup by using the ‘More files’ option in the UpdraftPlus Premium settings.
- I left the default settings and created a full backup, including all plugins, themes, uploads, must-use plugins, and any other directories found inside
- Download all backup files.
- I typically set up my development site using the downloaded backup file to verify that the backup files are working.
- Create a full backup file and database using the UpdraftPlus Premium plugin.
Step 5: Migrate the site using UpdraftPlus Premium
The migration process with UpdraftPlus Premium involves two main steps: establishing a connection and transferring the backup.
- On the destination site, you must first generate a unique migration key.
- Next, on the source site, you will input this key. This key establishes a secure, direct connection between the source and destination sites.
- From the source site, initiate the transfer of the current backup directly to the destination site.
- Once the transfer is complete, the backup files will automatically appear on the destination site, allowing you to proceed with the restoration.
Follow How to migrate your site with UpdraftPlus Premium. Note that, in step 2, we will perform on the destination site.
Database Configuration and Table Prefix Handling
This plugin automatically handles the table prefix and required database configuration changes for the new hosting environment. This means there is no need to manually edit the table prefix or database configuration within the wp-config.php file.
Post-Migration Checks
- Check the Network Administration dashboard and all subsites to ensure they are operating error-free.
- Confirm that all post types are fully accessible from both the backend (admin interface) and the frontend.
- Ensure the Orders and Products pages can be accessed correctly within the backend.
Change the Domain and Migrate DNS Records
After the post-migration checks are complete and no errors or functional failures are found on the destination site, the next step is to change the temporary domain to the primary domain. Following this, we will update the Nameservers and the DNS records.
Important
The DNS record update may cause site downtime as we must wait for DNS propagation, which can take up to 72 hours. Please ensure you have secured the current DNS records from your existing hosting provider beforehand.
Change the Temporary Domain to the Primary Domain
Go to SiteGround>Website>temporary domain>at three dots, choose “Change Primary Domain“. At this point, the new DNS records will be added automatically by SiteGround. You can review the DNS records at Domain>DNS Zone Editor.
DNS Record Migration Steps
- Recreate DNS Records: Navigate to the DNS Zone Editor within your domain management panel.
- Preserve Email Records: If you need to retain services like Microsoft 365 email, you must manually recreate the exact records (e.g., A, MX, TXT, CNAME, SPF) from your current hosting provider onto the SiteGround DNS zone.
- Validate DNS Settings: It is highly recommended to request technical support (from both your old provider and SiteGround) to review your DNS settings before changing the Nameservers.
- Note: If you cannot access the DNS records from your old hosting interface, you can use a free DNS lookup tool to find the necessary values. SiteGround support can often assist with looking up these values as well. The SiteGround support team is knowledgeable and highly responsive.
- Backup Existing Nameservers: Before proceeding, go to your Domain Panel’s Nameserver settings and copy and save both the hostname and IP addresses of your existing Nameservers. This allows you to quickly revert the settings if any issues arise.
- Update Nameservers: Add the two new Nameservers provided by SiteGround, and delete the old Nameservers.
- Initiate Propagation: The DNS changes will now begin the propagation process, which may take up to 48 hours to complete globally.
DNS Status checking
- You can check the DNS status using this free propagation tool during the DNS propagation period.
Set Up SSL and Force HTTPS (Optional)
- You can enable the free Let’s Encrypt SSL certificate on the SiteGround platform.
- Additionally, you can configure the platform to force all traffic to HTTPS, preventing mixed HTTP and HTTPS content.
Database and wp-config.php Update for WP Multisite
When transitioning from a temporary domain to your primary domain, manual updates are required in the database and the wp-config.php file.
- Database Updates: The following database tables still contain references to the temporary domain and must be manually updated to reflect the primary domain.
- wp_blogs
- wp_site
- wp_sitemeta
wp-config.phpUpdate: You will also need to manually change the domain reference within thewp-config.phpfile.- Note: Failure to update these critical domain references may result in the “Error establishing a database connection” message.
- Asset URL Replacement: The site’s assets (e.g., images, CSS, scripts) will also still reference the temporary domain. You must perform a search-and-replace operation across the database to update these asset URLs.
- For the search-and-replace operation, you can use the WP Migrate Lite plugin. Simply install and activate this plugin from the Network Admin panel, and ensure you run it at the Network Admin level.
- Crucial Timing Warning: Do not update the site until the DNS propagation process is fully complete.
Nameserver Change Checklist
Be aware that some external services, like SMTP2GO, will necessitate a domain re-verification following the update of the Nameservers.
SMTP2GO Domain Re-verification Steps
- Contact Support: I needed to contact SMTP2GO support and request that they flush their server cache. This action forces their system to recognize the new DNS provider.
- Add CNAME Records: After cache flushing, I was instructed to add the three required CNAME records to the SiteGround DNS settings. TTL is 1 hour for each CNAME record.
- Final Verification: I then returned to the SMTP2GO control panel and clicked the ‘Verify’ button.
- Confirmation: The domain is now successfully verified within SMTP2GO.
Email Functionality Testing
- If you are using external email hosting (such as Microsoft 365), you must thoroughly test sending and receiving emails immediately after the DNS propagation process is complete.
Final Site Verification
- Backend Testing: Log in to the backend (admin dashboard). Access every main menu item and navigate to each subsite to ensure full functionality and verify that no errors are present.
- Frontend Verification: Log out of the backend and view the site from a public perspective to confirm that the entire frontend displays correctly.
SiteGround Note
For a single site, you can use the SiteGround Migrator plugin to move from your current hosting to SiteGround hosting. However, the plugin does not work with WP Multisite installations. You can follow the tutorial on how to easily migrate with the WP Migrator plugin.
The staging feature on SiteGround is not compatible with WP Multisite installations.
Your support helps keep this blog running! Secure payments via Paypal and Stripe.
