TL;DR
A redirect map is the spreadsheet that tells search engines and users where every old URL should go after a content refresh, CMS migration, or domain change. Google has confirmed that a properly implemented 301 (or 308) redirect does not cause a loss of PageRank, but that protection only holds if you avoid redirect chains, avoid loops, and map each old URL to a genuinely relevant new one rather than dumping everything on the homepage.
Build the map by auditing every URL, sorting each into keep, refresh, merge, or delete, mapping 1:1 wherever possible, validating in staging, and then watching Search Console and server logs after launch. Use a 410 for content that has no replacement instead of redirecting it to an unrelated page.
When you refresh content or change URLs, a poorly executed redirect map can quietly erode the search equity a page has built up over years — here's how to build one that preserves rankings and user experience.
Quick Answer
- A redirect map is a spreadsheet that pairs every old URL with its new destination, status code, and priority — it is the single source of truth for a URL change.
- Use a 301 (or 308) for permanent moves; Google has stated these do not cause a loss of ranking signal, but only when implemented without chains or loops.
- Categorize every URL as keep, refresh, merge, or delete before you write a single redirect rule.
- Map old URLs to new ones 1:1 whenever possible — avoid sending large batches of unrelated URLs to the homepage or a generic category page.
- Validate the full map in staging, then monitor Search Console, crawl errors, and 404s closely for at least a few weeks after launch.
Why Redirect Mapping Matters for Content Refreshes and URL Migrations
Direct answer: Every URL on your site carries link equity, indexing signals, and user trust. When you change a URL — whether because of a content refresh, a CMS migration, or a restructuring — you must tell both search engines and users where the old page went. A redirect map is the single source of truth for that transition.
Google's own documentation on site moves confirms that a 301 or 302 redirect does not, by itself, cause a loss of PageRank — but that guarantee assumes the redirect resolves cleanly, without chains or loops, to a genuinely equivalent page. Teams that skip redirect mapping entirely, or fall back on a wildcard rule that sends every old URL to the homepage, tend to see the opposite outcome: a spike in 404s, wasted crawl budget on dead paths, and rankings that never fully recover because the "equivalent" destination isn't actually equivalent.
A well-constructed redirect map ensures that every old URL resolves to a relevant, contextually equivalent new URL. It also protects the user experience: visitors who click an old bookmark or an external link land on the correct page, not a dead end.
The Anatomy of a Redirect Map
A redirect map is typically a spreadsheet or CSV that maps old URLs to new URLs. At a minimum, it should include these columns:
| Old URL | New URL | HTTP Status Code | Priority | Notes |
|---|---|---|---|---|
| https://example.com/old-page | https://example.com/new-page | 301 | High | Topical match |
| https://example.com/deleted | https://example.com/related | 301 | Medium | Merged content |
| https://example.com/gone | (empty) | 410 | Low | No replacement |
For larger migrations, it's worth adding columns for crawl depth, external backlink count, and internal link count so you can prioritize the redirects that matter most. A page with a strong backlink profile and heavy internal linking deserves a dedicated, carefully chosen 301 target — not a generic catch-all rule.
The status code matters. Google treats 301 (permanent) and 302/307 (temporary) redirects differently: temporary codes signal that the old URL may come back, so search engines are slower to fully transfer ranking signals to the new URL. For any URL change you intend to be permanent, use 301 (or 308) from the start.
How to Build a Redirect Map for a Content Refresh (Step-by-Step)
Step 1: Audit Current URLs and Content
Run a full crawl of your site using a tool like Screaming Frog SEO Spider or Sitebulb. Export the list of all URLs along with response codes, meta tags, word count, and backlink data (from a tool like Ahrefs). This audit is what tells you which URLs are changing, which are disappearing, and which backlinks and internal links are at stake.
Step 2: Categorize Each URL
Add a status column to your spreadsheet and classify each URL into one of these buckets:
- Keep – content is still relevant, URL stays the same. No redirect needed.
- Refresh – content is updated but the URL changes. You need a 301 from old to new.
- Merge – two or more pages are combined into one. 301 each old URL to the new canonical URL.
- Delete – content is no longer relevant and has no replacement. Use a 410 Gone.
Step 3: Map Old URLs to New URLs
For each URL that needs a redirect, write down the new target URL. The mapping should be 1:1 whenever possible. Avoid redirecting multiple unrelated old URLs to the same new URL unless the content is genuinely consolidated — Google's site-move guidance warns that redirecting many pages to one page can dilute the relevance of the target page and can be treated as a soft 404 if the destination isn't a good match.
Step 4: Validate Redirect Chains
A redirect chain occurs when URL A redirects to B, which redirects to C, and so on. Keep chains as short as possible — ideally a single hop. Longer chains add latency, complicate debugging, and increase the risk that a link in the chain breaks silently. Use curl -I or Screaming Frog's redirect chain report to find and flatten chains before launch.
Step 5: Test in a Staging Environment
Before deploying, replicate your redirect rules in a staging environment that mirrors production. Crawl the staging site using the old URLs as seeds. Confirm that every old URL resolves to the correct new URL with a 301, and that no chains or loops exist.
Step 6: Implement the Redirect Rules
The implementation method depends on your server stack. Here are examples for common environments:
Apache (.htaccess)
Redirect 301 /old-page https://example.com/new-page
nginx
location /old-page {
return 301 https://example.com/new-page;
}
Next.js (next.config.js)
{
"redirects": [
{
"source": "/old-page",
"destination": "/new-page",
"permanent": true
}
]
}
Step 7: Monitor Post-Launch
After deployment, monitor Google Search Console for an increase in 404 errors, crawl anomalies, or indexation drops. Cross-check server logs to spot 404s that Search Console hasn't surfaced yet. Set up an alert (or a recurring manual check) for any sudden spike in 404 responses in the days and weeks after launch, since that's the fastest signal that part of the redirect map is incomplete.
Common Pitfalls and How to Avoid Them
Most redirect-mapping failures trace back to a handful of recurring mistakes:
- Redirect chains longer than necessary. Use a tool like
httpstatus.ioor Screaming Frog to check every redirect path before going live and flatten multi-hop chains to a single redirect. - Redirect loops. A loop occurs when A → B → A. Always test with a loop detection tool before launch.
- Not updating internal links. Even with perfect redirects in place, internal links that still point to old URLs create unnecessary extra hops. Use a crawler to find and update internal links to point directly to the final URLs.
- Ignoring HTTPS and www variants. If your site is also moving from HTTP to HTTPS, or from www to non-www, the redirect map needs to account for the canonical protocol and subdomain as a separate dimension from the path change.
- Wasting crawl budget on low-value redirects. If you redirect a large number of low-value URLs, you consume crawl attention that could go to important pages. Consider a 410 for genuinely deleted content instead of a 301 to a loosely related category page.
When to Use 302 vs 301 vs 307 vs 410
Direct answer: Use 301 (or its HTTP/1.1 equivalent, 308) for any URL change you intend to be permanent. Reserve 302/307 for genuinely temporary situations, and use 410 only for content that is gone for good with no reasonable replacement.
| Status Code | Purpose | Typical Effect | Use Case |
|---|---|---|---|
| 301 | Permanent redirect | Signals a permanent move; ranking signals transfer to the new URL | Permanent URL changes |
| 302 | Temporary redirect | Signals the move may not be permanent | A/B testing, seasonal content |
| 307 | Temporary redirect (HTTP/1.1) | Same intent as 302, but preserves the original request method (e.g., POST) | API endpoints, form submissions |
| 410 | Gone | Tells search engines the page is intentionally, permanently removed | Deleted content with no replacement |
A common mistake is using a 410 for a page that still has meaningful backlinks. If a page has an active backlink profile, redirecting (301) to the closest relevant replacement is usually better than removing it outright — even if the match isn't perfect, some signal transfer beats none.
Redirect Mapping for Content Refreshes Without URL Changes
Direct answer: If you refresh the content on a page but keep the same URL, you don't need a redirect at all. You still need to check that the page's metadata and internal links reflect the update.
A content refresh without a URL change is a good moment to revisit the title tag, meta description, and schema markup so they match the updated content. It's also worth checking for duplicate or near-duplicate content elsewhere on the site — if a refresh effectively merges two pages' worth of content into one, the page you're retiring should 301 to the one you're keeping, even though this specific refresh didn't otherwise require any redirect work.
Handling Redirects for Large-Scale Migrations (Domain Change, CMS Migration)
Direct answer: When you change domains or migrate to a new CMS, the redirect map becomes the single most important deliverable of the project. Pair it with Search Console's Change of Address tool, and expect the mapping work itself — not the technical implementation — to be the long pole.
Google's Change of Address tool in Search Console requires 301 redirects to be in place from old URLs to their new equivalents before it will accept a domain move, and it spot-checks a sample of URLs for working redirects as part of the process. In a CMS-to-CMS migration, matching every product ID, category, and blog post across two different database schemas is usually the hardest part of the job — harder than writing the redirect rules themselves. A script that joins the old CMS's URL export against the new CMS's URL structure (matched on slug, product ID, or another stable identifier) is generally faster and more reliable than mapping by hand once you're past a few hundred URLs.
The key rule: never rely on a wildcard redirect (for example, RedirectMatch 301 /* https://newdomain.com/). Wildcards only work when the URL path structure is identical on both domains. In most migrations the path structure changes at least partially, so you need explicit, reviewed mappings rather than a blanket rule.
Measuring Success: KPIs After Redirect Mapping
- Organic traffic – track the trend against pre-migration baselines; a well-executed migration should show recovery over the following weeks, not a permanent step down.
- Indexation rate – monitor the number of indexed URLs in Google Search Console. A sudden drop can indicate broken or missing redirects.
- Crawl errors – should trend down toward zero as Google re-crawls and confirms the new URL structure.
- 404 rate – ideally 0% of old URLs return 404s; any nonzero rate points to gaps in the map.
- Bounce rate on landing pages – watch for increases, which can mean redirects are sending users to pages that don't match their original intent.
Frequently Asked Questions
How long should I keep redirects active?
As long as reasonably possible — ideally indefinitely for URLs with an established backlink profile. External links, bookmarks, and citations to an old URL can keep sending traffic and link equity for years, so removing a redirect early risks losing both.
Can I use a wildcard redirect for all old URLs?
Only if the URL path structure is identical between old and new. For example, moving example.com/blog/post to newdomain.com/blog/post with no other path changes can use a wildcard safely. Otherwise, you risk sending users to mismatched content, which search engines can treat as a soft 404.
Do I need to redirect every old URL to a new one?
Ideally yes, but if the content is genuinely gone with no replacement, use a 410 rather than forcing a 301 to a loosely related page. A 301 to a page that isn't a real match can be treated as a soft 404 and doesn't reliably preserve link equity anyway.
What is the difference between a redirect map and a sitemap?
A redirect map tells crawlers and users where to go from old URLs. A sitemap lists the current URLs you want indexed. Both matter during a migration, but they serve different purposes — don't include redirected (old) URLs in your sitemap.
How do I test redirects before going live?
Use a staging environment with curl -I, Screaming Frog's redirect checker, or a dedicated redirect-testing tool. Run the old URLs as seeds and verify the final response code and destination for each one before deploying to production.
Should I update internal links after a redirect?
Yes. Internal links should point directly to the final URL to avoid unnecessary redirect hops. Use a site crawler to find any internal links still pointing to old URLs and update them via search-and-replace in the CMS or a direct database query.
Sources
- Google, "Redirects and Google Search" (Search Central)
- Google, "Site Moves and Migrations" (Search Central)
- Google, "Large site owner's guide to managing your crawl budget" (Search Central)
- Google, "Change of Address tool" (Search Console Help)
- Screaming Frog, "Redirects" documentation
- Moz, "The Ultimate Guide to Redirects"
Takeaway: A redirect map is not a one-time task — it's a living document that protects a site's search equity through every content refresh or URL change. Build it methodically, validate it in staging, and keep watching Search Console and server logs after launch so any gaps surface while they're still easy to fix.



