Skip to content

Redirect types

RouteSeam supports four HTTP redirect status codes: 301, 302, 307, and 308. You pick one when you create a domain, and you can change it later from the domain detail page. This guide explains each code in plain language and helps you pick the right one.

301 — Permanent Redirect. The classic “this moved forever” signal. Browsers and search engines cache a 301 aggressively: once a client has seen it, it may skip the old URL entirely and go straight to the destination. Use 301 for SEO-driven domain migrations when you are certain the move is final, because it is the best-understood signal for transferring search ranking to the new domain. The trade-off: the cached redirect is hard to take back. If you later change the destination, clients that cached the old 301 may never see the update.

308 — Permanent Redirect (preserves method). Also permanent and cacheable, but with a guarantee 301 lacks: the client must re-send the request with the same HTTP method. A POST to the old domain stays a POST to the new one, whereas some clients historically rewrote a 301 POST into a GET. 308 is the RouteSeam default because it is permanent, cacheable, and strictly safer for anything that is not a plain browser GET.

302 — Temporary Redirect. Tells clients “go here for now, but keep asking me next time.” Browsers and search engines do not permanently cache it, and search engines generally keep the old URL indexed. Use 302 for maintenance windows, experiments, and any move you expect to reverse. Do not use it for a permanent migration — you lose SEO transfer.

307 — Temporary Redirect (preserves method). Temporary like 302, but with the same method-preservation guarantee as 308. Use it when a redirect must be reversible and might carry non-GET traffic, such as form posts or API calls during a staging cutover.

If you need… Use
A permanent move, SEO transfer, conventional migration 301
A permanent move that must preserve the request method (default) 308
A reversible, short-lived redirect 302
A reversible redirect that must preserve the request method 307

For a rebrand or domain migration, use a permanent code (301 or 308) and leave it in place — ideally indefinitely. Search engines transfer ranking signals to the destination over weeks, not days, and removing or flipping the redirect resets that work. A few rules of thumb:

  • Keep preserve path and preserve query on so old.com/blog/post?utm_source=x lands on the exact matching URL at the new domain, not the homepage. Page-for-page redirects transfer ranking far better than domain-to-homepage redirects.
  • Do not chain: point the old domain directly at the final destination. Redirect chains dilute ranking signals and slow every visit.
  • Do not switch a 301/308 back to a 302 after launch; that tells search engines the move was temporary and stalls the transfer.

Preserve path is on by default. With it on, old.com/products/widget redirects to new.com/products/widget. With it off, every request lands on the destination root regardless of the original path. Turn it off only when the old site’s URL structure has no equivalent on the new one.

Preserve query is on by default. With it on, old.com/products?id=123 becomes new.com/products?id=123, keeping tracking parameters such as utm_source intact through the redirect.

When you add example.com, RouteSeam offers Include www.example.com so both example.com and www.example.com redirect without creating a second domain. Visitors reach the destination no matter which form they type. See domains and routes for how the two hostnames relate to a single RouteSeam domain.

RouteSeam validates your configuration before it goes live and refuses redirects that obviously point back at themselves:

  • Direct loops: foo.comfoo.com is rejected at creation.
  • Two-hop loops: if foo.com redirects to bar.com and bar.com redirects to foo.com, RouteSeam flags the configuration instead of serving an infinite cycle.

If the destination you entered would create a loop, the form shows a validation error and the domain is not activated. Point the domain at the final destination instead of at another RouteSeam-managed domain that leads back.

If a live redirect misbehaves, check DNS and TLS for the failure states.