The Complete Guide to SEO for Website Migrations: How to Preserve Rankings During Domain and Platform Moves
Types of Website Migrations and Their Risks
Migration types:
- Domain migration (A.com → B.com)
- HTTP to HTTPS migration
- Platform migration (WordPress → Shopify)
- URL structure restructuring (/blog/post → /articles/post)
- Subdomain to root domain migration
Risk levels:
| Migration Type | Risk Level | Estimated Traffic Loss |
|---|---|---|
| HTTP→HTTPS | Low | <5% (if executed correctly) |
| URL restructuring | Medium | 10-30% (3-6 months to recover) |
| Domain migration | High | 30-50% (6-12 months to recover) |
| Platform migration + URL changes | Very high | 50-70% (1-2 years to recover) |
Pre-Migration Preparation
Step 1: Take a Comprehensive Backup of the Current State
Must be recorded:
- All ranking keywords and their positions (export from Ahrefs)
- All backlinks (export from Ahrefs)
- Average monthly organic traffic baseline
- A list of all indexed URLs (export from GSC)
This data serves as the benchmark for evaluating performance after the migration.
Step 2: Map Old URLs to New URLs
Create a complete mapping table for every URL that needs to be migrated:
| Old URL | New URL | Status |
|---|---|---|
| /old-blog/article-1 | /articles/article-1 | Mapping confirmed |
| /old-product/item-1 | /products/item-1 | Mapping confirmed |
Guiding principles:
- Every old URL must have a corresponding new URL (301 redirect)
- Keep the URL structure as similar as possible (minimize the amount of change)
- Prioritize confirming high-value pages (those with a large number of backlinks)
Step 3: Validate in a Staging Environment
Before taking the new site live in production, validate the following in a staging environment:
- All pages are accessible
- All redirects are correct (test with Screaming Frog)
- Schema markup is correct (verify with the Rich Results Test)
- Internal links do not point to old URLs
Executing the Migration
HTTP to HTTPS Migration
Correct procedure:
- Install the SSL certificate
- Redirect all HTTP URLs to HTTPS (301 redirects)
- Ensure canonical tags use the HTTPS version
- Update sitemap.xml to use HTTPS URLs
- Add the HTTPS version as a property in GSC
- Update the tracking code for Google Analytics and GSC
Common mistakes:
- Mixed Content: the page still contains HTTP resources (images, CSS, JS)
- Redirect chains: HTTP → HTTPS → www.HTTPS (it should be a single step: HTTP → www.HTTPS)
Domain Migration
Setting up 301 redirects: Configure bulk redirects in the server configuration file:
# Nginx configuration example
server {
listen 80;
server_name old-domain.com;
return 301 https://new-domain.com$request_uri;
}
The GSC domain migration tool: GSC provides a dedicated "Change of Address" tool to notify Google that you are migrating your domain.
Path: GSC → Settings → Change of Address
URL Structure Restructuring
Configuring bulk redirects with Screaming Frog:
- Import the list of old URLs and the new URL mapping
- Implement the 301 redirects in bulk in the server configuration file
- Use Screaming Frog to verify that all redirects are correct
Post-Migration Monitoring
Week One: Daily Monitoring
- GSC indexing status (whether new URLs are being indexed)
- Rankings for core keywords (monitor daily)
- Number of 404 errors (GSC Coverage report)
- Redirect chain issues (Screaming Frog)
Month One: Weekly Monitoring
- Organic traffic trends compared against the baseline
- Status of backlink targets (confirm that backlinks are being 301-redirected)
- Core Web Vitals (a new platform may perform differently)
Tips for Fast Post-Migration Recovery
- Submit the new site's sitemap in GSC
- Use "Request Indexing" for core pages
- Speed up the discovery of new URLs through internal linking
- Email important backlink sources to request that they update their links to the new URLs
Conclusion
Website migration is a high-risk operation, and thorough up-front preparation is the single most important risk-control measure. Implementing 301 redirects properly, using GSC's Change of Address tool, and establishing close post-migration monitoring are the keys to minimizing traffic loss.