To relaunch without losing organic traffic, treat the redesign as a migration: benchmark the old site, map every URL to its new home, test on staging, then monitor closely for 30 days. Traffic is rarely lost to the new design itself. It’s lost to URLs changed without redirects, copy cut from pages that ranked and staging noindex tags that ship to production.
Why redesigns kill organic traffic
A URL’s rankings rest on its content, the links pointing to it, its place in your internal linking and technical signals like canonicals. A redesign often changes all four at once. The usual causes, roughly in the order I find them:
- URLs change without one-to-one redirects, so years of link equity point at 404s or the homepage
- Copy gets cut for a cleaner layout, losing the text that matched long-tail queries
- Pages drop out of the navigation and lose internal links
- Staging settings ship to production:
Disallow: /in robots.txt, a sitewide noindex, canonicals pointing at the staging host - Content moves behind JavaScript, out of the initial HTML
- Tracking breaks, so you can’t tell a real drop from a measurement gap
Risk scales with how much changes:
| Change | Risk | Minimum work |
|---|---|---|
| Visual refresh, same CMS and URLs | Low | Staging crawl, content and tracking checks |
| New CMS or platform | Medium to high | Full URL inventory and redirect map |
| New URL structure | High | Redirect map, internal link updates |
| Domain move | Highest | All of the above, plus Change of Address in Search Console |
Planning several at once? Split them: a domain move in one release and the redesign in the next makes any drop easier to diagnose. Moving a store onto Shopify? The WooCommerce to Shopify migration checklist covers the platform specifics.
Before you start: benchmark and crawl
Start six to eight weeks before launch. You need a record of the old site that outlives it.
- Export Search Console performance data by page and by query for the full 16 months it keeps (the interface exports 1,000 rows, so larger sites need the API)
- Export GA4 organic landing pages with sessions and key events
- Crawl the live site and save the full export (status codes, titles, H1s, canonicals, meta robots, word count, internal links, structured data), plus robots.txt and every XML sitemap
- Export backlinks by target URL from your backlink tool
- Record rankings for priority queries and Core Web Vitals by template
- Pick a launch date outside peak season, early in the week, with developers available for 48 hours afterward
Don’t skip the crawl: once the old templates are gone, it’s your only record of each page’s title, copy and internal links.
Content and URL inventory
Build one sheet with every URL that has ever earned anything: the crawl, sitemaps, Search Console pages, GA4 landing pages and backlink targets, deduplicated. The last three surface URLs your crawler can’t reach, like orphaned pages, old campaign pages and PDFs that still get links.
Then give every URL one decision:
| Decision | When | Action |
|---|---|---|
| Keep | Page stays, URL unchanged | Carry over content, title, H1 and internal links |
| Move | Page stays, URL changes | 301 to the new URL |
| Merge | Overlapping pages combine | 301 each to the page that replaces them |
| Remove | No traffic, no links, no business value | Return 404 or 410 |
Flag your money pages: the top pages by organic clicks and conversions. Each keeps its main copy, title, H1 and internal link prominence unless there’s a reason to change them. Designers and copywriters should see this list before the first wireframe.
Redirect mapping
Every URL marked Move or Merge gets a server-side 301 (or 308) to its closest equivalent, not a JavaScript or meta refresh redirect. Four rules keep the map clean:
- Redirect one-to-one, to the most relevant page. Google can treat mass redirects to the homepage as soft 404s, so the old page’s signals are lost.
- One hop only. Update redirects from a previous redesign to point straight at the new final URL instead of chaining through the old one.
- Cover the variants. http and https, www and non-www, trailing slashes, uppercase letters and old parameter URLs that still get traffic.
- Use patterns carefully. A rule like
/blog/2019/(.*)to/blog/$1saves time, but test it against the real URL list. One bad pattern can misroute a whole section.
Keep the map as a spreadsheet (old URL, new URL, decision, priority, test result); it doubles as the test script for staging and launch day. Keep redirects for at least a year, as Google recommends for site moves, and indefinitely where you can.
Staging checks
Protect staging with a password or IP allowlist, not a noindex tag or robots.txt block. That keeps crawlers out without a setting someone must remember to remove at launch.
Then crawl staging (desktop crawlers can usually authenticate) and compare it with your baseline:
- Titles, H1s and word count on money pages match the plan, with no sharp drop in copy
- Canonicals, hreflang and structured data use the production domain, not the staging host
- No template carries a noindex it shouldn’t
- Priority pages get at least as many internal links as before, pointing to final URLs rather than redirects
- Main content is in the HTML source, not only after JavaScript runs
- The 404 page returns a 404 status code, not a 200
- Every old URL in the map, run through the crawler in list mode, returns one 301 to a 200 page
- GA4, Google Tag Manager, the consent banner and ad pixels load, and key events fire on a test conversion
- The same GA4 property and event names carry over
- Lab performance for key templates is no worse than on the old site
Check tracking here, not after launch: a new GA4 property or renamed events break the before-and-after comparison you need to judge the relaunch. For deeper crawling, rendering and indexing checks, see the technical SEO audit checklist.
Launch-day checklist
- Confirm production carries no staging leftovers: no password protection, no
Disallow: /in robots.txt, no stray noindex in meta robots tags or X-Robots-Tag headers - Deploy redirects, test the top 100 old URLs by traffic, then crawl the live site and compare it with staging
- Submit the new XML sitemap in Search Console; keeping a sitemap of old URLs live for a few weeks can help Google find the redirects sooner
- Run URL Inspection on the homepage and five to ten money pages
- Submit a test lead or order and confirm it reaches GA4, your CRM or store and the ad platforms
- Update final URLs in ad accounts and links in email flows so they don’t route through redirects
- For domain moves: use the Change of Address tool in Search Console, update your Google Business Profile, social profiles and the backlinks you can influence, and keep the old domain renewed
Post-launch monitoring for 30 days
Some ranking movement in the first weeks is normal where URLs changed, while Google recrawls old URLs and processes redirects. Your job is to separate normal settling from real errors while they’re cheap to fix.
| When | Check | Red flag |
|---|---|---|
| Days 1-7 | Live crawl, server logs, Search Console Crawl Stats | 404s on old URLs missing from the map, 5xx errors |
| Days 1-7 | Organic sessions and key events against the same weekdays before launch | Conversions near zero while sessions look normal |
| Weeks 2-4 | Page indexing report for the new sitemap | New URLs stuck in “Discovered - currently not indexed” or “Crawled - currently not indexed” |
| Weeks 2-4 | Clicks and rankings for money pages against baseline | A page or template well below baseline and not recovering |
| Day 28+ | Core Web Vitals field data | Templates newly failing on mobile |
Compare like with like: split pages into “URL unchanged” and “URL changed” and compare each group with its baseline. Seasonal businesses should use the same period last year. Core Web Vitals field data uses a 28-day rolling window, so it takes about a month to reflect the new site.
Recovering if traffic drops
First confirm the drop is real: steady Search Console clicks with falling GA4 organic sessions usually means a tracking problem, not an SEO one. Then locate the loss page by page with Search Console’s date comparison.
| Symptom | Likely cause | Fix |
|---|---|---|
| Sitewide drop in the first days | robots.txt block, noindex or staging canonicals | Fix the setting, resubmit sitemaps |
| Loss concentrated in moved URLs | Missing, chained or wrong redirects | Correct the map, retest every old URL |
| Pages indexed but ranking lower | Copy cut, titles changed, internal links lost | Restore from the baseline crawl |
| One template declining | Rendering change or template-level noindex or canonical | Compare source with rendered HTML; fix the template |
| Search Console stable, GA4 down | Missing tag, consent change or new property | Fix tracking, annotate the gap |
| Drop matches a Google core update | Possibly the algorithm, not the relaunch | Rule out the causes above, then review content quality |
Two principles speed recovery. Restore before you rewrite: if a money page lost its copy, put the old version back first and improve it later. Fix technical errors the same day, and give content changes a few weeks: a wrong redirect costs traffic every day it’s live, while content changes need time to be recrawled.
Still unexplained? Diff the old and new crawls field by field for the affected pages. The answer is usually there, and that diff is the core of the technical SEO and content systems work I do around relaunches.
Get it built
Relaunching next quarter? I can own the SEO side: baseline, URL inventory, redirect map, staging sign-off and 30 days of monitoring. It starts with the fixed-price Growth Audit at $1,500, credited if we continue; ongoing options are on the pricing page. Get in touch with your launch date and rough URL count.