Traffic drop after a website redesign: find the cause and recover

check the redirects before anything else. it is the cause most of the time, and the one you can still fix.

by Max Lorenz, Goodaim · updated

what a late redirect map fixes
  • /services/seo-audit404
    404 since launch day
  • /blog/2021/pricing-guidesoft 404
    / (homepage)
  • /services/seo-audit301
    /services/audit
  • /blog/(.*)wildcard
    /journal/%1

SHORT ANSWER

When traffic drops after a website redesign, check the old urls first. In most relaunches that lose rankings, pages that used to rank now answer 404 or redirect to the homepage, and Google drops them from the index as it recrawls them. Only once every old url redirects one-to-one to its equivalent is it worth looking at the other causes: content that was cut, internal links that disappeared, a noindex left over from staging, and canonical tags pointing at the wrong address. Missing redirects can be added late — the old urls are still in Google’s index and still linked from other sites.

Is it the relaunch, or something else?

Before you take the new site apart, make sure the drop belongs to it. Three checks take ten minutes:

  • the date. In the Search Console performance report, set a date range that spans the launch and look at the clicks line. A drop that starts within days of go-live points at the relaunch; one that started a month earlier does not.
  • the shape. Compare the four weeks after launch with the four weeks before, on the pages tab. If the loss is concentrated on a set of urls that now return nothing, it is a redirect problem. If every page lost a little, look at seasonality, a core update, or a sitewide technical change.
  • the season. Compare with the same weeks last year. A shop that relaunched in January is comparing itself with December.

Some movement is expected. Google’s site move documentation says to “expect temporary fluctuation in site ranking during the move” and that rankings settle down over time. Fluctuation is general and recovers. A drop that sits on specific urls, or keeps getting worse after a few weeks, is something broken.

EXAMPLE

the performance report shows clicks down 40 % since the launch. Sorted by the difference on the pages tab, 70 % of the loss sits on 25 old urls — all of them blog posts whose prefix changed from /blog/ to /journal/ without a redirect.

The order to check things in

Work from the cause that loses the most and is cheapest to confirm, to the ones that take longer to diagnose. Each step rules out one explanation before you spend time on the next.

checkwhere to lookwhat it looks likefix
1. missing redirectsold urls requested live; Page indexing → Not found (404)old urls answer 404a 301 to the equivalent page
2. wrong redirectsthe same list, following each redirectchains, 302s, everything to the homepageone hop, 301, one-to-one
3. contentold and new page side by sidetext cut, title and h1 changed, pages mergedrestore what the page ranked for
4. internal linksa crawl of the new sitepages that were in the navigation are now orphanslink them again
5. noindex / robots.txtpage source, robots.txt, URL Inspectionstaging blocks still in placeremove them
6. canonicalsURL Inspection: user-declared vs Google-selectedcanonical to staging, to the old domain, or to one page for alla self-referencing canonical on the final url

1. Missing redirects

Take the list of urls the old site ranked with and request each one on the live site. Every url that answers 404 is a page whose rankings and links are being thrown away — Google removes urls that return a 4xx from the index once it recrawls them, and the links pointing at them now point at an error page.

Search Console shows the same thing from Google’s side: the Page indexing report lists urls under Not found (404), with up to 1 000 examples per reason. A count there that jumps after the launch date is the relaunch’s missing redirects showing up as Google recrawls them.

The difficulty is the list itself. If nobody built a redirect map, nobody kept a full list of old urls either — and a crawl of the new site cannot produce one. Where to get it when the old site is gone is covered below.

EXAMPLE

/leistungen/suchmaschinenoptimierung ranked for its main term for six years. After the relaunch the page lives at /services/seo; the old url answers 404. Within three weeks it is gone from the index and the new url has not replaced it, because nothing told Google the two are the same page.

2. Redirects that exist but do not work

A relaunch with redirects can still lose traffic if they are the wrong kind. Follow each redirect on the same list and look for four patterns:

everything to the homepage — Google’s move documentation says not to redirect many old urls to one irrelevant destination such as the homepage, because it can be treated as a soft 404. The redirect exists, but nothing is passed on.

302 instead of 301 — per Google’s redirect documentation, a permanent redirect is a signal that the target should be canonical; a temporary one is not. Some platforms create 302s by default.

chains — /old → /old/ → /new → /new/. Each hop is another request; flatten them so every old url points at its final target.

javascript redirects — a client-side redirect only works once the page is rendered. A server-side 301 is always the safer choice.

3. Content that changed

A redesign often comes with a copy rewrite, and a page can lose rankings even with a perfect redirect if it no longer says what it ranked for. Open the old version (from a backup or the Wayback Machine) next to the new one for your top pages and compare:

  • the title and the h1 — a clever new headline in place of the term people searched for.
  • the body text — long pages cut down to a hero and three cards.
  • merged pages — five service pages folded into one, each old url redirected to it, none of the five topics covered in depth any more.
  • content moved behind tabs or into javascript that renders late.

