A redirect changes the route, not the original backlink
A backlink is an HTML link on a source page. If its destination returns a 301, a client can follow the Location header to another URL. The source author’s href does not thereby change. Separate the source link, the redirecting URL and the final document in your records. A move can preserve access to relevant content; creating an extra forwarding URL is not the same as earning a new editorial endorsement.
RFC 9110 · 301 / 302 / 307 / 308
Confirm which URLs you control
The destination operator can change routing only where they control the host or application. An external publisher controls the source page. Record both responsibilities before proposing a fix. Update your own internal references and, where appropriate, ask the publisher to update an old link; retain a working mapping for readers who still use it. This guide does not create links through Google URLs, acquire expired domains or send outreach messages.
Build a mapping based on content and intent
Inventory the old URL, its purpose, the proposed replacement and evidence of equivalent content. Include links observed in your own records, internal navigation and sitemaps; an export is not necessarily a complete inventory. Preserve meaningful language, product or query variants instead of sending every old path to the homepage. When content is permanently gone and no suitable replacement exists, a missing-resource response can be the correct outcome. In the examples, equivalence is an explicit teaching assumption, not an automated content-quality verdict.
Choose permanent or temporary behavior deliberately
Use 301 or 308 for a genuinely permanent move and 302 or 307 when the original location is expected to return. Google documents these as different canonicalization signals; a local status test cannot reveal the canonical it ultimately selects. This exercise uses GET. For endpoints that accept POST or other methods, review method-preservation semantics before choosing a code. Browser and proxy caching also matter when correcting a previously cached permanent redirect; the lab sends no-store to make repeated practice predictable.
Reproduce seven before-and-after cases
The kit runs a real HTTP server on loopback. Each source page contains the same link in both configurations; only the destination routing changes. Select a case and phase, then inspect every response rather than only the last address in the browser. The loop stops before another repeated request. The working control is deliberately unchanged. This is a reproducible engineering exercise, not a crawl of your site or a simulation of a search engine.
| ID | Intended outcome | Before | After |
|---|---|---|---|
| R01 | The former guide has a relevant replacement at /guide, but the old URL currently returns 404. | 404 /r1/old-guide | 301 /r1/old-guide → 200 /guide |
| R02 | The old guide reaches the correct document through /middle. The content works; the extra hop is avoidable. | 301 /r2/old-guide → 301 /middle → 200 /guide | 301 /r2/old-guide → 200 /guide |
| R03 | The old URL and /r3/loop send requests back to each other; no terminal content is reached. | 301 /r3/old-guide → 301 /r3/loop · Repeated URL: stopped before another request | 301 /r3/old-guide → 200 /guide |
| R04 | The visitor expects a guide, but /home contains only general navigation. Both configurations end in 200. | 301 /r4/old-guide → 200 /home | 301 /r4/old-guide → 200 /guide |
| R05 | The content is permanently removed; sending visitors to /home does not fulfil its purpose. | 301 /r5/old-guide → 200 /home | 410 /r5/old-guide |
| R06 | The original service is expected to return; /holding is only a temporary notice. | 301 /r6/old-guide → 200 /holding | 302 /r6/old-guide → 200 /holding |
| R07 | The old guide already reaches its relevant replacement with a single 301. | 301 /r7/old-guide → 200 /guide | 301 /r7/old-guide → 200 /guide |
R01 · Moved page has no mapping
Add one permanent redirect to the declared replacement.
The same old URL returns 301, then /guide returns 200 with the replacement guide.
R02 · Working chain takes an unnecessary detour
Point the old URL directly at /guide while keeping any still-needed intermediate mapping.
The path changes from three requests to two, with the same final guide and unchanged source link.
R03 · Two URLs form a loop
Replace the old URL’s rule with a direct mapping to /guide.
The repeated-path stop disappears and the two observed responses are 301 then 200.
R04 · A successful homepage is the wrong destination
Map to the relevant /guide, not an unrelated success page.
Check the final path and body as well as status. This is not an observed Google soft-404 classification.
R05 · Removed content has no equivalent replacement
Return 410 for this declared removal and remove stale internal references.
The old URL returns 410 with an unavailable page. No invented replacement or recovered ranking is claimed.
R06 · A temporary move was marked permanent
Use the temporary 302 behavior for this GET example, with a plan to restore the original service.
The same notice is reached through 302 rather than 301. Search processing and prior cached responses need separate checks.
R07 · Correct permanent mapping remains unchanged
Retain the working mapping and record it as a control.
Before and after evidence is identical. No unnecessary fix or ranking improvement is invented.
Verify the complete path after deployment
After deploying an authorized mapping, test the public URL through the real proxy or CDN. Record the first status, every Location, the terminal URL, status and expected content. Check relevant query strings, protocol and hostname variants deliberately. Confirm intended crawl access, canonical and indexing directives separately. Test known loops and old intermediate paths, then retain the evidence and an owner for correction. A successful request does not prove that Google has recrawled the change or that traffic will improve.
Indexing, canonical selection, traffic and ranking outcomes remain unmeasured. No percentage of transferred authority is calculated.
Keep the mapping useful over time
Keep a dated map and recheck important old links after routing or CMS changes. Google’s site-move guidance recommends retaining redirects for as long as possible, generally at least a year; continuing visitor use can justify keeping them longer. Update internal links and sitemaps to current destinations. Monitor known source/target pairs and consult authorized search data when available. Changes in provider counts have their own collection dates and scopes, so a delayed dashboard update does not by itself prove a redirect failed.
Python 3.10 or newer. Extract the ZIP to a local folder. The verification command starts a temporary loopback server, tests every case, prints JSON and stops. It does not contact external websites.