301 redirect mapping is the process of deciding where old URLs should send users and search engines after URLs change, making it a critical part of website migration SEO.
It sounds simple. Old page goes here. New page goes there. Add a 301 redirect. Ship it.
The trouble starts when you have hundreds, thousands, or hundreds of thousands of URLs.
A website migration can change directories, consolidate pages, remove outdated content, alter the URL structure, or move the entire site into a new CMS. Without a carefully built redirect map, valuable URLs can turn into 404 errors, backlinks can point to dead pages, and search engines can struggle to understand where content moved.
A good redirect mapping process gives every important old URL an intentional destination. Just as importantly, it identifies URLs that should not be redirected.
Here is how to build a 301 redirect map, implement it, and QA the migration.
What Is 301 Redirect Mapping?
301 redirect mapping creates a documented relationship between an old URL and the new URL that should replace it.
A basic redirect map might contain:
| Old URL | New URL | Status |
|---|---|---|
| /old-services/ | /services/ | 301 |
| /old-pricing/ | /pricing/ | 301 |
| /legacy-product/ | /products/new-product/ | 301 |
When a browser, Googlebot, or another crawler requests an old URL, the server returns a 301 status code and sends the request to the mapped destination.
The HTTP status indicates that the resource has moved permanently. Google’s redirect documentation provides additional guidance on how Google Search handles permanent and temporary redirects.
Redirect mapping becomes particularly important during site migrations because old URLs may already be indexed, rank for valuable searches, attract organic traffic, or have backlinks pointing to them.
Your goal is not simply to eliminate every 404 page.
Your goal is to preserve meaningful relationships between old and new content.
That distinction matters.
Redirecting every deleted URL to the homepage may make a crawl report look cleaner, but it does not mean you created useful redirects. Search engines can treat irrelevant redirects as soft 404s when the destination does not adequately replace the requested content.
A successful 301 redirect mapping project therefore starts with relevance, not redirect volume.
Step 1: Crawl the Existing Website
Before changing anything, create an inventory of the current site.
Use a crawler such as Screaming Frog or another crawling platform to collect the URLs accessible through your website’s internal links.
Export data including:
- URL
- status code
- canonical URL
- page title
- indexability
- content type
- crawl depth
- internal links
- redirect destination, when applicable
Do this before the website migration.
Once the new CMS or URL structure launches, reconstructing the previous architecture becomes much harder.
The crawl establishes your baseline, but do not assume it contains every URL that matters. Crawlers primarily discover pages through links. An orphaned URL may still be indexed or receiving traffic even when the current site crawl cannot find it.
That is why the next step expands the URL inventory.
Step 2: Collect Old URLs From Multiple Sources
Your redirect mapping should account for important old URLs whether or not they appear in your initial crawl.
Combine URLs from several sources.
Google Search Console
Export URLs with search visibility from Google Search Console. This can reveal indexed pages and URLs receiving impressions or clicks that your crawler may have missed.
Google Analytics
Use Google Analytics or your preferred analytics platform to identify landing pages that have received organic traffic, conversions, or meaningful user activity.
Choose a historical window long enough to account for seasonality.
A page that received no traffic last month could still matter if demand peaks once a year.
Backlink data
Export URLs with external backlinks from your backlink analysis platform.
These URLs deserve additional attention because sending them to relevant destinations can help preserve link equity and maintain a useful path for people following old links.
CMS exports
Export published URLs directly from the CMS when possible.
This can uncover content that exists in the database but is difficult to discover through normal crawling.
Existing redirect rules
Collect current 301 redirect and 302 redirect rules.
You need to know whether old redirects will remain valid after the migration. Otherwise, you can accidentally create redirect chains or redirect loops when the new rules are introduced.
Combine these datasets into a master list and deduplicate the URLs.
The result should be a more complete inventory of URLs that search engines, users, and other websites could request after launch.
Step 3: Determine Which URLs Actually Need Redirects
Not every old URL needs a 301 redirect.
Start by categorizing URLs according to what will happen during the migration.
Typical categories include:
- URL remains unchanged.
- URL changes, but equivalent content exists.
- Multiple pages are consolidated into one page.
- Content is removed, but a close replacement exists.
- Content is removed with no meaningful replacement.
- URL is already redirected.
- URL should never have been indexed.
This classification prevents the common mistake of redirecting everything simply because the old URL will no longer return a 200 status code.
If an old page has a clear replacement, use a permanent redirect to the closest relevant new URL.
If no replacement exists, a 404 or 410 response can be more appropriate than an unrelated 301 redirect.
For example, suppose a discontinued software feature has no equivalent in the current product.
Sending its old documentation URL to the homepage does not suddenly make the homepage a replacement for that documentation. A 404 page may provide a more accurate response.
SEO is not improved by creating redirects that misrepresent the relationship between pages.
Step 4: Match Each Old URL to the Best New URL
This is the core of 301 redirect mapping.
For each URL requiring a redirect, identify the new page that most closely matches the intent and content of the old page.
Consider:
- page purpose
- primary topic
- search intent
- product or service represented
- historical rankings
- important backlinks
- current organic traffic
- new site architecture
Direct one-to-one replacements are easy.
If:
/services/seo-consulting/
becomes:
/seo-consulting/
the mapping is straightforward.
Consolidations require more judgment.
Suppose the old site had separate pages for:
/technical-seo-audits/
/seo-site-audits/
/website-seo-audit/
and the new site consolidates those topics into:
/seo-audits/
All three old URLs may reasonably redirect to the consolidated page.
What you generally should not do is map dozens of unrelated pages to the homepage simply because no direct equivalent exists.
Think of redirect mapping as semantic matching.
The destination should answer the request implied by the old URL as closely as possible.
Step 5: Build the Redirect Mapping Spreadsheet
Once you know the old and new URLs, document them in a working redirect map.
At minimum, include:
| Old URL | New URL | Redirect Type | Notes |
|---|---|---|---|
| /old-a/ | /new-a/ | 301 | Direct replacement |
| /old-b/ | /new-b/ | 301 | Consolidated content |
| /old-c/ | N/A | 404/410 | No replacement |
For larger site migrations, add fields such as:
- old status code
- new status code
- old canonical
- new canonical
- indexability
- organic traffic
- backlinks
- redirect reason
- QA status
- implementation status
- priority
The spreadsheet becomes the source of truth shared between SEO, development, content, and QA teams.
Be consistent with URL formatting.
Decide whether your sheet will use absolute URLs or relative paths and stick to that convention. Account for trailing slashes, capitalization, parameters, subdomains, and protocol changes when they are relevant to the site’s configuration.
This is also the point where pattern-based redirect rules may become apparent.
If every URL under an old directory has an equivalent URL under a new directory, developers may be able to implement a controlled pattern rather than hundreds of individual rules.
Pattern-based redirects should still be tested against actual URLs. A clever rule that catches too much can create much larger problems than a few missing redirects.
Step 6: Check for Canonical Conflicts
Redirects and canonical tags should communicate a consistent story.
If URL A redirects to URL B, you generally do not want URL B’s canonical pointing somewhere unrelated.
Before launch, review the canonical configuration on destination pages.
Check that important new pages:
- return a 200 status code
- are indexable when intended
- use the correct canonical
- do not canonicalize back to an old URL
- do not canonicalize to an unrelated page
Canonical tags and redirects solve different problems.
A canonical is a signal identifying a preferred URL among duplicate or substantially similar URLs. A 301 redirect actually sends users and crawlers from one URL to another.
Do not use a canonical as a substitute for redirecting a URL that has genuinely moved permanently.
Step 7: Implement the 301 Redirects
How redirects are implemented depends on the server and technology stack.
Redirect rules might live in:
- Apache configuration
- Nginx configuration
- application code
- a CMS
- an edge or CDN configuration
- a dedicated redirect management system
The important part from an SEO perspective is the resulting HTTP behavior.
When an old URL has permanently moved, requesting it should return the appropriate redirect status and lead directly to the intended new URL.
Avoid relying on JavaScript or client-side behavior when a normal server-side redirect is available.
Also distinguish permanent redirects from temporary ones.
A 301 status code signals that a resource has moved permanently. A 302 redirect generally communicates that the move is temporary.
That difference matters when deciding which URL search engines should ultimately treat as the primary location.
Step 8: Update Internal Links
A 301 redirect is not a replacement for updating your own links.
If the new site still links internally to old URLs, users and crawlers must pass through unnecessary redirects before reaching the final page.
Update internal links so they point directly to the new destination.
This includes links in:
- navigation
- body copy
- breadcrumbs
- XML sitemap references
- footer navigation
- related-content modules
- structured data where URLs are referenced
- canonical tags
- hreflang annotations, when applicable
Cleaning up internal links reduces unnecessary requests and helps search engines understand the new URL structure more efficiently.
It also reduces the chance that old URLs continue to be discovered long after the migration.
Step 9: Eliminate Redirect Chains
A redirect chain occurs when one URL redirects to another URL that redirects again.
For example:
URL A → URL B → URL C
If URL C is now the final destination, update the rule so URL A redirects directly to URL C.
URL A → URL C
This becomes especially important across repeated site migrations, including a domain migration.
Imagine an article changed URLs in 2022 and changes again in 2026. If you simply add another redirect without reviewing the existing rules, requests could pass through several historical URLs.
Redirect chains create unnecessary requests for users and crawlers, and they waste crawl budget. At scale, they can also make migration QA substantially harder.
Your redirect map should identify the final destination, not merely the next stop in a historical chain.
How to QA a 301 Redirect Map
Do not consider the project finished when developers say the redirect rules have been deployed.
Test them.
Redirect QA should happen in a staging environment when technically possible and again after the production website launches. A broader SEO migration checklist can help ensure redirect testing is coordinated with the other technical and search checks required during launch.
Test every mapped old URL
Run the complete list of old URLs through a crawler or HTTP status checking process.
For each intended 301 redirect, verify:
- The old URL returns the expected permanent redirect.
- The redirect points to the mapped destination.
- The destination returns a 200 status code.
- The destination is the correct page.
- There is no redirect chain.
- There is no redirect loop.
Do not spot-check five URLs and assume 5,000 redirect rules work.
Test the complete mapping whenever possible.
Crawl the new website
Next, crawl the new site independently.
Look for:
- 404 errors
- broken links
- internal 301 redirects
- internal 302 redirects
- redirect chains
- redirect loops
- non-indexable pages that should be indexed
- incorrect canonical tags
This catches issues that your redirect-map test cannot.
For example, all your old URLs could redirect perfectly while the new navigation contains broken links.
Those are separate problems.
Check for redirect loops
Redirect loops occur when redirects eventually send the request back to a URL it has already visited.
For example:
URL A → URL B → URL A
The page never resolves.
Redirect loops can result from overlapping redirect rules, CMS behavior, protocol rules, trailing-slash normalization, or conflicts between server-level and application-level redirects.
They should be treated as launch-blocking errors on important URLs.
Monitor 404 errors after launch
Even a thorough pre-launch URL inventory can miss something.
After the website migration, monitor crawling and search data for unexpected 404 errors.
Review Google Search Console and your server or analytics data where available.
Some 404s are normal. The goal is not to force every nonexistent URL to resolve.
Focus on old URLs that:
- were previously indexed
- receive traffic
- have backlinks
- are still linked internally
- have an obvious new equivalent
If a valuable old URL was accidentally omitted from the redirect mapping, add the correct redirect rule.
Submit and monitor the new site
Make sure your XML sitemap contains the new canonical URLs rather than old URLs or redirected URLs.
Then monitor indexing, organic traffic, rankings, and crawling behavior following launch.
Some volatility can occur during major URL changes while search engines crawl and process the new structure.
What you want to identify quickly are systematic problems, such as entire directories returning 404 errors or large groups of redirects pointing to incorrect destinations.
A clean 301 redirect mapping process cannot guarantee rankings remain unchanged after a website migration. Many variables can affect SEO performance.
It can, however, remove a large category of preventable migration errors. For organizations working with a performance marketing agency, accurate redirect implementation also helps keep SEO changes coordinated with the broader marketing program.
301 Redirect Mapping Checklist
Before launch, confirm that your team has:
- Crawled the old website.
- Collected old URLs from crawling, analytics, search data, backlinks, and the CMS.
- Identified which URLs actually require redirects.
- Mapped old URLs to the closest relevant new pages.
- Documented URLs intentionally returning 404 or 410 responses.
- Reviewed canonical configuration.
- Implemented appropriate permanent redirects.
- Updated internal links to the new URLs.
- Removed unnecessary redirect chains.
- Checked for redirect loops.
- Tested the full redirect map.
- Crawled the new website for errors.
- Prepared post-launch monitoring in Google Search Console and analytics.
The bigger the site, the more valuable this process becomes.
A spreadsheet with 50 redirects is manageable manually. A migration involving 50,000 URLs needs clear rules, programmatic validation, and prioritization based on factors such as indexation, traffic, rankings, and backlinks.
Either way, the principle stays the same:
An old URL should redirect when there is a meaningful new destination. When there is not, do not manufacture one just to avoid a 404.
Frequently Asked Questions
What is redirect mapping?
Redirect mapping is the process of documenting where old URLs should redirect when a website’s URLs or content structure changes. A redirect map commonly pairs each old URL with its appropriate new destination and specifies the required status code.
When should I use a 301 redirect?
Use a 301 redirect when a URL has moved permanently and there is a relevant replacement destination. Common examples include URL changes, page consolidations, HTTPS or domain migrations, and website migration projects where old pages receive new permanent URLs.
Should I use a 301 or 308 redirect?
Both 301 and 308 are permanent redirect status codes. One technical distinction is that a 308 requires the request method and body to be preserved, while behavior around a 301 can differ depending on the client. For ordinary webpage URL migrations, 301 redirects are widely used. Your implementation should also account for your server, application, and request behavior.
Are 301 redirects better for SEO, and do they pass SEO value?
A relevant 301 redirect helps search engines understand that content has permanently moved to a new URL. It can also help consolidate signals associated with the old URL, including signals from backlinks. That does not mean every 301 redirect automatically preserves rankings. The relevance and quality of the destination, changes to the page, internal linking, canonical configuration, and the broader migration can all affect SEO performance.
Is a 301 a permanent redirect?
Yes. The 301 status code means “Moved Permanently.” It is appropriate when the old URL has been permanently replaced by another location. Temporary moves generally call for a temporary redirect, such as a 302, depending on the situation.
What is a 302 redirect, and how is it different from a 301?
A 302 redirect represents a temporary redirect, while a 301 indicates a permanent move. If a page is permanently changing URLs, a permanent redirect usually communicates that relationship more accurately. Temporary redirects are useful when the original URL is expected to become the primary destination again.
How do I create a 301 redirect map for a website migration?
Start by collecting old URLs from your site crawl, Google Search Console, Google Analytics, backlink data, CMS, and existing redirect rules. Determine which URLs are changing, then map each old URL to the closest relevant new URL. Implement the redirect rules and crawl every old URL to confirm it returns the expected status code and resolves directly to a working destination. Finally, check the new site for 404 errors, redirect chains, redirect loops, broken internal links, and canonical problems.
