Migrating to a new hosting provider is one of the most feared tasks for website owners — and for good reason. When done incorrectly, a hosting migration can wipe out months or years of accumulated SEO rankings in a matter of hours. The good news is that when approached systematically, hosting migrations can be completely safe from an SEO standpoint. This guide provides a complete checklist covering every stage of the process: pre-migration preparation, backup and file transfer, DNS management, testing before go-live, and post-migration verification.
Why Hosting Migrations Affect SEO
Before diving into the checklist, it is important to understand which specific SEO factors are at risk during a hosting migration. Many website owners assume that moving files to a new server and updating DNS is all that is needed. In reality, there are several SEO-relevant elements that can break if not handled carefully.
- Crawlability and Indexability — If the new server responds slowly or has downtime during migration, Googlebot may fail to crawl pages or encounter errors, sending negative signals to Google.
- Page Speed — A new server that is slower than the original will reduce Core Web Vitals scores, particularly TTFB (Time to First Byte), which is a direct ranking factor.
- URL Structure — If URLs change during migration without proper redirects, all accumulated link equity for those pages is lost immediately, and Google treats them as brand new pages with no history.
- SSL Certificate — If the new host does not have a valid SSL certificate ready from day one, users and Googlebot will encounter a "Not Secure" warning, which negatively impacts rankings and user trust.
- robots.txt and Sitemap — If these files are missing or incorrect after migration, Googlebot may stop crawling the entire website or miss important pages.
- DNS Propagation Overlap — During DNS propagation, some users may reach the old server while others hit the new one simultaneously. If the content differs, this can create temporary duplicate content issues.
Understanding these risks is the foundation that makes every step in the checklist below meaningful, as each step is designed specifically to eliminate one or more of these risk factors.
Pre-Migration Checklist: What to Do Before You Start
Thorough preparation is the most important phase. Most SEO problems from hosting migrations occur because webmasters did not record baseline data before starting, leaving them with no way to diagnose problems after the fact.
1. Record Your Current Baseline
Before touching anything on your current server, document the following data thoroughly:
- Screenshot keyword rankings for your top 20–30 target keywords from Google Search Console
- Export a list of your highest-traffic URLs from Google Analytics (90-day lookback)
- Record current Crawl Stats from Google Search Console (pages crawled per day)
- Run Lighthouse or PageSpeed Insights on 5–10 key pages and record the current scores
- Export backlink data from the "Links" report in Google Search Console
- Note the current server's IP address for post-migration testing
2. Audit Your Complete URL Structure
Use a tool like Screaming Frog or wget to crawl all URLs on your current website. Build a spreadsheet listing every URL, its HTTP status code, and estimated backlink count. This becomes your redirect map if any URLs change during migration.
# Crawl your website with wget to capture all URLs
wget --spider --recursive --no-verbose --output-file=crawl-log.txt \
https://yourdomain.com 2>&1
# Extract just the URLs from the log
grep "^--" crawl-log.txt | awk '{print $3}' | sort -u > url-list.txt
# Count total URLs
wc -l url-list.txt
3. Lower DNS TTL 24–48 Hours Before Migration Day
This is the step most commonly skipped, yet it is critical for a smooth transition. The TTL (Time to Live) value on DNS records tells resolvers worldwide how long to cache the record. Typical values are 3600–86400 seconds (1–24 hours).
If you do not lower TTL in advance, after you update your A Record to the new server some users may continue reaching the old server for up to 24 hours, creating duplicate content and inconsistent user experiences during that window.
# Check current TTL on your A record dig yourdomain.com A # Example output shows TTL value: # yourdomain.com. 3600 IN A 203.x.x.x # The number 3600 is the current TTL in seconds # To verify propagation after lowering TTL, check from multiple resolvers: dig yourdomain.com A @8.8.8.8 dig yourdomain.com A @1.1.1.1
Set TTL to 300 seconds at least 24–48 hours before migration day. Wait for that reduced TTL to propagate worldwide before starting the server migration. After migration is confirmed stable, restore TTL to 3600 or 86400.
Backup and Migration: Doing It Right
A complete backup is not just copying web files. It must cover files, databases, email, and server configuration to avoid losing data or settings that are invisible in a standard file manager view.
Complete Backup Checklist
- All website files including hidden files like .htaccess, .env, .htpasswd, and wp-config.php
- All databases exported as .sql files via mysqldump or phpMyAdmin
- Email accounts and stored emails especially if email is hosted on the same server
- SSL certificate files if using a paid SSL — request the certificate and private key files from your provider
- Cron job schedules document every cron job as they must be recreated on the new server
- Custom PHP settings any php.ini overrides or .htaccess PHP directives
Proper Database Export
# Export database using mysqldump (run on old server) mysqldump -u DB_USER -p DB_NAME \ --single-transaction \ --routines \ --triggers \ --add-drop-table \ > backup-$(date +%Y%m%d).sql # Check backup file size ls -lh backup-*.sql # Import on new server mysql -u NEW_DB_USER -p NEW_DB_NAME < backup-2026XXXX.sql
Test the New Server Before Changing DNS
This is the single most important step in the entire migration process. Before pointing DNS to the new server, edit your local machine's hosts file to temporarily point your domain to the new server's IP address. This lets you test the new server in a production-identical environment without affecting live traffic.
# On macOS / Linux, edit /etc/hosts sudo nano /etc/hosts # Add these lines (replace 1.2.3.4 with new server's actual IP) 1.2.3.4 yourdomain.com 1.2.3.4 www.yourdomain.com # On Windows, edit C:\Windows\System32\drivers\etc\hosts # Must be opened as Administrator
Test every critical page, login flow, form submission, and checkout process. Verify no 404 or 500 errors appear. Check that all CSS and JavaScript load correctly. Only remove the hosts file entry and proceed with DNS changes once everything works perfectly.
Setting Up 301 Redirects and SSL on the New Server
If your migration involves any URL structure changes — such as switching CMS platforms, changing file extensions, or reorganizing directory structure — you must implement 301 redirects for every changed URL without exception.
Common Redirect Patterns During Hosting Migrations
# Case 1: Changing .php extensions to .html
RewriteRule ^([^/]+)\.php$ /$1.html [R=301,L]
# Case 2: Adding trailing slashes to directory URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ /$1/ [R=301,L]
# Case 3: Old query-string URLs to clean slugs
RewriteCond %{QUERY_STRING} ^p=([0-9]+)$
RewriteRule ^index\.php$ /new-post-slug/? [R=301,L]
# Case 4: Moved category path
RewriteRule ^old-category/(.*)$ /new-category/$1 [R=301,L]
Verify SSL Certificate on the New Server
Before switching DNS, confirm that the SSL certificate on the new server is valid and covers your domain. Whether you are using Let's Encrypt or a paid SSL certificate, it must be active and correctly configured before go-live. With DirectAdmin hosting, you can issue and manage SSL certificates directly from the control panel.
# Test SSL certificate from your local machine (after editing hosts file) curl -I https://yourdomain.com --resolve yourdomain.com:443:1.2.3.4 # Check SSL certificate expiry date echo | openssl s_client -servername yourdomain.com \ -connect yourdomain.com:443 2>/dev/null | \ openssl x509 -noout -dates
Pro Tip: If migrating a WordPress site, always update the siteurl and home values in the database to point to your new server before testing. Use WP-CLI: wp search-replace 'http://old-server-ip' 'https://yourdomain.com' --all-tables. Without this step, CSS, JavaScript, and image files will still load from the old server, causing the page to appear broken even though the files were copied correctly.
Migration Stages: What to Check at Each Phase
| Phase | Actions Required | Tools | Expected Result |
|---|---|---|---|
| D-2 (Prep) | Record baseline, lower TTL, build redirect map | GSC, dig, Screaming Frog | TTL = 300 seconds |
| D-Day | Full backup, upload files, import DB, configure SSL | FTP/SCP, mysqldump, DirectAdmin | Site running on new server |
| Pre-DNS | Test via /etc/hosts, verify SSL, test all functions | Browser, curl, openssl | Zero 404/500 errors |
| DNS Switch | Update A Record, verify propagation worldwide | DNS control panel, whatsmydns.net | New IP propagated <10 min |
| D+1 (Monitor) | Check GSC errors, crawl stats, speed scores | GSC, PageSpeed Insights, curl | No new errors, speed stable |
Post-Migration Verification: The Final Checklist
Once DNS has fully propagated worldwide, your work is not finished. The post-migration verification phase is just as important as the migration itself — this is where you confirm everything is working correctly or catch problems before they affect traffic significantly.
Technical SEO Checks Using curl
# Check HTTP status codes for key pages
curl -I https://yourdomain.com/
curl -I https://yourdomain.com/important-page.html
# Verify HTTP redirects to HTTPS (must be 301, not 302)
curl -I http://yourdomain.com/
# Check robots.txt is accessible and correct
curl https://yourdomain.com/robots.txt
# Check sitemap loads without errors
curl https://yourdomain.com/sitemap.xml | head -20
# Measure TTFB (Time to First Byte)
curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\n" \
https://yourdomain.com/
Post-Migration Checklist
- All key pages return HTTP 200 (no 404 or 500 errors)
- HTTP correctly redirects to HTTPS (must be 301 permanent, not 302)
- www redirects to non-www (or vice versa, matching your canonical preference)
- SSL certificate is valid with correct expiry date
- robots.txt has no accidental Disallow directives
- sitemap.xml is accessible and returns valid XML
- Google Search Console shows no new errors in the Coverage report
- PageSpeed score is equal to or better than the pre-migration baseline
- All forms, login flows, and checkout processes work correctly
- Email send and receive is working (if email is hosted on the same server)
Submit Your Sitemap and Request Re-indexing
After migration is confirmed stable, submit your sitemap again through Google Search Console to accelerate the re-crawling process. If URLs changed during migration, use the URL Inspection tool in Search Console to request indexing for your 5–10 most important pages individually. You can also use IndexNow to notify Bing and Yandex simultaneously.
# Submit URLs via IndexNow
curl -X POST "https://api.indexnow.org/indexnow" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"host": "yourdomain.com",
"key": "YOUR_INDEXNOW_KEY",
"urlList": [
"https://yourdomain.com/",
"https://yourdomain.com/page1.html",
"https://yourdomain.com/page2.html"
]
}'
Common Mistakes and How to Avoid Them
Based on helping hundreds of clients through hosting migrations, here are the mistakes that cause the most SEO damage and how to avoid each one.
Mistake 1: Forgetting to Transfer Hidden Files
Files like .htaccess, .env, and .htpasswd are invisible in most FTP clients unless you explicitly enable "Show hidden files." Always verify these files were transferred. The .htaccess file in particular often contains critical redirect rules, cache headers, and security settings that are essential for the site to work correctly.
# Use SCP which transfers hidden files automatically scp -r oldserver:/home/user/public_html/. newserver:/home/user/public_html/ # Or in FileZilla: Server menu > Force showing hidden files
Mistake 2: Database URLs Still Point to Old Server
WordPress and many other CMSes store the site's own URL inside the database. After importing the database to the new server, those stored URLs still reference the old server. This causes CSS, JavaScript, and images to load from the old server — making the site appear broken.
# Use WP-CLI to search and replace URLs in the database
wp search-replace 'https://old-domain.com' 'https://new-domain.com' \
--all-tables --precise --report-changed-only
# Or use the database update queries directly:
UPDATE wp_options SET option_value = 'https://new-domain.com'
WHERE option_name IN ('siteurl', 'home');
Mistake 3: Not Recreating Cron Jobs
Scheduled cron jobs — such as automated email notifications, backup tasks, or cache purges — do not migrate automatically with your files. You must manually recreate them on the new server. With DirectAdmin, cron jobs can be managed directly from the control panel's Cron Jobs section.
Mistake 4: Forgetting to Update MX Records
If your site uses email hosted on the same server, and you are migrating email accounts as well, you must ensure MX records point to the new server after migration. Failing to do this means emails sent to your domain will still be delivered to the old server or bounce entirely.
# Verify current MX records dig yourdomain.com MX +short # Check against a specific DNS server to confirm propagation nslookup -type=MX yourdomain.com 8.8.8.8
SEO Recovery Timeline After Migration
After a successful hosting migration, do not panic if you see ranking fluctuations in the first few weeks. This is completely normal behavior as Google re-evaluates your site on the new server. Here is the typical timeline to expect:
- Days 1–3: Google begins crawling your key URLs on the new server. An increase in Crawl Stats in Google Search Console is a positive sign.
- Weeks 1–2: Keyword rankings may fluctuate up and down. This is normal and expected as Google re-assesses page quality signals from the new server.
- Weeks 2–4: If everything was done correctly, rankings begin to stabilize. Sites migrating to faster servers often see rankings improve during this phase as Core Web Vitals scores increase.
- After 1 Month: The stabilization phase should be complete. If rankings continue declining after 4–6 weeks, investigate redirects, robots.txt, server error logs, and crawl coverage reports carefully.
Monitoring Google Search Console reports weekly for the first 4–6 weeks after migration is essential. Early detection of crawl errors or coverage issues allows you to address problems before they result in significant traffic loss.
Frequently Asked Questions
Will my SEO rankings drop after migrating hosting?
If planned correctly with proper 301 redirects in place, your SEO rankings should not drop permanently. Google typically takes 1–4 weeks to re-crawl and re-index pages after a migration. You may see minor fluctuations during this period, but rankings should stabilize or even improve if the new server is faster than the old one.
Do I need 301 redirects for every URL when migrating hosting?
If you are migrating to a new hosting provider but keeping the same domain and URL structure, you do not need 301 redirects because the URLs remain unchanged. However, if you are changing URL patterns at the same time — for example from /page.php to /page.html — you must implement 301 redirects for every changed URL to preserve link equity and prevent 404 errors.
How far in advance should I lower DNS TTL before migrating?
You should reduce your DNS TTL to 300 seconds (5 minutes) at least 24–48 hours before migration. This allows the reduced TTL to propagate to DNS resolvers worldwide, so when you update your A Record to point to the new server, the change will take effect within 5–10 minutes globally instead of waiting the full original TTL period.
How do I test the new hosting before changing DNS?
Edit the hosts file on your local machine to point your domain to the new server's IP address temporarily. On macOS/Linux, edit /etc/hosts and add a line like '1.2.3.4 yourdomain.com'. Open your browser and test all critical pages, forms, logins, and checkout flows. Only update the DNS once everything works correctly on the new server.
DirectAdmin Hosting from AsiaGB
AsiaGB Hosting includes full DirectAdmin support, PHP 8.3, MySQL, and starts at just 500 THB/year.
View Hosting Plans