Skip to main content

What is a 301 redirect and how to use one without losing SEO

A redirect tells a browser (and a search engine) that a URL has moved. Get the type right and you keep your rankings. Get it wrong and you can silently lose traffic for months.

301 vs 302 vs 307 vs 308

  • 301 Moved Permanently — the page has moved for good. Search engines pass ranking signals to the new URL. Use this for real moves.

  • 302 Found — a temporary move. The original URL stays the canonical one. Use for A/B tests and short-term changes.

  • 307 — like 302 but guarantees the HTTP method (e.g. POST) is preserved.

  • 308 — like 301 but preserves the method, permanently.

How to set one up

On Apache, use a Redirect or RewriteRule in .htaccess. On nginx, use a return or rewrite in the server block.

text
# Apache (.htaccess)
Redirect 301 /old-page /new-page

# nginx
location = /old-page { return 301 /new-page; }

Redirect to the final destination, not through a chain

If /a redirects to /b and /b redirects to /c, a visitor and a crawler make two hops instead of one. Chains waste crawl budget and dilute signal. Point every old URL straight at the final URL.

Watch for loops

A redirect loop (A→B→A) means the page can never load. Our redirect chain visualiser flags a repeated URL immediately.

Redirect the whole site safely

  • Redirect old URLs to the closest equivalent on the new site, not everything to the homepage.

  • Keep the redirects in place for at least a year — removing them early loses the signal.

  • Update internal links so they point at the new URLs directly.

  • Re-check HTTPS and canonical tags after a move.

After a redesign or domain change, run the redirect chain visualiser over your most important old URLs to confirm each one lands where it should, in a single hop.