Domain Migration with SEO Preservation
Domain change is one of highest-risk SEO scenarios. Search engines perceive new domain as new site. Proper preparation reduces ranking loss from 50–80% to 10–20% and recovery time from 6–12 months to 2–4.
Pre-Domain Change Checklist
4+ weeks before:
- Get new domain and configure hosting
- Deploy site copy on new domain
- Generate list of all old domain URLs (Screaming Frog, sitemap)
- Register new domain in Google Search Console and Yandex Webmaster
1 week before:
- Set up all 301 redirects (old → new domain)
- Update internal links in content to new URLs
- Update canonical URLs
- Check hreflang if multilingual site
Day X:
- DNS switch
- Check redirect functionality
- Submit Change of Address in GSC
301 Redirects: Nginx
# Old domain: redirect everything to new one
server {
server_name old-domain.com www.old-domain.com;
return 301 https://new-domain.com$request_uri;
}
301 Redirects: Apache (.htaccess)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?old-domain\.com$ [NC]
RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,L]
Change of Address in Google Search Console
GSC → Old Property → Settings → Change of Address → Select new property.
Requirements:
- Both domains verified in GSC
- 301 redirects active for minimum 180 days
- Site accessible on new domain
Updating Backlinks
Send emails to site owners with most links to your domain. Tools: Ahrefs, Majestic, Semrush for finding backlinks.
Update in Yandex.Webmaster
Yandex doesn't have automatic Change of Address. Need to:
- Add new site to Webmaster
- Add sitemap of new domain
- Yandex will pick up 301 redirects automatically within 2–8 weeks
Monitoring After Switch
# Script to check keyword positions via Semrush API
import requests
def check_keyword_positions(domain, keywords):
positions = {}
for kw in keywords:
resp = requests.get(
'https://api.semrush.com/',
params={
'action': 'report',
'type': 'domain_organic',
'key': SEMRUSH_KEY,
'domain': domain,
'phrase': kw,
'database': 'ru',
}
)
positions[kw] = parse_position(resp.text)
return positions
Track weekly first 3 months. Typical behavior:
- Week 1–2: 20–40% drop
- Week 3–6: stabilization
- Month 2–4: recovery to 80–95% of original
Full preparation and domain migration execution — 1–2 weeks of work.







