Domain migration (from old-domain.com to new-domain.com) is a 5-step process per redirect.pizza: 1) register new domain, 2) plan DNS cutover, 3) 301 redirect all old URLs, 4) update internal links and sitemaps, 5) submit to Google Search Console. The team that does this in a planned window (24-48 hours) has minimal SEO impact.
Table of contents
- Pre-migration checklist
- DNS cutover
- 301 redirects (page by page)
- Wildcard 301 (fallback)
- Update internal links and sitemaps
- Search Console
- Analytics
- Common pitfalls
- FAQ
Pre-migration checklist
- Register new domain.
- Set up SSL cert on new domain.
- Inventory all old URLs (sitemap, Search Console, analytics).
- Plan 1:1 redirect map (every old URL -> new URL).
- Set up monitoring (Search Console, uptime, analytics).
DNS cutover
Lower TTL to 60s at current registrar 24-48 hours before the move.
On migration day:
- Update old domain’s DNS to 301-redirect to new domain.
- Set new domain’s DNS to point to your hosting.
- Wait for DNS propagation (1-48 hours typically).
The team that has low TTL has fast propagation.
301 redirects (page by page)
Each old URL should 301-redirect to the equivalent new URL:
# nginx
server {
server_name old-domain.com www.old-domain.com;
return 301 https://new-domain.com$request_uri;
}
For per-page redirects:
location /old-page {
return 301 https://new-domain.com/new-page;
}
The team that does 1:1 redirects preserves SEO.
Wildcard 301 (fallback)
If you can’t map every URL, at least redirect everything:
location / {
return 301 https://new-domain.com$request_uri;
}
The team that has wildcard 301 has no 404s. The team that has per-page redirects has better SEO.
Update internal links and sitemaps
After migration:
- Update all internal links in your app/content.
- Submit new sitemap to Google Search Console.
- Update hardcoded URLs in code/configs.
- Update email templates, marketing materials.
The team that updates internal links has clean SEO and user experience.
Search Console
- Add new domain to Google Search Console.
- Submit new sitemap.
- Use ‘Change of Address’ tool for the old domain.
- Monitor crawl errors for 30-60 days.
The team that uses Search Console’s change of address tool has fastest SEO transfer.
Analytics
Update:
- Google Analytics: add new domain as new property, set up cross-domain tracking.
- Plausible/Fathom: update site URL.
- Internal dashboards.
The team that has analytics on new domain from day 1 has continuous measurement.
Common pitfalls
- Forgetting 301 redirects (404s kill SEO).
- Not updating internal links (waste of crawl budget).
- Missing Search Console change of address (Google treats as new site).
- Old domain 301 expires after 1 year (Google stops honoring).
- Mixed content issues (new site has http resources from old).
FAQ
How long does SEO take to transfer to new domain?
Weeks to months for full transfer. Google uses the 301 redirects and Search Console change of address. The team that has proper redirects has fastest transfer.
Can I migrate a subdomain to a new domain?
Yes - similar process. Update DNS, add 301 redirects from subdomain to new domain, update Search Console.
What if I don’t have time for 1:1 redirects?
Wildcard 301 from old -> new is better than nothing. The team that has at least wildcard has no 404s.
Should I keep the old domain registered?
Yes - keep it registered and 301-redirecting for at least 1 year. The team that lets it expire loses the redirect (and SEO).
How do I test the migration?
Use curl -I https://old-domain.com/some-page to check 301 response. Check Google Search Console for crawl errors. Monitor analytics for organic traffic drops.
If you are sizing the infrastructure for the kind of project this post covers, the RunxBuild hosting calculator is the right place to model the line items. The compute, the memory, the storage, the bandwidth, the database - each one is a separate number, and the team’s mental model for the platform is the sum of those numbers. The RunxBuild dashboard is where the team sees the actual usage in one place.
Useful related references: