SEO Site Migrations: The Complete Playbook for Moving a Site Without Torching Your Rankings
The exact pre-migration audit and URL inventory I run before anyone touches a server
How to build and test a redirect map that actually holds, instead of one that quietly leaks equity
Why most migration traffic drops are self-inflicted, and how to read the recovery curve so you do not panic on day three
KEY TAKEAWAYS
- check_circleA migration is an SEO project that happens to involve design, not the reverse. Protect URLs, content, internal links, backlink equity, and ranking signals first.
- check_circleDecouple migration types when you can. Stacking a domain change, replatform, and redesign into one launch multiplies risk and destroys your ability to diagnose.
- check_circleBuild the URL inventory from every source: crawl, Search Console, analytics, backlinks, sitemaps, and logs. The URLs with backlinks but no traffic are the ones that hurt most when forgotten.
- check_circleThe redirect map is the spine. One-hop 301s to the closest real equivalent, never a bulk redirect to the homepage, and keep the rules in place permanently.
- check_circleCrawl staging with rendering on and confirm no leftover noindex, full content parity, and internal links pointing at new URLs before launch day.
- check_circleA temporary dip during reindexing is normal. A flat line that never recovers or a cliff to zero is a bug. Read the curve by page, not by aggregate, and intervene only for real problems.
INSIDE THIS GUIDE
9 chapters. Jump to any of them.
CHAPTER 01
Why Migrations Are Where Rankings Go to Die
I have watched sites that ranked for thousands of terms lose 60% of their organic traffic overnight because someone wanted a cleaner URL structure. The redesign looked great. The traffic was gone. That is the brutal truth about migrations: they are the single highest-risk thing you can do to a site that is already winning.
Here is the part nobody tells you. A migration does not slowly erode your rankings. It detonates them in a single window, and then you spend weeks or months trying to claw back what you had before you started. The downside is enormous and the upside is usually invisible to anyone outside the company. You are not migrating to grow. You are migrating to not lose, which is a terrible risk-reward profile if you do it carelessly.
Most migration disasters are not Google being unpredictable. They are broken redirects, dropped pages, changed internal links, and a launch that shipped on a Friday afternoon because the design team had a deadline. The search engine did exactly what you told it to do. You just told it the wrong thing.
A migration is not a design project with some SEO attached. It is an SEO project that happens to involve design.
The mental shift that separates clean migrations from catastrophes is this: you are not building a new site. You are moving an existing asset, with all of its accumulated authority, links, and ranking signals, from one address or structure to another. Every signal that does not survive the move is signal you paid years to earn and just threw in the trash.
targetWhat you are actually moving
You are moving URLs, content, internal links, backlink equity, crawl history, and ranking signals. The visual design is the least important thing in that list. If you protect the first five and only change the sixth, you will be fine. People reverse that priority and wonder why traffic collapsed.
Self-inflicted by default
In my experience the overwhelming majority of post-migration traffic losses trace back to a redirect, content, or internal-linking decision the team made, not to an algorithm punishing the move itself.
warningWATCH OUT
If your only success metric for the migration is whether the new site looks good on launch day, you have already lost. The metric is whether organic sessions and rankings hold within the expected recovery window. Set that expectation with stakeholders before you write a line of code.
CHAPTER 02
The Five Types of Migration (and Why Mixing Them Is a Trap)
People say migration like it is one thing. It is at least five different things, each with its own failure mode. The single biggest mistake I see is teams stacking three of them into one launch and then having no idea which change caused the drop.
The five flavors
- Redesign: same URLs, same platform, new templates and layout. Low risk on paper, but it quietly changes internal linking, content volume, and on-page signals.
- Replatform: moving from one CMS or framework to another (for example a custom build to WordPress, or Magento to Shopify). URLs and rendering both change.
- Domain change: example.com becomes example.io, or a rebrand moves you to a new name entirely. Every backlink now points at the old address.
- HTTPS migration: http to https. Largely solved in modern stacks but still trips people on mixed content and redirect chains.
- Consolidation: merging multiple sites or sections into one, or cutting a bloated site down. This is content surgery, not just a move.
Each of these has a different risk profile. A pure HTTPS move on a well-built site is close to a non-event. A domain change combined with a replatform combined with a content consolidation is three high-risk surgeries performed simultaneously on a patient who was perfectly healthy.
The number of variables you change at once is directly proportional to how long your recovery takes and how blind you are when something breaks.
When you bundle changes, you destroy your ability to diagnose. If traffic drops after a launch that changed the domain, the templates, and the URL structure all at once, you cannot isolate the cause. You are debugging in the dark with the meter running.
targetThe sequencing rule
When the business will let you, separate the moves. Do the replatform on the existing URLs first, let it settle, then change the domain. Or get the new design stable, then consolidate thin content in a later phase. Every change you can decouple is a variable you can isolate if something goes wrong.
Example
A team wants to rebrand to a new domain and move from a legacy CMS to a modern headless setup. Instead of one launch, the lower-risk path is: replatform onto the current domain and URL structure first, confirm rankings hold over a few weeks, then execute the domain change as a clean, isolated event with a tight redirect map. Two boring launches beat one heroic disaster.
lightbulbPRO TIP
If leadership insists on doing everything at once for budget or timeline reasons, document the elevated risk in writing before launch. Not to cover yourself, but to force an honest conversation about what failure would cost versus what the sequencing delay costs.
CHAPTER 03
The Pre-Migration Audit and URL Inventory
The single most skipped step, and the one that causes the most permanent damage, is the inventory. You cannot migrate a site you have not measured. Before anyone touches a wireframe, I build a complete picture of what the current site is, what it ranks for, and what links to it.
The audit answers three questions. What pages exist? What value does each page hold? And what would it cost me to lose that page? Everything downstream, the redirect map, the launch checklist, the monitoring, depends on having honest answers to those three before launch, because afterward it is too late to gather some of this data cleanly.
Build the URL inventory from multiple sources
- 1Crawl the live site fully with a tool like Screaming Frog to capture every internal URL, status code, title, and canonical.
- 2Pull every URL that has received organic clicks or impressions from Search Console over the last 12 to 16 months, not just the last month.
- 3Export your top landing pages and their traffic from analytics so you know which URLs actually earn money.
- 4Pull a backlink export from your link tool of choice to find which URLs have external links pointing at them, including ones with no internal traffic.
- 5Grab the existing XML sitemaps and your server log files if you can get them, because logs reveal URLs that crawlers hit but your other tools missed.
The URLs that will hurt you most when you forget them are the ones with backlinks but little current traffic. They are invisible in analytics and irreplaceable in authority.
Deduplicate and merge all of those sources into one master sheet. Now tag every URL: keep it, redirect it, or retire it. A page with strong backlinks and decent rankings gets kept or carefully redirected. A thin, duplicate, or dead page that nobody links to and nobody visits is a candidate for retirement, which is its own deliberate decision rather than an accident.
targetCapture the baseline before you change anything
Snapshot current rankings for your priority keywords, current organic sessions by landing page, current indexed page count, and current Core Web Vitals. After launch this baseline is the only honest reference you have for whether you recovered. If you skip it, every post-launch argument becomes guesswork. See my guide on technical SEO at technical SEO fundamentals for how I structure that crawl.
Inventory or it did not happen
If a URL is not in your master sheet with a tag and a destination, it does not exist as far as your migration plan is concerned, which means it will silently 404 on launch day.
warningWATCH OUT
Do not trust a single crawl source. Screaming Frog misses orphaned pages with no internal links. Search Console misses pages that get clicks but you have already deindexed. Analytics misses pages with links but no traffic. Only the union of all sources is complete. This same diligence underpins solid keyword research, because you are mapping intent to URLs.
CHAPTER 04
Building and Testing the Redirect Map
If the inventory is the foundation, the redirect map is the load-bearing wall. This is the document that says every old URL goes to a specific new URL. Get this right and most of the migration takes care of itself. Get it wrong and you will be debugging traffic loss for months.
The core rule is simple and non-negotiable: every old URL that had any value maps to the single most relevant new URL with a 301 permanent redirect. Not a 302. Not a redirect to the homepage. Not a redirect to a generic category. The most relevant equivalent page, one to one, wherever a real equivalent exists.
The rules that actually matter
- Use 301 (permanent) redirects, not 302 (temporary), so engines transfer signals and update the index.
- Map to the closest topical equivalent. A redirect to an irrelevant page is treated as a soft 404 and passes little to nothing.
- Avoid redirect chains. Old URL to new URL in one hop, never old to interim to final to canonical.
- Never bulk-redirect everything to the homepage. That is the single laziest and most damaging shortcut in migration work.
- Preserve query strings and trailing-slash conventions consistently so you do not create duplicate-destination confusion.
A redirect to the homepage is not a redirect. It is a polite way of telling Google that page no longer exists and deserves to be forgotten.
For a site of any real size you will mix two approaches. High-value pages, your money pages and link magnets, get hand-mapped one by one because they are worth the time. The long tail gets pattern-based rules, for example old /blog/{slug} maps to new /articles/{slug}. Write the patterns, then spot-check a generous sample by hand because patterns lie at the edges.
targetTest the map before launch, not after
Take your full list of old URLs and run them against the redirect rules in staging. Every old URL should return a single 301 landing on a live 200 destination. Flag anything that 404s, chains, loops, or lands on a redirect. This is a deterministic check you can script, so there is no excuse for shipping a map full of holes.
Example
You have 8,000 old URLs. You hand-map the top 300 by traffic and links. You write four pattern rules for the rest. Then you run all 8,000 through the staging rules and the test flags 140 URLs that fall through every pattern and 60 that chain through two hops. You fix the chains and add explicit mappings for the 140 stragglers. That two-hour test just saved weeks of leaked equity. This is the same discipline good link building deserves, because those backlinks are exactly what the redirects protect.
warningWATCH OUT
Keep the old redirect rules in place for a long time, ideally permanently. People want to delete them after a few months to clean up the config. The links pointing at old URLs do not expire, so neither should the redirects that catch them. Removing them later quietly resurfaces 404s on pages with real backlinks.
CHAPTER 05
Staging, Crawling, and Catching the Bugs Before They Ship
Everything up to this point was planning. Staging is where you find out whether the plan survives contact with the actual build. I crawl the staging site as if it were a hostile stranger, looking for every way it could betray the rankings I am trying to protect.
Staging exists for one reason: to let you behave exactly as Googlebot will, against the new site, before the new site is live. If you crawl staging thoroughly, almost nothing on launch day should surprise you. If you skip it, launch day is your first crawl and your customers are your QA team.
What the staging crawl must verify
- No accidental noindex tags or robots disallow rules left over from the dev environment. This is the number one site-killer, and it is depressingly common.
- Every priority page renders its full content, including anything injected by JavaScript, when you crawl with rendering enabled.
- Titles, meta descriptions, headings, and canonical tags carried over or improved, not silently dropped to template defaults.
- Internal links resolve to live new URLs, not to old URLs that will trigger an extra redirect hop.
- Structured data survived the move, which you confirm against your schema markup plan.
The staging noindex trap
Dev sites are usually blocked from indexing. If that block ships to production, your entire site tells Google to disappear. Make removing it the very first item on the launch checklist and the very first thing you verify after going live.
If the staging crawl is clean and complete, launch day becomes boring, and boring is exactly what you want from a launch.
Pay special attention to content parity. A redesign frequently trims body copy because the new layout looks cleaner with less text. That trimmed copy was carrying keyword relevance and topical depth. Compare word counts and on-page elements old versus new for your top pages and make sure the new templates did not quietly gut your on-page SEO.
targetCrawl staging the way Google crawls
Enable JavaScript rendering in your crawler so you see what the bot sees on a modern framework, not just the raw HTML. Many replatforms move to client-side rendering and the team assumes the content is there because it shows up in a browser. The crawler with rendering off, like an older bot pass, may see an empty shell. Confirm the rendered output, not the visual one. This also affects Core Web Vitals, so measure those in staging too.
lightbulbPRO TIP
Protect the staging environment with HTTP authentication or an IP allowlist, not with a noindex tag. A leaked, crawlable staging site can get indexed and create duplicate-content confusion with your real site before you even launch. Lock it behind a login so the choice of indexing it is never Google's to make.
CHAPTER 06
The Launch Day Checklist
Launch day is not when you find problems. It is when you confirm that the problems you already hunted down in staging stayed dead. By the time I push a migration live, the work is mostly done and launch is a disciplined checklist executed in the right order at the right time.
Timing first
Launch early in the week and early in the day, when your full team is awake and available for hours afterward. Never launch a migration on a Friday, never the day before a holiday, and never right before your peak traffic season. If something breaks, you want every hand on deck and a long runway to fix it, not a skeleton crew and a weekend of silent bleeding.
Friday launches are how you turn a thirty-minute fix into a three-day outage that nobody catches until Monday.
The sequence
- 1Push the new site live and immediately confirm the staging noindex and robots blocks are gone.
- 2Verify a generous sample of redirects in production, hitting old URLs and confirming a single 301 to a live 200.
- 3Confirm the new robots.txt is correct and not blocking anything important.
- 4Submit the new XML sitemaps in Search Console, and if it is a domain change, use the change-of-address tool.
- 5Spot-check that analytics, tag manager, and conversion tracking fire correctly on the new templates.
- 6Test forms, checkout, search, and any revenue-critical function by hand, because a perfect SEO migration that breaks checkout still loses money.
- 7Confirm canonical tags, structured data, and hreflang if you run international SEO all resolve to the new URLs.
targetKeep the rollback option open
Have a documented, tested way to revert to the old site fast if something is catastrophically broken, like the whole site noindexed or every redirect looping. You probably will not need it, but knowing you can buy yourself the calm to diagnose instead of panic. Decide your rollback trigger conditions before launch, not in the middle of the fire.
warningWATCH OUT
Resubmit your sitemaps and request indexing for priority URLs, but do not expect instant recrawl. Submitting the sitemap is you raising your hand, not Google teleporting your pages into the index. Recrawl of a full site takes time, which is exactly why the next chapter on reading the recovery curve matters so much.
CHAPTER 07
Post-Launch Monitoring and Reading the Recovery Curve
Here is where people lose their nerve and make everything worse. The site launches, traffic dips, and someone panics and starts changing things on day three. Wrong move. After launch your job is to monitor relentlessly and intervene surgically, not to flail. You have to know what a normal recovery curve looks like so you can tell it apart from an actual problem.
On almost any migration of real scale, you will see some dip as engines recrawl, reprocess redirects, and reindex the new URLs. The search engine has to discover the new addresses, follow the redirects, and reassign signals, and that takes time proportional to the size of the site and how often it gets crawled. A modest, temporary dip that begins recovering within weeks is the system working as designed.
The difference between a normal dip and a disaster is the shape of the curve, not the depth of the first drop.
How to read the curve
- A gentle dip that starts climbing back toward baseline within a few weeks: normal. Hold steady and keep monitoring.
- A flat line at a lower level that never recovers after several weeks: a bug. Something structural is broken, usually redirects or indexing.
- A cliff straight down to near zero right at launch: an emergency. Check for a sitewide noindex or robots block first, every time.
- A slow, steady decline that keeps getting worse: usually lost content, lost internal links, or redirects pointing to weak destinations.
targetWhat to watch, and where
In Search Console, track indexed page count, the coverage report for new errors, and impressions and clicks by page. In your crawler, re-run regular crawls to catch new 404s and broken redirects. In analytics, watch organic sessions by landing page so you can see exactly which URLs lost ground rather than just a scary aggregate number. Pair this with your Core Web Vitals dashboard so you separate ranking issues from performance regressions.
Diagnose by page, not by total
A 20% sitewide drop usually is not 20% across every page. It is a handful of pages that fell off a cliff dragging the average. Find those specific URLs, check their redirects and content, and you have found your bug.
lightbulbPRO TIP
Give a healthy migration time before you start ripping things out. Recrawl and reindexing of a large site is not instant, and panicked changes on day three add new variables that make diagnosis impossible. Intervene immediately for genuine bugs like a noindex or broken redirects. For a normal dip, monitor, document, and wait. Strong E-E-A-T signals on the new site help the reprocessing go smoothly.
CHAPTER 08
The Mistakes That Cause Permanent, Unrecoverable Loss
Almost everything in a migration is fixable if you catch it. But a few mistakes cause damage that lingers for a year or never fully recovers. After two decades of cleaning up other people's migrations, these are the ones that keep showing up, and every one of them is preventable.
The permanent-damage list
- Redirecting everything to the homepage instead of mapping to equivalent pages. You hand back years of accumulated page-level authority and it does not come back.
- Forgetting URLs that have backlinks but no current traffic, so those links now point at 404s and the equity evaporates.
- Removing the redirects too early to clean up the config, resurfacing 404s on pages people still link to.
- Shipping the staging noindex or robots block to production and not catching it for days because nobody checked.
- Gutting content during a redesign so pages lose the topical depth that ranked them, then wondering why a prettier site ranks worse.
Reversible mistakes cost you a few weeks. Irreversible ones, like a homepage redirect that already got processed, cost you the authority you spent years building.
Notice the pattern. Every item on that list is a decision someone made, not an act of an unknowable algorithm. The team chose the lazy redirect, skipped the orphan URLs, deleted the rules, missed the noindex, or trimmed the copy. Migrations do not fail because search engines are cruel. They fail because the move was sloppy in a specific, identifiable way.
targetThe one-page sanity check
Before any migration goes live, answer five questions in writing. Is every valuable old URL in the redirect map with a one-hop 301 to a real equivalent? Are URLs with backlinks but no traffic included? Is the production noindex confirmed gone? Did content survive on priority pages? Is the launch scheduled for a Monday or Tuesday morning, not a Friday? If any answer is no, you are not ready.
A migration does not lose your rankings. You lose your rankings, and the migration is just the moment the bill comes due.Shmul
warningWATCH OUT
The most expensive mistake is treating the migration as done on launch day. The work continues for weeks: monitoring the curve, catching new 404s, fixing redirect gaps, and confirming the index rebuilt. A migration is not finished when the new site is live. It is finished when your rankings and traffic are back at or above baseline and holding. Until then, you are still migrating.
CHAPTER 09
Putting It Together: My Migration Playbook in One Pass
Strip away the war stories and a clean migration is a sequence. Same sequence every time, scaled to the size of the site. Here is the whole thing in one place so you can run it without rereading the guide.
- 1Decide the migration type and decouple as many changes as the business will allow into separate launches.
- 2Build the complete URL inventory from crawl, Search Console, analytics, backlinks, sitemaps, and logs, then tag every URL keep, redirect, or retire.
- 3Snapshot the baseline: rankings, sessions by page, indexed count, and Core Web Vitals.
- 4Build the redirect map, hand-mapping high-value pages and pattern-mapping the long tail, all one-hop 301s to real equivalents.
- 5Crawl staging with rendering on and verify no noindex, full content parity, intact titles and schema, and internal links pointing at new URLs.
- 6Test every old URL against the redirect rules in staging and fix every chain, loop, and fall-through.
- 7Launch Monday or Tuesday morning, confirm the noindex is gone, verify redirects in production, submit sitemaps, and test revenue-critical functions.
- 8Monitor the recovery curve by page for weeks, intervene only for real bugs, and keep the redirects in place permanently.
Do these nine things in order and a migration stops being a gamble and becomes an operation.
None of this is exotic. There is no secret. The teams that migrate cleanly are simply the ones disciplined enough to inventory everything, redirect it precisely, test before they ship, and keep their nerve while the index rebuilds. The teams that lose are the ones that treated a high-stakes move like a routine deploy.
targetWhere this fits in the bigger picture
A migration touches almost every part of SEO at once: the crawl and indexing logic from technical SEO, the page-level signals from on-page SEO, the authority you protect from link building, and the performance you carry over in Core Web Vitals. That is exactly why it is so risky. You are not testing one system. You are testing all of them simultaneously, on launch day, in public.
Discipline beats luck
Every clean migration I have run was boring. The exciting ones were the failures. Aim for boring.
Frequently asked
How long does it take to recover rankings after a site migration?expand_more
Should I use 301 or 302 redirects for a migration?expand_more
Is it safe to redesign and change my domain at the same time?expand_more
What is the single most common cause of traffic loss after a migration?expand_more
How long should I keep my old redirects in place?expand_more
Do I need a staging site to migrate safely?expand_more
Want this done for you?
I help brands win on Google and get cited in AI search. Tell me about your project.