Turn an old-to-new URL listinto rules you can paste.
A site migration lives or dies on its redirects. Paste your old-to-new pairs, pick your stack, and get a clean block of 301 rules for Apache, Nginx, or Next.js, with redirect loops and chains caught before they cost you rankings.
Your old → new URLs
One pair per line, old URL first, separated by a comma or tab. You can paste a path (/old-page) or a full URL, the destination is used exactly as written, so include https:// if you want an absolute target.
Your redirect rules
Paste into your site's .htaccess (or main Apache config), in the document root.
Redirect 301 /old-page /new-page Redirect 301 /blog/2023/old-post /blog/old-post Redirect 301 /about-us /about
Pre-flight checks
3 clean redirects
Every line is a valid one-to-one 301 with no loops or chains. Paste the block into your config and test each old URL returns a single 301 to a live page.
Your move
Clean redirects keep the lights on. Growth is the next move.
3 clean 301 redirects ready to paste into your Apache (.htaccess) config.
A flawless redirect map stops a migration from bleeding traffic, but holding steady isn't the same as winning. If your site is technically sound and still not climbing, the gap is upstream, in the content, the targeting, or the offer. Bring me a site that survived its migration but plateaued and I'll show you, free, where the real growth is hiding.
Plain English
A redirect map is the safety net under your migration.
When you change a URL, every link, bookmark, and indexed page pointing at the old address breaks. A redirect map is the lookup table that catches each old URL and forwards it to its new home, so visitors land where they expect and Google passes the page's accumulated authority forward instead of dropping it.
A 301 is a permanent redirect: it tells browsers and crawlers 'this moved for good, update your records.' That permanence is the whole point. Google consolidates the old URL's ranking signals onto the new one, and over time drops the old address from its index in favor of the destination. A 302 (temporary) does none of that reliably, which is why a migration that ships 302s instead of 301s tends to bleed traffic for months.
This tool takes the boring-but-critical part, hand-writing the same rule a few hundred times without a typo, and does it for you. Paste 'old,new' on each line, choose Apache, Nginx, or Next.js, and it builds the exact syntax that stack expects. It also lints the map for the two mistakes that quietly wreck migrations: redirect loops (a URL pointing at itself) and chains (A goes to B, but B also redirects somewhere else).
The formula
old path + new URL → 301 (permanent) rule, one per line
Apache: 'Redirect 301 /old-page https://yoursite.com/new-page'. Nginx: 'rewrite ^/old-page$ /new-page permanent;'. Next.js: { source: '/old-page', destination: '/new-page', permanent: true }. Same intent, three dialects, generated from a single 'old,new' line so you never fat-finger the syntax.
Your redirect map threw a warning. Here's why.
A line is flagged 'malformed'.
It doesn't have both an old and a new value separated by a comma or tab. Fix the line so it reads 'old,new' (e.g. '/about-us, /about'), or delete it, a half-written rule is worse than none.
A pair is flagged 'redirect loop'.
The old and new URL are identical, so the page redirects to itself, an infinite loop browsers will refuse to load. Remove the line; there's nothing to redirect when the address didn't change.
A pair is flagged 'redirect chain'.
Its destination is itself the source of another redirect (A→B, B→C). Crawlers follow chains slowly and leak link equity at each hop. Point A straight at the final URL (A→C) and drop the middle step.
Traffic dropped after the migration.
Spot-check the live site. The classic culprits are 302s where you meant 301s, redirects to the homepage instead of the matching page (a 'soft 404' to Google), or pages that were simply left off the map. Every old URL needs its own line.
How to run a migration your rankings survive
01Map every old URL one-to-one
Send each old page to its closest new equivalent, not a blanket redirect to the homepage. Google treats mass homepage redirects as soft 404s and drops the equity you were trying to save.
02Use 301, not 302
Permanent redirects consolidate ranking signals onto the new URL and eventually deindex the old one. 302s are for genuinely temporary moves and pass authority unreliably, the wrong default for a migration.
03Eliminate chains and loops
A→B→C wastes crawl budget and bleeds link equity at each hop; a URL redirecting to itself just breaks. Always redirect straight to the final destination in one step.
04Preserve query strings where they matter
Tracking and pagination params (?utm=, ?page=2) can change what a page shows. Decide deliberately whether to keep, strip, or remap them, don't let the redirect silently drop them.
05Crawl the old site first
Pull a full URL list from your old sitemap or a crawler (Screaming Frog) before you migrate. You can't map URLs you forgot existed, and the forgotten ones are usually the ones still ranking.
06Test before and after going live
Run the map through a redirect checker so each old URL returns a single 301 to a live 200 page. Re-test after launch, staging and production configs drift more than you'd think.
07Keep the redirects in place
Don't delete them after a month. External links and old citations can keep sending traffic for years; pulling the redirects later resurrects every 404 you fixed.
08Update internal links too
Redirects are the safety net, not the plan. Change your own internal links to point at the new URLs directly so users and crawlers skip the redirect hop entirely.
The vocabulary
- 301 redirect
- A permanent redirect. Tells browsers and search engines the URL moved for good, consolidating ranking signals onto the new address.
- 302 redirect
- A temporary redirect. Use it only when the move is genuinely short-term; it passes authority unreliably and won't deindex the old URL.
- Redirect chain
- Two or more hops to reach the final page (A→B→C). Slows crawlers and loses link equity at each step; collapse it to A→C.
- Redirect loop
- A URL that redirects to itself (or back to a page that returns to it), creating an infinite cycle the browser refuses to load.
- Redirect map
- The full lookup table of every old URL and the new URL it should forward to. The deliverable this tool builds.
- Link equity
- The ranking value passed through links. 301s preserve most of it through a move; chains and soft 404s leak it.
Redirect questions, straight answers
It's a list pairing every old URL with the new URL it should forward to, turned into permanent (301) redirect rules. You build it before a site migration so that visitors and search engines reaching an old address get sent to its new home, preserving traffic and rankings. This tool generates that map's rules for Apache, Nginx, or Next.js from a simple 'old,new' list.
Keep going
A calculator tells you what. A call tells you what to do about it.
Send me the account behind these numbers. I'll tell you straight where the money's leaking and what I'd fix first — free, and you keep it whether you hire me or not.