Real fixes from seven live sites. No pitch.Log in / My reports
Idea to Traffic Pressure Test

How to Move Your Site to a New Domain Without Losing Rankings

Keep every path the same, add a permanent 301 redirect from each old URL to its matching new URL, then verify both domains in Search Console and file a Change of Address from the old property. Expect a few weeks of fluctuation, and keep the redirects and the old domain for at least a year.

Changing a domain is one of the few SEO moves where Google gives you an official procedure. Follow it and most sites see a dip of a few weeks, then settle back where they were. Skip a step, usually the redirects, and the new domain starts from close to zero while the old one quietly drops out of the index. This guide walks through the order that works for a small or medium site, with Cloudflare examples since that is where many new sites live.

Before you touch DNS: three decisions

Change one thing at a time. Google's site move guide says that if you combine a domain move with a redesign or new URL structure, you will probably lose some traffic while Google reassesses each page. Move the domain first with the exact same paths, page titles and content. Redesign a month or two later, once traffic has stabilized.

Keep the paths identical. If oldsite.com/pricing becomes newsite.com/pricing, one redirect rule covers the whole site. If paths change, you need a mapping file with one row per URL, and every row you forget becomes a 404 that loses the links pointing at it.

Keep paying for the old domain. Google's Change of Address help recommends holding the old domain for at least a year so nobody else can register it and abuse your old backlinks. In practice, keep it as long as it still gets any traffic. A domain renewal costs roughly $10 to $15 a year, which is cheap insurance.

Also, do not merge several old sites into the new domain at once. Google specifically warns that moving sites A, B and C into D together can cause confusion and traffic loss. Move one, wait for traffic to settle, then move the next.

Step 1: build the URL map from real data

Your redirect list should come from every URL Google and visitors actually use, not only the pages you remember. Pull three lists and combine them:

  1. Your current sitemap. Download it with curl -s https://oldsite.com/sitemap.xml | grep -o '<loc>[^<]*' | sed 's/<loc>//' > urls.txt.
  2. Search Console: Performance > Search results, set the date range to the last 16 months, open the Pages tab and export. This catches old URLs that still earn impressions but are no longer in the sitemap.
  3. GA4: Reports > Engagement > Pages and screens, switch the dimension to page path, and export the last 12 months.

Deduplicate the list. If your paths stay the same, this file is your test list rather than a mapping file. If any path changes, add a second column with the new URL for each row.

Step 2: set up permanent redirects on the old domain

Google asks for server side permanent redirects (301 or 308) from every old URL to its matching new URL. Not a redirect to the homepage: a redirect from each page to its equivalent page. Redirecting everything to the new homepage is treated much like a soft 404 and throws away the value of deep links.

If the old domain is on Cloudflare and paths are unchanged, one dynamic rule handles it. The old zone needs a proxied DNS record so traffic reaches Cloudflare at all. If nothing else lives on the old domain, Cloudflare's documented approach is a stand-in record: type AAAA, name @, content 100::, proxy status Proxied. Add the same for www.

Then go to the old domain in the dashboard, Rules > Redirect Rules > Create rule, and use:

  • If incoming requests match: All incoming requests
  • Then: type Dynamic, expression concat("https://newsite.com", http.request.uri.path)
  • Status code 301, and tick Preserve query string

If paths change, use Bulk Redirects at the account level instead: upload your mapping as a CSV list, then create a Bulk Redirect rule that enables the list. Each row can keep the query string and match subpaths if you need it to.

Hosting the new site on Cloudflare Pages? Add newsite.com as a custom domain under Workers & Pages > your project > Custom domains before you switch the redirects on, so visitors never land on a 522 error.

Step 3: test every redirect before you tell Google

Run your whole URL list through a loop that prints the status code and destination for each one:

while read u; do
  curl -s -o /dev/null -w "%{http_code} %{redirect_url}  <- $u\n" "$u"
done < urls.txt

Every line should show 301 and the matching new URL. Things to look for:

  • Chains. http://oldsite.com going to https://oldsite.com, then www, then the new domain is three hops. Point every variant straight at the final URL.
  • 302s. Some hosts and plugins default to temporary redirects. Change them to 301.
  • The www variant. Test https://www.oldsite.com/some-page too. It is the variant people most often forget.
  • The new pages themselves. Each destination must return 200, carry a canonical tag pointing at its own new URL, and not be blocked by robots.txt or a noindex tag.

To spot check the new domain's basics (canonical, robots, sitemap, status codes) in one pass, you can run it through the free site checker.

Step 4: verify both domains and file the Change of Address

In Search Console, add the new domain as a Domain property and verify it with a DNS TXT record. The old one must stay verified too, and you have to be an owner of both properties under the same Google account. Then:

  1. Submit the new sitemap under Indexing > Sitemaps on the new property. Every URL in it should use the new domain.
  2. Open the old property and go to Settings > Change of address.
  3. Pick the new property and run the checks. Google confirms you own both sites and that a sample of pages return 301s to the new domain. A failed critical check blocks the move until you fix it.

Note what the tool does not do. It is not used for an http to https switch, a www to non-www change, moving paths within one site, or a hosting change with no visible URL change. It also does not move subdomains under the property automatically, so if www.oldsite.com or blog.oldsite.com served pages, file a move for each one.

What to expect in the first 180 days

Google says to expect temporary ranking fluctuation. For a medium site it can take a few weeks or more before the new URLs show in results, because Googlebot has to recrawl each old and new URL at least once, and the move happens page by page. The Change of Address notice stays on the old property for 180 days, and that is the window in which Google forwards signals and favours the new URLs.

A sensible weekly check during that window:

  • New property, Pages report: indexed count should climb toward your old total.
  • Old property, Performance: clicks should fall as the new property's clicks rise. The two lines crossing is the sign the move is working.
  • Old property, Pages report: "Page with redirect" should grow. That is the correct status for old URLs.
  • Backlinks: email the sites that send you the most referral traffic and ask them to update the link. Direct links beat redirected ones over the long run.

Keep the redirects live for at least a year, and ideally for good. Google treats the old domain as an unrelated site once the 180 days end if it is still crawlable, and old bookmarks and links keep arriving for years.

If you run AdSense, add the new domain under Sites in your AdSense account and put a correct ads.txt file on it before the switch. A new domain needs its own site review, so expect a short stretch where ads may not serve on it.

Where this question came from

Questions about changing your domain

How long does a domain change take to settle in Google?

Google says a medium site can take a few weeks or more before the new URLs show in results, and larger sites take longer. The Change of Address tool forwards signals for 180 days.

Can I redirect every old page to the new homepage?

No. Redirect each old URL to its matching new page. Sending everything to the homepage throws away the value of links pointing at deep pages and Google tends to treat it like a soft 404.

Does the Change of Address tool work for an http to https move?

No. Google does not use the tool for protocol changes, www to non-www changes or path changes within one site. Redirects and canonical tags handle those on their own.

Should I redesign the site at the same time?

Google recommends changing one thing at a time. Move the domain with identical paths and content first, then redesign once traffic has stabilized.

When can I let the old domain expire?

Keep the redirects for at least a year and keep the domain registered while it still gets any traffic. If it lapses, someone else can register it and use your old backlinks.