301 vs 302 and why it matters
A 301 is permanent and passes ranking signals to the destination; a 302 is temporary and tells Google to keep the original indexed.
Using the wrong one — especially a 302 for a permanent move — can stall the transfer of equity to the new URL.
- 301 = permanent move; consolidates signals to the new URL (use for real moves)
- 302/307 = temporary; keeps the original indexed (use only for genuine temporary cases)
- Meta refresh and JS redirects are weaker, slower signals — prefer server-side 301s
- Redirect to the closest relevant page, not a generic homepage
- Implement at the server level (.htaccess, Nginx, or platform rules) for reliability
Redirect mapping and avoiding chains
During any URL change — migration, restructure, product retirement — the deliverable is a redirect map: each old URL to one best new URL.
Then keep it clean, because redirect chains and loops waste crawl budget and bleed a little equity at each hop.
- Build a one-to-one old→new map from a full crawl of existing URLs
- Redirect directly to the final destination — collapse chains (A→B→C becomes A→C)
- Eliminate redirect loops that trap crawlers and users
- Update internal links to point at final URLs, not through redirects
- Keep redirects in place long-term while old URLs retain links and authority
- Test the full map before and after launch, including edge cases and parameters
More on technical seo
Frequently asked questions
Do 301 redirects pass all my ranking power to the new page?
They pass the large majority of ranking signals, and Google has said little to no PageRank is lost through a 301. But redirecting to an irrelevant page, or through long chains, weakens the outcome — the relevance of the destination matters.
How long should I keep a 301 in place?
As long as the old URL still receives links or traffic — often indefinitely. Google needs to see the redirect consistently to fully transfer signals, and removing it too soon breaks that and creates 404s.
Can too many redirects slow my site down?
Chains and loops add latency and waste crawl budget. A single clean redirect is cheap; the problem is layers accumulating over years. Part of our work is flattening chains so each old URL hops once to its final home.