How to use the Redirect Generator
- Paste your redirect map — two columns copied from Excel or Google Sheets, a CSV, or lines like
/old -> /new. Full URLs are fine; the domain is stripped from sources automatically. - Choose the output format for your platform and the status code (301 for permanent moves).
- Review the Validation table for duplicates, loops and chains. Click Resolve chains to point every old URL straight at its final destination.
- Copy or download the rules and deploy them. After launch, spot-check a few with the Redirect Checker.
What is a 301 redirect?
A 301 redirect is an HTTP response that tells browsers and search engines a URL has moved permanently. Visitors land on the new address automatically, and Google transfers the old URL’s ranking signals to the new one. Redirects are the single most important task in a site migration — a redesign, a move to Webflow, a domain change or a URL restructure — because every old URL that returns 404 loses its backlinks and traffic.
301, 302, 307 or 308?
| Code | Meaning | Use it when |
|---|---|---|
| 301 | Moved permanently | The default for migrations and changed slugs. |
| 308 | Permanent, keeps the HTTP method | Equivalent to 301 for SEO; used by default by Next.js and Vercel. |
| 302 / 307 | Temporary | Short-term moves, A/B tests, maintenance pages. Google keeps the old URL indexed. |
Platform notes
- Webflow: add redirects in Site settings › Publishing › 301 redirects, or import a CSV there. Source paths must start with
/and contain no domain; targets can be paths or full URLs. Importing a CSV replaces all existing redirects, so export the current list first and merge it — and remember to publish. - Apache:
Redirect 301 /old /new(mod_alias) matches by prefix, so/oldalso redirects/old/anything. The RewriteRule format matches exact paths and is safer for large maps. - Nginx:
location = /old { return 301 /new; }matches one exact path. For thousands of URLs, amapblock is faster to maintain. - Netlify, Vercel, Next.js: rules are checked in order; Vercel and Next.js use 308/307 when you set
permanent, so the generator setsstatusCodeexplicitly when you choose 301 or 302. - Cloudflare Bulk Redirects: the CSV has no header row; source URLs are written without the scheme and cannot contain query strings.
Problems the validator catches
- Chains (A → B → C): each hop wastes crawl budget and slows users. Point A straight at C.
- Loops (A → B → A, or A → A): the browser gives up with “too many redirects”.
- Duplicates and conflicts: the same source listed twice, possibly with different targets — only one rule can win.
- Query strings in sources: most simple redirect syntaxes ignore them, so
/page?id=5won’t match as written. - Trailing slashes:
/aboutand/about/are different URLs to most servers. Matching both avoids 404s from old links.
Before switching DNS, crawl the old site with the Website Crawler or export its sitemap to make sure every indexed URL has a destination.
Tools that pair well with the Redirect Generator
- HTTP Header Checker — Fetch any URL and see exactly what the server sends back — status code, redirect chain and every response header, with a plain-English explanation of the ones that matter for SEO, caching and security.
- Broken Link Checker — Enter a page URL and every link on it — plus images, scripts and stylesheets if you like — is tested live, so you can fix 404s and redirect hops before visitors or Google run into them.
- Sitemap Generator — Crawl your website and get a clean sitemap.xml containing only pages that deserve to be indexed — 200 status, no noindex, self-canonical — with every excluded URL and the reason listed.
- UTM Builder — Add utm_source, utm_medium, utm_campaign and friends to any link, see which GA4 channel the visit will land in, and tag a whole list of URLs at once.