GUIDES / THE REDIRECT MAP

301 redirects for a website relaunch: the complete checklist

collect every old url, give each one a target, and prove after go-live that it resolves in one hop.

by Max Lorenz, Goodaim · updated 10 sep 2026

a relaunch redirect map
  • /about-us/301
    /about
  • /leistungen/webdesign301
    /services/web-design
  • /blog/(.*)wildcard
    /magazine/%1
  • /summer-sale-2019410
    gone on purpose

SHORT ANSWER

A relaunch redirect map is a list that gives every url of the old site exactly one target on the new site, served as an HTTP 301. Without it the pages that carried your rankings and your backlinks answer with a 404, and everything they collected over the years stops there. The work is always the same three steps: collect every old url, decide a target for each one, and check after go-live that each one resolves in a single hop.

Why does every old url need a target?

A url that ranked is an asset. Search engines have it indexed, other sites link to it, and people have it in bookmarks, in old newsletters and in printed material you cannot recall. A 301 tells all of them that the page moved and where to, so the ranking signals and the link value follow it to the new address. A 404 tells them the page is gone, and the value it accumulated goes with it.

The damage is rarely visible on launch day. Rankings drop over the following weeks as the old urls are recrawled and dropped from the index, which is why a relaunch that felt smooth can turn up as a traffic cliff a month later — long enough for nobody to connect the two.

Pages that still get traffic announce themselves within days if they break. Pages that hold backlinks but little traffic do not, and those are the expensive ones. Pages that are only in the index cost you one line in a csv, so there is no reason to leave them out either.

EXAMPLE

a five-year-old post at /blog/2019/pricing-guide gets thirty visits a month and has links from four industry sites. Redirected to /magazin/pricing-guide it keeps both. Left as a 404 it keeps neither, and those four links now point at an error page.

How do I collect every old url?

Whatever you crawl is only what the old site still links to. A map built from a crawl alone is systematically missing the pages that matter most here: the ones nothing links to any more. Use five sources, roughly in the order of how much each usually adds.

a crawl of the old site — follows links from the homepage and gives you the current, linked structure — plus each page’s title and h1, which are what make automatic matching possible at all.

sitemap.xml — usually generated by the cms, so it still lists pages the navigation dropped years ago. Follow the sitemap index if there is one, and expect gzipped files (.xml.gz).

the Search Console page export — the pages Google actually has, with clicks and impressions attached. It is the only source that also tells you which urls are worth arguing about. The export in the interface caps at 1 000 rows.

server logs — the raw record of what is being requested, including urls no tool lists: pdf files, feeds, campaign landing pages that were never linked from the site.

your own lists — a cms url export, an old crawl, and the redirect file from the previous relaunch — which tells you which urls were already moved once and still need to arrive somewhere.

Silentfrog reads robots.txt and the sitemaps alongside the crawl by default and lets you paste or upload a url list on top (see starting a run); a Search Console export can be imported afterwards to get a clicks column to sort by (traffic data). The orphan sources are worth a page of their own: finding the urls nothing links to.

start a crawl

extra old-site urls the crawl might not reach — one per line, or a csv export with the url in the first column (crawler export, search console, server logs). paths like /blog/post work too.

free up to 50 pages per site

the crawl form with the old site url, the new site url, the page cap, the sitemap option and the field for your own url list.

the crawl form: both urls, the sitemap option, and the field for your own url list.

EXAMPLE

a crawl of a mid-sized site finds 840 urls. The sitemap adds 260 more, the Search Console export another 90, and the logs turn up 30 pdf files. The crawl alone would have covered two thirds of the map.

How do I build the map?

Four mechanisms, applied in this order, settle almost everything — each step shrinks what the next one has to look at.

exact matches — the same path on both sites. Nothing to decide, and on a redesign that keeps the url structure this can be most of the list. These need no redirect at all — a rule that points a url at itself is noise, and some importers reject it.

fuzzy matches — the slug, the title and the h1 of an old page compared against every page of the new site. /produkte/seitenschneider → /produkte/seitenschneider-vde is the shape of it. A score decides whether the pair is confident enough to accept or has to be read by a human.

directory moves — one decision that settles a whole section: everything under /blog goes to /magazin, keeping sub-paths. Most relaunches move two or three whole sections, and doing those first takes hundreds of rows off the pile (whole directories at once).

wildcard rules — one rule covering everything below a path, including urls no source ever listed. That is the only mechanism that catches a url you never knew about.

results

8 pages · 2 exact · 3 fuzzy · 1 need review · 1 unmatched · 2 verified

✓Match
/kampagne/sommer-2023Sommeraktion 2023 — 20 % auf alle Zangenunmatched94031%200
/produkte/seitenschneiderSeitenschneider 160 mmreview61272%200
/blog/relaunch-checklisteDie Relaunch-Checklistefuzzy42188%200
/blog/ladezeitLadezeit verbessernfuzzy14391%200
/blog/301-vs-302301 oder 302?fuzzy30592%200
/ueber-unsÜber unsmanual188100%200
/produkte/kombizangeKombizange 180 mmexact274100%200
/kontaktKontaktexact96100%200

the results table: old paths on the left, matched new paths on the right, each row badged exact, fuzzy, needs review, manual or unmatched, sorted worst confidence first.