This is the one cause a redirect map cannot fix, and the one that takes longest to recover from, because Google has to re-evaluate the page rather than just follow a redirect.

5. noindex and robots.txt left over from staging

Staging sites are blocked from search on purpose, and the block sometimes survives go-live: a noindex in a template, a Disallow: / in robots.txt, or a cms setting that discourages search engines. Google’s move guide lists removing these as a step of its own. Check robots.txt by hand and run your top pages through URL Inspection, which shows whether indexing is allowed.

One detail matters here: Google’s noindex documentation says a page blocked by robots.txt is never fetched, so the crawler never sees a noindex on it either. Fix the robots.txt first, then the meta tags.

6. Canonicals that point at the wrong url

A canonical tag tells Google which url to index. After a relaunch it can point at the staging domain, at the old domain, at the http version, or — when a template sets one fixed value — at the homepage for every page. URL Inspection shows both the user-declared canonical and the Google-selected canonical; if they differ, or the declared one is a url you do not want indexed, fix the template so every page carries a canonical to its own final url.

Recovering with a late redirect map

If step one found 404s, the fix is the redirect map that was not built before launch. Building it afterwards works the same way, except that the old site usually cannot be crawled any more. The old urls come from records instead:

the Search Console performance export — set the date range to the months before the launch and export. The download contains a pages file with each url’s clicks and impressions — a url list and a priority list at once (see Google’s note on the export format). The interface export caps at 1 000 rows.

Page indexing → Not found (404) — the urls Google has already tried and failed, up to 1 000 examples. These are confirmed losses.

the old sitemap.xml — from a backup, the old cms, or a capture in the Wayback Machine.

server logs — every request that now gets a 404, including pdfs and campaign urls no other source lists.

In Silentfrog, old site already offline? takes those files as the old side and crawls only the new site (when the old site is gone). Each old url is matched against the new site’s pages; because a url list carries no titles, matching runs on the url alone, so more rows land in needs review. Then import the same Search Console export as traffic data: the table gains a clicks column, and you work through the urls that carried traffic first (traffic data). The first 50 old pages are free.

old site already offline

the old site is not crawled — its pages come from this list. upload the old sitemap.xml (several files at once are fine), a crawler or search console export, or paste the urls. paths like /blog/post work once the old domain is filled in above.

5 urls · https://acme-werkzeuge.de

a url list has no titles or headings, so matching runs on the url alone — expect more rows in the review bucket.

free up to 50 pages per site

the crawl form in offline mode: the old site field is empty, the uploaded sitemap.xml sits in the list field, and below it the tool reports how many urls it read and which domain it derived.

offline mode: the old site comes from a file, and only the new site is crawled.
traffic import

traffic data

import a search console page export (or any csv with a url column and a number column) to see which redirects actually matter — the table gets a clicks column you can sort by.

10 urls imported · 8 matched onto crawled pages

2 urls get traffic but were not found by the crawl — they still need a redirect.

  • /blog/werkstatt-tipps · 587 clicks
  • /produkte/wasserpumpenzange · 233 clicks

the traffic import panel after a search console export was read: how many rows were joined onto matches, and the list of urls that have clicks but were never found by the crawl.

the search console export joined onto the rows, so the urls that carried traffic are sorted to the top.

Export the redirects file for your platform, import it, and request a sample of the old urls again: each should answer 301 and land on a 200 in one hop. The orphan sources are covered in more depth in finding the urls nothing links to.

EXAMPLE

three weeks after launch: the pre-launch performance export has 610 urls, the 404 examples add 140, the old sitemap from the archive 380 more. After removing duplicates, 820 urls go into offline mode; sorted by clicks, the first 60 rows carry most of the lost traffic and are the ones checked by hand.

How long recovery takes

There is no fixed number. A late redirect only takes effect when Google recrawls the old url, which happens sooner for popular pages and later for rarely visited ones. Google’s move guide says that for medium-sized sites it can take a few weeks or more for Google to start showing new urls in place of old ones, and longer for large sites — and that is for a move done right from the start.

What you can watch: in Search Console, the old urls should move from Not found (404) to Page with redirect, and the new urls should start collecting the impressions the old ones lost. If a page stays down long after its redirect is recrawled, the cause is probably content (step three), not the redirect.

In short

  • Confirm the drop starts at the launch and sits on specific urls before blaming the redesign.
  • Check missing redirects first: old urls that answer 404 lose their rankings and their links.
  • Then wrong redirects (homepage, 302, chains), content, internal links, staging noindex and canonicals — in that order.
  • Without the old site, rebuild the url list from the pre-launch Search Console export, the 404 report, the old sitemap and the logs.
  • Prioritise by clicks, redirect one-to-one, and check each one resolves in a single hop.
  • Recovery happens as Google recrawls the old urls — the sooner the redirects are live, the less is lost.