Website Migration Without Losing Rankings: A Careful, Step-by-Step Process
A practical, source-backed process for moving a website to a new domain, platform, or URL structure while protecting search visibility, based on Google's own site move guidance.
A website migration is one of the few projects where doing everything right still means accepting some short-term uncertainty. Google's own documentation says as much: moving a site can cause temporary fluctuations in rankings and traffic while search engines reprocess the new URLs. The goal of a careful migration is not to promise zero fluctuation. It is to remove every avoidable cause of loss and give search engines a clear, complete map from old to new.
This applies whether you are changing domains, moving from a subdomain to a subfolder, switching CMS platforms, restructuring your URLs, or simply moving to HTTPS. Google Search Central classifies all of these as site moves, and each one benefits from the same disciplined process.
What counts as a migration?
Anything that changes the URL a piece of content lives at is a migration in Google's eyes. That includes a full domain change, a platform rebuild that changes the URL structure even on the same domain, consolidating multiple sites into one, or splitting one site into several. Redesigns that keep the same URLs are a different, lower-risk project. The risk in a migration comes specifically from URLs changing, because every old URL that search engines have indexed needs a defined new home.
Build a pre-move inventory before anything else
Before a single line of new code goes live, document what currently exists. This inventory is the foundation for the URL map, and skipping it is the single most common reason migrations lose pages nobody meant to drop.
Export a full list of indexed URLs from Search Console and your XML sitemap, not just the pages in your main navigation.
Pull your current top-performing pages by organic traffic and by backlinks, so you know which URLs carry the most equity.
Note current canonical tags, hreflang tags if you run multiple languages or regions, and any noindex or robots.txt rules already in place.
List every third-party integration tied to the current site: analytics, tag manager, forms, chat widgets, and booking tools.
Inventory first, design second
It is tempting to start with the new design and figure out redirects later. That order produces gaps. Build the inventory first, then design the new URL structure with that inventory in hand.
Map every old URL to its new equivalent
Google's site move documentation is direct about this: each URL on the old site should redirect to the corresponding URL on the new site, not to a single catch-all page like the homepage. A one-to-one map preserves the specific relevance search engines had already associated with that URL. A blanket redirect throws that relevance away and asks search engines to start over.
For a small site this might be a simple spreadsheet. For a larger site it is a project in its own right, and it is worth treating as one. Every blog post, product page, category page, and location page from the inventory needs a named destination before launch, even if that destination is a considered decision to consolidate or retire the page.
Old URL pattern
Decision needed
Common mistake
High-traffic landing pages
Exact one-to-one redirect to the closest new equivalent
Redirecting to a similar but different page instead of the true match
Low-traffic or outdated pages
Redirect to the most relevant current page, or allow a genuine 404 if nothing corresponds
Redirecting everything to the homepage regardless of relevance
Paginated or filtered URLs
Decide whether these should exist on the new site at all
Leaving thousands of parameter URLs unmapped
Old blog or resource URLs
Preserve the slug where possible, or map to the closest new post
Changing the URL structure without checking if old slugs are still linked externally
Use 301 redirects, not 302s or meta refreshes
Google's redirects documentation is specific: a 301 redirect signals a permanent move and passes the page's ranking signals to the new URL. A 302 signals a temporary move and is treated differently. Meta refresh redirects and JavaScript-based redirects are far less reliable for this purpose and should not be the primary method for a migration. Every mapped URL from your inventory should resolve with a proper server-side 301.
Test the redirect map before launch wherever possible, and re-test it immediately after launch. Redirect chains, where an old URL redirects to another redirect before finally landing on the real page, should be flattened to a single hop. Chains slow crawling and occasionally break entirely.
Update canonical tags and internal links to match the new URLs
A redirect handles the old URL. It does not fix a canonical tag or an internal link that still points at the old address. Every page on the new site should have a self-referencing canonical tag pointing at its own new URL, and internal navigation, footer links, and in-content links should point directly at the new URLs rather than relying on a redirect hop to get there. Leaving internal links pointed at old URLs is a common source of unnecessary crawl waste and confused signals during the transition period.
Do not launch with a staging noindex still in place
Staging environments are almost always set to noindex so search engines do not crawl an unfinished site. It is a routine and avoidable mistake to push that same noindex tag live on launch day and not notice for days or weeks. Confirm the noindex tag is removed from the live site as part of the launch checklist, not as an afterthought.
Update sitemaps and submit them in Search Console
Generate a fresh XML sitemap reflecting the new URL structure and submit it through Search Console as part of launch. An outdated sitemap that still lists old URLs, or a sitemap that is missing entirely, slows down how quickly search engines discover and re-crawl the new site. This is a small step that is easy to forget in the rush of launch day.
Use the Search Console change of address tool for domain moves
If the migration includes a domain change, Search Console has a dedicated change of address tool built for exactly this situation. It tells Google explicitly that the entire site has moved to a new domain, which supports faster and cleaner processing of the move than redirects alone. This tool is specifically for domain-level moves and requires both the old and new properties to be verified in Search Console before you use it.
Monitor closely after launch
Launch day is the midpoint of a migration, not the end. Google's own guidance notes that reprocessing a moved site takes time, and the length of that period varies by site size and crawl frequency. Build a monitoring plan rather than checking once and moving on.
Check Search Console's coverage report daily for the first two weeks for a spike in errors or excluded pages.
Spot-check the top pages from your pre-move inventory to confirm they resolve, redirect correctly, and are being re-crawled.
Watch Core Web Vitals in Search Console and web.dev tooling to confirm the new site is not regressing on load performance.
Confirm analytics tracking, in GA4 or whichever platform you use, is firing correctly on the new site and that goals or conversions are still recording.
Reconfirm the redirect map for any URLs discovered late, such as ones only referenced by external backlinks you did not have listed.
Keep the old domain or hosting active for the redirects to keep working, rather than shutting it down right after launch.
What causes most migration losses?
Most migration losses trace back to a small set of avoidable mistakes rather than the migration itself being inherently risky. A missing or incomplete redirect map leaves valuable URLs returning errors. A leftover staging noindex hides the entire new site from search engines. An outdated sitemap slows discovery of the new structure. Internal links still pointing at old URLs create unnecessary redirect hops throughout the site. None of these are mysterious. They are checklist items that got skipped.
How much ranking fluctuation is normal during a migration?
Some fluctuation during the reprocessing period is expected and documented by Google itself, and the honest answer is that no one, including Cross X Agency, can promise an exact number or a guaranteed timeline for any specific site. What a careful process can do is remove the avoidable causes of loss so that whatever fluctuation does happen is temporary reprocessing rather than damage from a missed redirect or a forgotten noindex tag. Treat any vendor who promises zero fluctuation or a guaranteed ranking outcome with real skepticism, since that is not something Google's own systems allow anyone to control.
When should you consider a migration versus a redesign that keeps existing URLs?
If your current URL structure is not the problem, a redesign that keeps existing URLs is a lower-risk path to a modern site. A migration becomes necessary when the URL structure itself needs to change: a domain change, consolidating separate sites, or restructuring around new categories. If you are not sure which situation you are in, our guide to deciding when a small business website actually needs a redesign walks through the signals that separate a cosmetic refresh from a true structural move.
Where migration fits into the bigger web design picture
A migration is a technical project layered on top of whatever the new site is trying to accomplish. If the new site also needs to perform better as a source of leads, see our website conversion checklist and our lead generation website guide. For the search side of a rebuild, SEO versus paid ads is worth reading before you decide how much organic risk you are willing to plan around. Our web design services and SEO services pages cover how we scope this kind of project, and you can see prior work in our portfolio.
If your current site is already leaking inquiries before you even think about a migration, our lead leak audit is a good place to start, and a free audit can flag structural issues worth fixing during the move rather than after.