How to change your domain or URL structure without losing SEO
A rebrand, a new domain or a URL clean-up all mean old addresses stop being the real ones. This guide covers the redirect map, Google Search Console steps, monitoring, and moving a domain between registrars, with notes for .au domains.
How do you change your domain or URL structure without losing SEO?
This moves a website to a new domain, or to new page addresses, while keeping its Google rankings. Every old address must permanently redirect (a 301 redirect) to its matching new address, and everything you control must point at the new addresses.
- Recommended route: Domain change with the same paths: one whole-domain 301 redirect plus Search Console Change of Address
- Order: Prepare both domains and the redirect map first, and make the new site complete before any redirect goes live.
- 7 phases: Prepare both domains, Build the redirect map, Set up redirects, Update your own signals, Launch, Monitor and Change registrar (optional).
- You're done when: Every old URL returns a single 301 to its mapped new URL, on every hostname variant, with no certificate warning.
Google says to expect rankings to move about while it recrawls: a medium site can take a few weeks or more to show the new addresses, larger sites longer. Google advises keeping the redirects for at least a year.
The simplest and safest move: one rule covers every page, and Google's Change of Address tool tells it directly about the new domain.
Other options and when to use them
- Staged: domain first, URL structure later (or the reverse): Both must change and the timeline allows two separate moves, each measured on its own.
- New domain and new URL structure at once: Splitting the work is not possible. Every old URL then needs its own mapping before launch.
- URL structure change on the same domain: The domain stays the same. Change of Address does not apply, so Google relies on the redirects alone.
Prepare both domains and the redirect map first, and make the new site complete before any redirect goes live. Then switch everything on the same day and tell Google. Change the platform, design or registrar on a different day, so you can tell what caused any drop.
- Platform or host changes, done and settled first (if any)If the domain, platform and design all change at once, you cannot tell which one caused a traffic drop.
- New domain registered and verified, old domain renewedChange of Address needs both domains verified in Search Console, and the old domain must keep answering with redirects for at least a year.
- Redirect map of every old URLThe redirect rules are written from it, and every test after launch checks against it.
- New site finished: HTTPS, canonical tags, internal links, sitemapWhen redirects go live, Google should find a consistent new site that points only at itself.
- Launch: redirects live and every old URL testedChange of Address checks that the old home page redirects, and broken redirects are cheapest to fix in the first hours.
- Change of Address for every old variant, and the new sitemap submittedTells Google directly about the move once the redirects are proven to work.
- Profiles, directories, ads and partner links updatedEvery link that points straight at the new domain is one less that depends on a redirect.
- Weekly monitoring, then a registrar change (if any) on another dayFixing 404s keeps rankings moving across, and a separate registrar change keeps DNS risk out of the launch.
Built-in and third-party tools treat these differently. Tick each one off once you have decided.
Download this checklist (Excel)How each tool handles it
Built-in methodGoogle: redirect each old URL to its matching new URL with a server-side permanent redirect (301 or 308). Client-side redirects are a last resort. Sending many old URLs to the home page shows up as soft 404s (pages Google treats as missing).Screaming Frog SEO SpiderList mode follows each old URL to its final address and reports hops, loops and temporary redirects.Tip: Build the list from the sitemap, Search Console, analytics and server logs, and include linked PDFs and images.
Google Search Central: Site moves with URL changesHow each tool handles it
Built-in methodGoogle: redirect to the final address directly. If that is not possible, keep chains short, ideally no more than 3 redirects and fewer than 5.Screaming Frog SEO SpiderReports the number of hops for each old URL, so you can find chains and loops.Tip: Check that no new URL is also an old URL, and put rules for changed paths above the whole-domain rule.
Google Search Central: Site moves with URL changesHow each tool handles it
Built-in methodChange of Address: does not move subdomains automatically, including www. Use it for every variant of the old domain, even ones not in use, and verify each one first. Moving http:// also covers https://.Screaming Frog SEO SpiderList mode can test the same paths on each hostname variant.Tip: Keep a valid certificate on every old hostname for as long as the redirects run, or visitors see a warning before the redirect.
Search Console Help: Change of Address toolHow each tool handles it
Built-in methodChange of Address: only for a new domain or subdomain. It is not for HTTP to HTTPS, www to non-www, path changes on the same site, or a hosting change with no URL change.Tip: For a path-only move on the same domain, rely on redirects and the new sitemap.
Search Console Help: Change of Address toolHow each tool handles it
Built-in methodChange of Address: you must be an owner of both the old and new properties with the same Google account, and the old home page must 301 to the new one before you submit.Tip: Use DNS verification, so the verification still works when every web page on the old domain redirects.
Search Console Help: Change of Address toolHow each tool handles it
Built-in methodRedirects: do not change the old domain wherever it is stored. Payment webhooks, sign-in callbacks and form posts often do not follow redirects.WP-CLI search-replaceRewrites every copy of the old domain in a WordPress database, including serialised plugin settings, with a --dry-run report first. It does not reach links hard-coded in theme files.Tip: On launch day, test a payment, a form and a sign-in on the new domain.
Google Search Central: Site moves with URL changesHow each tool handles it
Built-in methodGoogle: give each new URL a canonical tag that points to itself, and update any hreflang annotations (the tags that point to other language versions) to the new URLs.Tip: After launch, inspect your top pages in Search Console and check the Google-selected canonical is the new URL.
Google Search Central: Consolidate duplicate URLsHow each tool handles it
Built-in methodGoogle: submit the new sitemap in Search Console, after which you can remove the old one. Each sitemap file holds up to 50,000 URLs or 50 MB uncompressed.Tip: Split larger sites with a sitemap index, and reference the sitemap in the new robots.txt.
Google Search Central: Build and submit a sitemapHow each tool handles it
Built-in methodGoogle: set up a robots.txt for the new site, and remove any noindex or robots.txt blocks that were only needed for the migration.Tip: Check the live robots.txt and the page source of a few pages on launch day.
Google Search Central: Site moves with URL changesHow each tool handles it
Built-in methodGoogle: if you used a disavow file on the old site, upload it again in the new site's Search Console property.Tip: Download it from the old property before launch, so it is ready to upload.
Google Search Central: Site moves with URL changesHow each tool handles it
Built-in methodGoogle: keep redirects as long as possible, generally at least 1 year. Change of Address forwards signals for 180 days, after which Google treats the old site as unrelated. Google recommends keeping the old domain for at least a year.Tip: Renew the old domain for several years with auto-renew on, and keep it longer if old URLs still get traffic.
Search Console Help: Change of Address toolHow each tool handles it
Built-in methodWeb redirects cover web pages only. Mail to old addresses depends on the old domain's MX records (the DNS records that say which server receives its email).Tip: Keep the old domain as an alias in your mail service with its MX records unchanged, so replies and password resets still arrive.
How each tool handles it
Built-in methodGoogle: move small and medium sites all at once. Larger sites can move one section at a time. Avoid combining several old sites into one new site at the same time.Tip: If you move in sections, measure each one before starting the next.
Google Search Central: Site moves with URL changes
- 1
Prepare both domains
Before you startWatch out: A domain you bought may carry a manual action or removed URLs from its previous owner.
Ways around it
- Check the new domain's Manual actions and Removals reports in Search Console before the move.
Watch out: Changing domain, platform and design on the same day makes it impossible to tell what caused a traffic drop.
Ways around it
- Move platform or host first with URLs unchanged, let it settle, then change the domain.
Watch out: Google crawls the new server harder after a move, on top of normal visitors.
Ways around it
- Check the new host's resource limits and caching before launch, and watch load in the first weeks.
Check your DNS records before and after the change
Show the detailed steps (3) → - 2
Build the redirect map
Show the detailed steps (4) →Watch out: Sending many old URLs to the home page shows up as soft 404s (pages Google treats as missing).
Ways around it
- Map each URL to its closest match, or let removed content return 404.
- 3
Set up redirects
Show the detailed steps (5) →Watch out: Redirects do not change the old domain where it is stored, and payment webhooks, sign-in callbacks and form posts often do not follow them.
Ways around it
- Search your code and settings for the old domain, update each outside service on launch day, and test a payment, a form and a sign-in.
Tools that can do it
- WP-CLI search-replaceRewrites every copy of the old domain in a WordPress database, including serialised plugin settings, with a --dry-run report first.
- 4
Update your own signals
Watch out: A database search-replace does not reach menus and links hard-coded in themes.
Ways around it
- Click through menus with the browser's Network tab open, and fix any link that redirects.
Watch out: Replies and password resets to old email addresses bounce if the old domain stops receiving mail.
Ways around it
- Keep the old domain as an alias in your mail service with its MX records unchanged.
Show the detailed steps (5) →Watch out: Each sitemap file is limited to 50,000 URLs or 50 MB uncompressed.
Ways around it
- Split larger sites with a sitemap index.
- 5
Launch
On the agreed dayWatch out: Change of Address does not move subdomains, including www, and Search Console does not test every old URL on every variant.
Ways around it
- Submit Change of Address for each verified variant of the old domain.
Tools that can do it
- Screaming Frog SEO SpiderList mode follows each old URL on each hostname variant to its final address, and reports hops, loops and temporary redirects.
Watch out: Change of Address is only for a new domain or subdomain, not HTTP to HTTPS, www changes or path-only changes.
Ways around it
- For those moves, rely on the redirects alone.
Show the detailed steps (4) →Watch out: If the verification file or record disappears, you lose the old property's data and the move status.
Ways around it
- Use DNS verification, or keep the HTML verification file served outside the redirect rules.
- 6
Monitor
Weekly after launchShow the detailed steps (4) →Watch out: Rankings move about while Google recrawls, and reversing the move later is a second site move.
Ways around it
- Keep fixing 404s and chains rather than undoing the move. If you must go back, Google lets you cancel Change of Address within 180 days: remove the old redirects, redirect the new site back to the old one, then select Cancel Move.
- 7
Change registrar (optional)
Only if needed, on a different day from the moveWatch out: For .com and other generic domains, changing registrant details can start a 60-day transfer lock, and a domain registered or transferred in the last 60 days cannot move.
Ways around it
- Fix registrant details early, or wait out the 60 days.
Watch out: Some registrars require DNSSEC (a DNS security setting) to be removed before a transfer.
Ways around it
- Plan the DNSSEC handover with both registrars before you start.
Show the detailed steps (5) →Watch out: Each domain extension has its own transfer rules. .au domains follow auDA licensing rules.
Ways around it
- Check the current rules at auda.org.au, and with your registrar, before you start.
- Every old URL returns a single 301 to its mapped new URL, on every hostname variant, with no certificate warning.
- The Change of Address notification shows and the new sitemap has status Success.
- Forms, payments, sign-ins and email work on both domains.
- Indexed pages and clicks rise on the new property, and the list of 404s keeps shrinking.
Tools named in this plan are independent third-party products, not endorsed by the platform vendor and not paid placements. Check the tool's own documentation and run a pilot first.
What does each step involve?
Open a part when you reach it in the plan. Each step says where to go, what to do and what you should see.
About this migrationWhat it covers, limits at a glance
Google calls this a site move with URL changes. The core of it is simple: every old URL must permanently redirect to the matching new URL, and every signal you control (internal links, canonical tags, sitemaps, Search Console) must point at the new URLs.
Google says to expect temporary fluctuation in rankings while it recrawls and reindexes. Medium sites can take weeks; larger sites take longer. Careful mapping keeps that period short.
Moving platforms at the same time? See the Wix and Squarespace to WordPress guide or the WooCommerce to Shopify guide. For mail on the new domain, see DNS and email cutover.
1What you need before step one
| Need | Details | Where to get it |
|---|---|---|
| New domain | Registered in an account you control, with registrar lock, two-factor sign-in and auto-renew turned on. | Your domain registrar |
| Search Console ownership | Owner of both the old and the new property in one Google account, because Change of Address requires it. A Domain property is verified with a DNS TXT record. | Google Search Console (https://search.google.com/search-console) > + Add property |
| DNS access | Sign-in to the DNS host for both domains, for verification records and pointing the new domain at the new host. | Check DNS propagation |
| New site with HTTPS | Hosting for the new domain with a valid certificate, and no noindex or robots.txt block left from the build. | Your new host's control panel |
| Old server access | Permission to edit .htaccess (Apache) or root or sudo for the nginx server block, and a valid certificate kept on the old domain. | Set up 301 redirects |
| WP-CLI (WordPress sites) | To replace the old domain in the database with wp search-replace. | Install WP-CLI, change WordPress URLs |
| Backups | A copy of .htaccess or the nginx config, and a WordPress files and database backup if the site runs WordPress. | Back up a WordPress site |
| Redirect map | A spreadsheet of every old URL from the sitemap, Search Console, analytics and server logs, each mapped to one new URL. | URL redirect map (301s) template |
| curl | To test every redirect from a terminal (Terminal on macOS or Linux, Git Bash or WSL on Windows). | https://curl.se/ |
| Registrar transfer (only if changing registrar) | A record of every DNS record, a current registrant email, the domain unlocked and its authorisation code. | Change nameservers |
2Prepare both domains3 steps
- 1
Register and secure the new domain
Where: Your domain registrar's website, signed in to the account that will own the new domainSearch for and register the new domain (for example
contoso.com). In the domain's settings, turn on the registrar lock (often called transfer lock or domain lock), turn on two-factor sign-in for the registrar account, and set the domain to auto-renew. Keep the old domain registered too; Google recommends paying for the old domain for at least a year after a Change of Address.You should see: The new domain appears in your registrar's domain list as active, locked and set to auto-renew. The old domain is still listed with auto-renew on. - 2
Add both sites to Search Console
Where: Google Search Console (search.google.com/search-console) > property selector drop-down > + Add propertySign in with one Google account and use the same account for both sites, because the Change of Address tool requires you to be an owner of both properties. Select + Add property, choose a Domain property and enter only the root domain with no protocol and no www (for example
oldsite.com). A Domain property covers all subdomains and both http and https, and it must be verified with a DNS record: copy the record Search Console shows, add it at the domain's DNS host, then select Verify (or Verify later to save your progress). Repeat for the new domain. If you use URL-prefix properties instead, Google says to verify every variant of both sites: HTTP and HTTPS, www and non-www.You should see: Both the old and new properties are listed in the property selector as verified. Data starts to appear in the new property within a few days. - 3
Set up the new site with HTTPS
Where: Your new host's control panel, then the site's file manager or SFTP for robots.txtStand up the site on the new domain with a valid HTTPS certificate. If the site runs WordPress and is also changing host, follow the WordPress migration guide and take a backup first (back up a WordPress site). Add a
robots.txtin the web root that blocks only the paths you want blocked. Google says it is fine to have no robots.txt as long as the missing file returns a proper 404. Remove any migration-onlynoindexrules before launch.curl -I https://www.contoso.com/ curl -I https://www.contoso.com/robots.txtYou should see: The home page returns HTTP 200 with no certificate warning in a browser. robots.txt returns 200 with your rules, or 404 if you chose not to have one.
3Build the URL redirect map4 steps
Google says to build the old URL list from sitemaps, server logs, analytics and your CMS, and record where each should redirect.
- 1
Collect every old URL
Where: Your redirect map spreadsheet (URL redirect map (301s) template), filled from the old sitemap, Search Console, your analytics tool and the old server's logsPaste into one column: every URL in the old XML sitemap (for example
https://www.oldsite.com/sitemap.xml), the pages listed in the old property's Search Console Performance report, landing pages from your analytics tool, URLs found in server logs, and pages listed in your CMS. Google also suggests the Links report in Search Console for old URLs other sites link to. Include PDFs, images, videos, JavaScript and CSS files that are linked or get search traffic. Then remove duplicates (in Excel or Google Sheets, use Remove duplicates on the column).You should see: One de-duplicated column of old URLs, one per row, with nothing you know of missing. - 2
Map each old URL to one new URL
Where: The same spreadsheet: add a New URL column next to each old URLFor each row, enter the most relevant new URL as a full absolute address. Google advises against sending many old URLs to an unrelated page such as the new home page; content that was merged can redirect to the combined page. If a page is gone with no replacement, write
404or410in the New URL column and let it return that status.You should see: Every row has either a new URL or a 404/410 marker. No large group of rows points at the home page. - 3
Remove redirect chains
Where: The same spreadsheet, plus any redirect rules left from earlier moves on the old serverRedirect each old URL straight to its final destination. Sort or filter the New URL column and check that none of the new URLs is itself listed as an old URL in another row. If the site has been moved before, update those earlier redirects so they point at the new final URLs too.
You should see: No new URL appears in the Old URL column, and older redirect rules point at final URLs on the new domain. - 4
Keep the map as a living file
Where: The same spreadsheet, stored where the whole project team can edit itUse these columns: Old URL, New URL, Status (301, 404 or 410), Test result and Date added. You will add rows as 404s appear after launch, and the Old URL column becomes the input file for the redirect test in Step 5.
You should see: A shared spreadsheet with those five columns that the person deploying redirects can open.
4Implement 301 redirects5 steps
Use server-side permanent redirects. Google says 301 and 308 mean a page has permanently moved, and the new target is shown in search results.
- 1
Whole-domain redirect on Apache
Where: The old site's web server: the .htaccess file in the document root (open it over SFTP or SSH), or the Apache virtual host file for the old domainDownload a copy of
.htaccessas a backup first. When paths stay the same and only the domain changes, one rule can redirect every path. Put these lines at the top of the file, above any# BEGIN WordPressblock, and changeoldsiteandcontoso.comto your domains. The 301 redirects how-to covers Apache, nginx and the WordPress plugin route in full.RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?oldsite\.com$ [NC] RewriteRule ^ https://www.contoso.com%{REQUEST_URI} [R=301,L]You should see: The file saves, andcurl -I https://www.oldsite.com/any-page/returns a 301 withLocation: https://www.contoso.com/any-page/. - 2
Whole-domain redirect on nginx
Where: SSH session to the old site's server: the site's configuration file (for example /etc/nginx/sites-available/oldsite.com or /etc/nginx/conf.d/oldsite.com.conf)Back up the file, then add a server block for the old domain that returns 301 for every request. The nginx equivalent keeps the full path and query string. Keep the certificate lines for the old domain in the block. Test the configuration with
sudo nginx -tand, only if it passes, reload withsudo systemctl reload nginx.server { listen 443 ssl; server_name oldsite.com www.oldsite.com; # ssl_certificate lines for the OLD domain go here return 301 https://www.contoso.com$request_uri; }You should see: nginx -t reports the syntax is ok and the test is successful, and old URLs return 301 to the same path on the new domain. - 3
Add rules for paths that change
Where: The same .htaccess file or nginx server block on the old serverWhen the URL structure also changes, add one rule per row of your map that has a different path, more specific rules first and above the whole-domain rule. On Apache use
Redirect 301 /old-path/ https://www.contoso.com/new-path/; on nginx use alocation = /old-path/ { return 301 https://www.contoso.com/new-path/; }block. See the 301 redirects how-to for the syntax and testing.Redirect 301 /services.html https://www.contoso.com/services/ Redirect 301 /about-us/ https://www.contoso.com/about/You should see: Each changed path returns a 301 to its own new URL, not to the home page. - 4
Update URLs stored in WordPress
Where: SSH session to the new server, in the WordPress folder (the one containing wp-config.php), with WP-CLI installedWordPress stores full URLs in the database, so change them to the new domain. If
wp --infofails, install WP-CLI first. Export a database backup, run the dry run, check the counts, then run the same command without--dry-run.--skip-columns=guidleaves the GUID column alone. The search-replace how-to covers plugin tables and other forms of the old address.wp db export before-domain-change.sql wp search-replace 'https://www.oldsite.com' 'https://www.contoso.com' --skip-columns=guid --dry-run wp search-replace 'https://www.oldsite.com' 'https://www.contoso.com' --skip-columns=guidYou should see: The dry run prints a table of replacements per table and column. The real run ends with a Success line giving the number of replacements made, andwp option get homeprints the new address. - 5
Keep HTTPS on the old domain
Where: The old host's control panel (its SSL or certificates section) or the server that answers for the old domainVisitors and links use https:// on the old domain. Keep a valid certificate for every old hostname (with and without www) on the old host for as long as the redirects run, or browsers will show errors before the redirect happens. Check the expiry date and keep auto-renewal on.
curl -vI https://www.oldsite.com/ 2>&1 | grep -i -E "expire date|^< HTTP|^< location"You should see: An expire date in the future, a 301 status and a location header on the new domain. Opening https://oldsite.com in a browser shows no certificate warning.
5Update canonicals, links and sitemaps5 steps
- 1
Canonical tags
Where: The new site's page templates or SEO plugin settings; check the result in a browser with View Page SourceEvery new page should carry a self-referencing canonical that uses an absolute URL on the new domain. Google treats rel="canonical" as a strong signal, second only to redirects. Make sure no template still outputs the old domain.
<link rel="canonical" href="https://www.contoso.com/services/" />You should see: View Page Source on a sample of pages shows a canonical tag with that page's own URL on the new domain. - 2
Internal links
Where: The new site's CMS: menus, page and post content, widgets and footers (for WordPress, the search-replace from Step 3 covers stored content)Change internal links from old URLs to new URLs. Google says to do this immediately after the move starts to reduce redirect hops and server load. Check menus and hard-coded links in themes, which a database search-replace does not reach.
You should see: Clicking through menus and key pages never passes through a redirect; a browser developer tools Network tab shows 200 responses, not 301s, for internal links. - 3
hreflang
Where: Wherever the site declares hreflang: page templates, HTTP headers or the XML sitemapIf you use hreflang annotations, update every
hrefin them to the new URLs.You should see: View Page Source (or the sitemap) shows hreflang links that all point at the new domain. - 4
New sitemap
Where: The new site's web root, or your CMS or SEO plugin's sitemap setting, and the robots.txt fileCreate a sitemap of the new URLs. Use absolute URLs. Each sitemap file is limited to 50,000 URLs or 50 MB uncompressed; split larger sites with a sitemap index. Reference it in robots.txt with the line below.
Sitemap: https://www.contoso.com/sitemap.xmlYou should see: https://www.contoso.com/sitemap.xml opens in a browser and lists only new-domain URLs, and robots.txt shows the Sitemap line. - 5
External links
Where: Each external account you control: Google Business Profile, social media profiles, directory listings, email signature settings and ad platformsChange the website address in each profile and ad. Update email signatures. Then ask the sites that send you most traffic (from your analytics referrals report) to update their links.
You should see: Each profile and active ad shows the new domain. You have a list of external sites asked to update, with the date you asked.
6Launch and use the Change of Address tool4 steps
- 1
Switch on the redirects and test them
Where: The old server (deploy the rules), then Terminal (macOS, Linux) or Git Bash/WSL on Windows on your PC for testingDeploy the redirects. Copy the Old URL column of your map into a text file named
old-urls.txt, one URL per line, and run the loop below from the folder that holds it. Google suggests the URL Inspection tool for individual URLs and command-line tools for larger sets. Record failures in the Test result column and fix them.while read url; do printf "%s -> " "$url" curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" "$url" done < old-urls.txtYou should see: Every line prints 301 followed by the matching new URL from your map. Rows marked 404 or 410 print that status. - 2
Submit the new sitemap
Where: Google Search Console > new site's property > Sitemaps reportFirst inspect the sitemap URL with the inspection bar at the top of Search Console, select Test live URL and check that Page fetch shows Successful. Then open the Sitemaps report, paste the sitemap URL into Add a new sitemap and select Submit. Google also says to remove the old sitemap once the move starts.
You should see: The sitemap is listed under submitted sitemaps with status "Success". If it shows "Has errors" or "Couldn't fetch", select the row for details. - 3
Submit Change of Address
Where: Google Search Console with the old domain-level property selected, at search.google.com/search-console/settings/change-addressMake sure the old home page already returns a 301 to the new home page. Open the Change of Address tool from the old site's domain-level property, select the new property and follow the on-screen instructions. The tool runs pre-move checks: critical failures must be fixed, warnings do not block it. The tool does not move subdomains such as www, so repeat it for every variant of the old domain you have verified (www, non-www and any other subdomains).
You should see: Search Console shows a notification on the sites involved that the move is in progress. The notification stays for 180 days. - 4
Know when not to use it
Where: Your SEO migration checklist, decided before launch dayDo not use Change of Address for HTTP to HTTPS moves, www to non-www changes, or path-only changes on the same domain. Google works those out from the redirects. Record which case your move is.
You should see: The checklist states whether this move needs Change of Address (new domain or subdomain) or relies on redirects alone.
7Monitor the move4 steps
- 1
Watch both properties
Where: Google Search Console > Performance report, for the old and the new property in turn; plus your analytics toolGoogle says to monitor traffic on both old and new sites. Compare clicks and impressions week by week, and check landing pages in analytics.
You should see: Traffic falls on the old property and rises on the new one, with new URLs starting to show impressions and clicks. - 2
Check indexing reports
Where: Google Search Console > new site's property > Pages report (formerly Index Coverage) and Sitemaps reportOpen the Pages report and look at the reasons pages are not indexed. Investigate URLs listed as "Not found (404)" or "Page with redirect" that should not be there. In the Sitemaps report, compare indexed counts for the new sitemap over time.
You should see: Indexed pages rise on the new property and fall on the old one. Any unexpected 404 is added to the map. - 3
Read server logs
Where: The old server's access log: your host's log viewer, or over SSH (for example /var/log/nginx/access.log or /var/log/apache2/access.log)Look for old URLs that return 404 on the old host, add them to the map, and deploy new redirects. The command below lists the most requested 404 paths in a standard combined-format log.
grep '" 404 ' /var/log/nginx/access.log | cut -d '"' -f2 | cut -d ' ' -f2 | sort | uniq -c | sort -rn | head -50You should see: A ranked list of paths returning 404. After you add redirects, those paths stop appearing in new log entries. - 4
Inspect key pages
Where: Google Search Console, new site's property: the inspection bar at the top of any screenPaste the full URL of each top page and press Enter. Check that Google-selected canonical shows the new URL. You can select Request indexing, but Google does not guarantee it and daily limits apply; for many pages the sitemap is the better route.
You should see: "URL is on Google" with the Google-selected canonical on the new domain. A page that still shows "URL is not on Google" may simply not be recrawled yet.
8Transferring a domain between registrars5 steps
Changing registrar is separate from changing domain name. You can do it before or after a site move, but not on the same day. Each domain extension has its own registry rules, so check the current transfer and eligibility rules for yours before you start. For example, .au domains are administered under auDA's licensing rules, which differ from .com rules and are published on auda.org.au.
- 1
Record all DNS records
Where: The DNS management page at your current DNS host (often the registrar's control panel), plus Terminal or Command Prompt for a cross-checkExport the zone file if the host offers one, or screenshot every record and copy it into the DNS cutover record sheet: type, name, value, priority and TTL for every A, AAAA, CNAME, MX and TXT record (SPF, DKIM, DMARC, verification). Most registrars do not copy DNS settings during a transfer, and email stops if MX records are lost. Use the lookups below to check nothing was missed.
dig +short NS contoso.com dig +short A contoso.com dig +short CNAME www.contoso.com dig +short MX contoso.com dig +short TXT contoso.com dig +short TXT _dmarc.contoso.comYou should see: Every value dig returns is already in your record sheet. - 2
Check registrant details
Where: Your current registrar's control panel: the domain's registrant contact detailsMake sure the registrant contact email is current, because transfer codes and confirmations go there. Turn off private registration or privacy forwarding if your registrar says it hides transfer emails (Wix asks you to disable Private Registration). Changing registrant details can start a 60-day transfer lock, so fix them early.
You should see: The registrant email is an inbox you can read today, and the registrar shows no active transfer lock period. - 3
Unlock the domain and get the authorisation code
Where: Your current registrar's control panel. Squarespace: domains dashboard (account.squarespace.com/domains) > the domain. Wix: Domains page > Domain Actions icon next to the domainTurn off the transfer lock, then request the domain's transfer authorisation code (also called the domain password, auth code or EPP code). On Squarespace, switch Domain Lock off and select Request transfer code, then confirm your password. On Wix, select Transfer away from Wix, then Transfer Domain and I Still Want to Transfer. Domains bought or transferred in the last 60 days cannot move yet.
You should see: The domain shows as unlocked and the code arrives at the registrant email (Squarespace sends it from no-reply@squarespace.com with the subject "Auth code for" your domain). Only the newest code works. - 4
Start the transfer at the new registrar
Where: The new registrar's website: its domain transfer page, signed in to your account thereEnter the domain and the code, then complete payment and any eligibility confirmations it asks for (for .au domains, the registrant and eligibility details auDA rules require). Approve any confirmation email from either registrar.
You should see: The new registrar lists the transfer as pending. Wix says transfers usually take up to 7 days and Squarespace says up to 15 days; the domain then appears as active at the new registrar. - 5
Re-create DNS and confirm
Where: The new DNS host's DNS management page, then Terminal (dig) or Command Prompt (nslookup) on your PCIf DNS was hosted by the old registrar, re-create every record from your record sheet at the new DNS host before the old one stops answering, then point the nameservers at the new host (see change nameservers). Check the results with the lookups below, or follow check DNS propagation.
dig +short NS contoso.com dig +short MX contoso.com dig +short TXT contoso.comYou should see: NS returns the new DNS host's nameservers, and MX and TXT return the same values as your record sheet. Test emails to the domain arrive.
What can go wrong, and how do you avoid it?
The detail behind the plan: options compared, and what experienced engineers check first. Tap any item.
Compare all the ways to do this4 options
Domain change only, same paths
Low effortBest for: Rebrands or domain consolidation where every page keeps the same path on the new domain
- One whole-domain redirect rule covers every page, so the map is simple
- You can use the Search Console Change of Address tool
- Easy to test: every old URL should land on the same path on the new domain
- Still need to update canonicals, internal links, hreflang and sitemaps
- Expect temporary ranking fluctuation while Google recrawls
URL structure change on the same domain
Medium effortBest for: Restructures, CMS changes or permalink changes where the domain stays the same
- No domain, DNS or email changes
- Signals stay on the same Search Console property
- Every changed path needs its own redirect rule in the map
- Change of Address does not apply: Google relies on the redirects alone
New domain and new URL structure at once
High effortBest for: Platform moves that also change the domain, when splitting the work is not possible
- One cutover and one period of ranking fluctuation
- Change of Address can still be used for the domain part
- Every old URL needs an individual mapping to its final new URL
- When rankings drop it is harder to tell whether the domain or the paths caused it
Staged: change the domain first, the URL structure later (or the reverse)
Medium effortBest for: Larger sites where search traffic matters most and the timeline allows two separate moves
- Each change can be measured and fixed on its own
- Smaller redirect map for each stage
- Two recrawl periods instead of one
- At the second stage, update the first set of redirects to point at the final URLs so you do not create chains
Change one thing at a time when you can. If the domain changes and the paths do not, a whole-domain redirect plus Change of Address is the simplest and safest move. If both must change, stage them where the timeline allows, and if they must happen together, build a complete one-to-one redirect map before launch.
Keep the old domain for years, not monthsReduces risk
Google says to keep redirects for at least a year, and from a visitor's point of view indefinitely. If the old domain lapses, every backlink, bookmark and printed address breaks, and someone else can register it.
Renew the old domain for several years and keep auto-renew on with a payment card that will not expire soon. Keep its hosting or redirect service running as long as the domain is registered.
Change one thing at a timeReduces risk
A new domain, a new platform, a redesign and a new URL structure on the same day make it impossible to tell which change caused a drop in traffic, and multiply the redirect rules you need.
Where you can, move platform or host first with URLs unchanged, let it settle, then change the domain. If paths must change too, map them in the same redirect file so each old URL still makes a single hop.
Cover every hostname variantPerformance
Old links point at http and https, www and non-www, and sometimes other subdomains. Change of Address does not move subdomains below the domain, including www, and Google says to submit it for every verified variant.
List every hostname the old site answered on. Make sure each has a valid certificate and a redirect, and is verified in Search Console, then submit Change of Address for each.
Search Console does not test every old URL on every hostname variant. A crawler in list mode can request a list of old URLs on each variant (http, https, www, non-www), follow each redirect to its final address and report the number of hops, loops and temporary redirects.
- Screaming Frog SEO SpiderList mode with "Always Follow Redirects" and the All Redirects report shows each URL's final address and hop count.
Email addresses on the old domainUser impact
A domain change usually means new email addresses too. If the old domain stops receiving mail, customers' replies and password resets to old addresses bounce.
Add the new domain to your mail service, keep the old domain as an accepted or alias domain with its MX records unchanged, and update signatures. See the DNS and email cutover guide.
Find hard-coded URLs outside the websiteReduces risk
Payment gateway return and webhook URLs, sign-in redirect URLs, API callbacks, tag manager and analytics settings, CDN rules and ad final URLs all hold the old domain. Redirects do not always work for these (webhooks and form posts often do not follow them).
Search your code and configuration for the old domain, and list every third-party service the site talks to. Update each to the new domain on launch day and test a payment, a form and a sign-in.
Redirects do not change the old domain where it is stored. On a WordPress site, WP-CLI rewrites every copy of the old domain in the database in one pass, including serialised plugin settings that a plain SQL replace would corrupt. Services outside the site still need updating by hand.
- WP-CLI search-replaceSearches and replaces strings across database tables, handles PHP serialised data, and has --dry-run to report what would change before saving.
Keep Search Console verification workingReduces risk
Google says to keep both sites verified after the move, and to keep all old-domain variants verified. If the verification file or DNS record disappears when the old site is replaced by redirects, you lose the old property's data and the Change of Address status.
Use DNS verification for Domain properties, or leave the HTML verification file served on the old host outside the redirect rules. Re-upload any disavow file to the new property.
Check the history of a domain you boughtReduces risk
If the new domain was owned before, it may carry a manual action or removed URLs from the previous owner, which affect the site you move onto it.
Verify the new domain in Search Console before the move and check the Manual actions and Removals reports. Resolve anything there before you start redirecting.
Expect heavier crawling on the new serverPerformance
Google says to check that the server can handle the extra Googlebot crawling after a move, on top of normal visitors following redirects.
Check the new host's resource limits and caching before launch, and watch server load and error rates in the first weeks.
Pick a quiet period for the switchCost lever
Google says to expect temporary ranking fluctuation while it recrawls. A move during your busiest season risks revenue when you can least afford it.
Schedule the move outside peak trading, with staff available for a few days afterwards to fix 404s and redirect errors as they appear.
Ask the biggest referrers to update their linksSaves time
Redirects pass signals, but every redirect is slower for visitors. Google suggests updating your own links first, then external links, starting with the sites that send most traffic.
Export referral sources from analytics and the top linking sites from Search Console's Links report, then contact the top few with the exact old and new URLs.
How do you check it worked, or roll back?
Full validation checklist9 checks
Run these before you declare the migration complete. Record the results in the data validation report.
| Check | How to check | What good looks like |
|---|---|---|
| Every old URL in the map returns the right redirect | Run the | Every row prints 301 followed by its mapped new URL in a single hop. Rows marked 404 or 410 return that status. |
| Every old hostname redirects over HTTPS without a certificate warning | For each hostname variant (with and without www) run | An expire date in the future, a 301 status and a location header on the new domain for every variant. |
| New pages carry the right signals | Use View Page Source on a sample of pages, and inspect key URLs with the URL Inspection tool in the new property. | Self-referencing canonicals and hreflang links on the new domain, and the Google-selected canonical shows the new URL. |
| No internal link or stored URL still points at the old domain | On WordPress sites run | The database search finds no content references to the old domain (GUIDs aside), and menu clicks return 200 without a redirect. |
| Search Console has the move and the new sitemap | In Google Search Console open the old property and check the Change of Address notification, then open the new property's Sitemaps report. | The move-in-progress notification shows on both sites, and the new sitemap has status Success. |
| Indexing and traffic move to the new property | Each week compare the Performance report and the Pages report for the old and the new property, and check landing pages in your analytics tool. | Indexed pages and clicks rise on the new property and fall on the old one, and unexpected 404s are added to the map. |
| Email and DNS on both domains still work | Run | MX and TXT records match your DNS cutover record sheet, and both test emails arrive. |
| Forms, payments and sign-ins work on the new domain | Submit a form, make a test payment and sign in through any third-party service you listed during planning. | Each test completes on the new domain without an error about the domain or a callback address. |
| The old server logs show only redirects | Run the 404 log command from Step 6 against the old server's access log. | New log entries show 301 responses, and the list of 404 paths shrinks after each round of fixes. |
Rollback planIf it goes wrong
Roll back if
- Redirect tests show many old URLs returning 404, chains or the wrong page, and you cannot fix them within the agreed launch window
- Visitors see certificate warnings on the old or new domain that cannot be fixed quickly
- Checkout, sign-in or a key form fails on the new domain
- Email to the old or new domain stops after a DNS or registrar change
- The Change of Address pre-move checks show critical failures you cannot resolve
Point of no return
Google lets you cancel a Change of Address request for 180 days after you make it, so the move itself can be reversed. Rankings cannot simply be switched back: once Google has recrawled and followed the redirects, reversing the move is a second site move, with another period of ranking fluctuation. Decide quickly. The things that cannot be undone are letting the old domain lapse (someone else can register it) and a completed registrar transfer, which can only be moved again under the registrar's normal transfer rules.
- 1
Remove the redirects from the old site
Where: The old site's web server: the .htaccess file in the document root, or the nginx server blockRestore the copy of .htaccess (or the nginx configuration file) you saved before adding the redirects, then test the configuration and reload nginx. Google says to remove the old redirects first, otherwise it may keep following them.
sudo nginx -t sudo systemctl reload nginx curl -I https://www.oldsite.com/You should see: Old URLs return 200 from the old site again instead of a 301. - 2
Redirect the new domain back to the old one
Where: The new site's web server (.htaccess or nginx server block)Add whole-domain 301 redirects from the new domain to the old domain, the reverse of Step 3, so links and pages Google already found on the new domain lead back.
RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?contoso\.com$ [NC] RewriteRule ^ https://www.oldsite.com%{REQUEST_URI} [R=301,L]You should see: curl -I https://www.contoso.com/any-page/ returns 301 with Location: https://www.oldsite.com/any-page/. - 3
Cancel the Change of Address
Where: Google Search Console with the old domain-level property selected > Settings > Change of AddressSelect Cancel Move. Repeat for each old property you submitted.
You should see: The move-in-progress notification no longer shows for the old property. - 4
Restore stored URLs and sitemaps
Where: SSH session in the WordPress folder on the site that will serve the old domain, with WP-CLIIf you ran search-replace on a site that will serve the old domain again, either import the database export you took before the change (this also discards content edited since), or run the replacement in reverse, dry run first. Then resubmit the old sitemap in the old property.
# Option 1: restore the export wp db import before-domain-change.sql # Option 2: reverse the replacement wp search-replace 'https://www.contoso.com' 'https://www.oldsite.com' --skip-columns=guid --dry-runYou should see: wp db search 'contoso.com' finds no content references, and the old sitemap shows status Success in Search Console. - 5
Put DNS and profiles back
Where: Your DNS host, then each external profile you changed (Google Business Profile, social profiles, ads)Restore any DNS records you changed from your DNS cutover record sheet, and change profile and ad website addresses back to the old domain.
dig +short A oldsite.com dig +short MX oldsite.comYou should see: dig returns the values in your record sheet, and profiles show the old domain.
Agree the triggers and who decides before the go / no-go meeting. Use the rollback plan template.
Common problems and fixes6 errors
Rankings and traffic dropped after the moveCause: Google is recrawling and reindexing; or redirects are missing, chained or pointing to unrelated pages.
Fix: Check the redirect map against server logs, fix chains and catch-all redirects, and keep monitoring. Google says temporary fluctuation is normal.
Change of Address pre-move check fails on the home page redirectCause: The old home page does not return a 301 to the new home page.
Fix: Add a permanent server-side redirect from the old home page and re-run the tool.
Change of Address option missingCause: The old property is a URL-prefix for a path, not a domain-level property, or you do not own both properties with the same account.
Fix: Use a domain-level property and verify both sites with the same Google account.
Browser certificate warning on old URLsCause: The old domain no longer has a valid HTTPS certificate on the server doing the redirects.
Fix: Install a certificate for the old domain names on the redirect host.
Soft 404s reported on the new siteCause: Many old URLs redirect to the home page or a generic page.
Fix: Map each old URL to the closest matching page, or let removed content return 404.
Email stopped after the registrar transferCause: DNS was hosted at the old registrar and MX, SPF and DKIM records were not re-created.
Fix: Re-create the records at the new DNS host from your saved copy.
Frequently asked questions
How long should I keep 301 redirects after changing domain?
Google says as long as possible, generally at least one year, and longer if the old URLs still receive search traffic.
Do I need to use the Change of Address tool?
Use it when you move to a new domain or subdomain. Do not use it for HTTP to HTTPS, www changes or path changes on the same domain.
Will I lose rankings when I change domain?
Google says to expect temporary ranking fluctuation that settles over time. Good one-to-one redirects and updated signals are what limit the impact.
Should I redirect everything to the new home page?
No. Google advises against redirecting many old URLs to an unrelated page. Map each URL to its closest equivalent.
Can I change registrar and domain name at the same time?
You can, but do them on different days so you can tell which change caused any problem.
Where do I check the rules for .au domain transfers?
auDA publishes the licensing and transfer rules for .au domains at auda.org.au. Your registrar can also confirm its own process.
Official sources
10 official pages this guide is based on
Vendors change limits and features, so confirm details on the source before you rely on them. Last checked 4 Nov 2026.