the results table, worst confidence first: exact and fuzzy matches, the rows that need review, and the unmatched ones.
redirect a directory

redirect a whole directory

map every crawled page below a directory at once — optionally as a single webflow wildcard rule that also covers urls the crawl missed.

→

3 pages · 3 targets exist on the new site · + wildcard /blog/(.*) → /magazin/%1

  • /blog/relaunch-checkliste → /magazin/relaunch-checkliste
  • /blog/301-vs-302 → /magazin/301-vs-302
  • /blog/ladezeit → /magazin/ladezeit

the directory rule form mapping /blog to /magazin with sub-paths kept, exported as a wildcard, and a live preview of how many pages it affects.

a directory rule moving /blog to /magazin with sub-paths kept, and the live preview of what it affects.

EXAMPLE

1 200 old urls: 900 keep their path, 180 are settled by three directory rules, 90 are matched fuzzily, and 30 are decided by hand. Only the last two groups need reading.

What should each url redirect to?

One-to-one, wherever a real equivalent exists. The new page about the same thing, even if it lives under a different path and has a different title. This is the only kind of redirect that reliably carries ranking signals across.

The nearest category page, when no equivalent exists. A discontinued product goes to its product category, not to the shop root. The visitor is one click from something relevant, which is the honest version of what a redirect promises.

Never everything to the homepage. A redirect to a page that is not an equivalent of the old one gets treated as a soft 404: it passes nothing on, and the visitor lands somewhere they did not ask for. Bulk-redirecting a dead section to the homepage is the single most common way to lose a relaunch.

And gone is a legitimate answer. An expired campaign nothing links to needs no target — but say so deliberately, which is what the next section is about.

EXAMPLE

/produkte/kombizange-2018 is discontinued with no successor. The right target is /produkte/zangen, the category, not /.

301, 302 or 410?

301 moved permanently — the relaunch default. The new url becomes the canonical one, the old one is eventually dropped from the index, and the signals move over. Use it for everything that has a target.

302 found — a temporary detour. The old url stays the canonical one, which is exactly wrong for a relaunch — you would be telling search engines to keep the address you are abandoning. Correct for a page being reworked for two weeks, for geo or a/b routing, and for nothing else here.

410 gone — deliberately removed. It gets the url out of the index faster than a 404 and documents that the removal was a decision. Good for expired campaigns, event pages that already happened, and discontinued products with no successor and no links.

The practical rule: if you can name a page that answers the same question, 301 to it. If you cannot but the topic still exists, 301 to the category. If neither, 410.

EXAMPLE

/webinar/2021-03-relaunch — the event is over, nothing links to it, there is no successor page. A 410 is more truthful than a 301 to the webinar overview, and it clears the index faster.

How do I validate the map after go-live?

The map is a hypothesis until the new site is live. Four checks, in this order:

  • crawl the old url list against the live site. Every url should answer 301 and then 200 — one hop, no chain, no 404 at the end. This is the check that catches typos, rules that never got imported, and targets that were renamed after the map was built.
  • watch Search Console coverage on the old property. “Page with redirect” should grow over the following weeks while “not found (404)” stays flat. A rise in 404s a fortnight after launch is the map missing a source.
  • check the top twenty by clicks by hand. Not whether they redirect, but whether they redirect somewhere a person would call correct. Automated checks cannot tell a good target from a plausible one.
  • keep the rules. A year at minimum, and rarely a reason to remove them at all — search engines need to see a redirect repeatedly, and nobody updates the links pointing at you.

EXAMPLE

a re-crawl two days after launch finds 14 urls answering 404. All 14 are under /downloads/ — a directory that was never in the sitemap and only turned up in the server logs, which had been left out of the map.

The mistakes that cost the most

redirect chains — /a → /b → /c. Each hop costs time and some get dropped. It happens by itself on a second relaunch, when new rules point at targets the previous relaunch already moved. Flatten every chain so each old url points straight at its final target.

an http to https double hop — the old url first upgrades to https, then redirects. Two hops for every single url on the site. Write the rule so it lands on the final https address in one step.

trailing slashes — /blog/post and /blog/post/ are two different strings to a redirect engine even when the site treats them as one page. Decide which form your rules use and make sure the other one still reaches a target.

case — paths are case-sensitive on most servers, so /Blog/Post is not /blog/post. Old campaign urls in particular are full of capitals.

query strings — ?utm_source=… is harmless, but ?id=417 identified a page. Most redirect engines match on the path and drop the query, so urls whose identity lived in a parameter need rules of their own.

targets that do not exist — a redirect to a page the new site never got is a 404 with an extra hop, and worse than no redirect because it looks handled. Check targets against the new site before export, not after.

In short

  • Every old url that answered with a 200 needs a target, because rankings and backlinks stop at a 404.
  • Collect urls from five sources — crawl, sitemap, Search Console, server logs, your own exports. A crawl alone misses the orphans.
  • Match exact first, then whole directories, then fuzzily, then by hand. That order keeps the manual pile small.
  • One-to-one where an equivalent exists, the nearest category where it does not, never the homepage in bulk.
  • 301 for anything with a target, 302 for nothing about a relaunch, 410 for what is deliberately gone.
  • After go-live, re-crawl the old url list and watch Search Console coverage; keep the rules for at least a year.
  • Chains, double hops, trailing slashes, case and query strings are where a correct-looking map quietly fails.