301 redirect
A permanent forward from an old URL to a new one. Visitors land on the right page and the old URL's ranking follows it over.
See it
What it is
A 301 is an HTTP status code meaning 'this URL moved, permanently, and here is the new one'. The server answers with 301 plus a Location header, the browser follows it, and search engines transfer the old URL's accumulated ranking signals to the new address. Its cousins: 302 and 307 are temporary (keep indexing the old URL), and 308 is a permanent redirect that also preserves the request method, which matters for POSTs.
Reach for it whenever a URL changes and you do not control every link pointing at it, which is always. Renamed slugs, restructured folders, http to https, www to bare domain, two thin blog posts merged into one good guide, a whole domain migration. Map old to new page by page: the closest equivalent content, not a generic landing page.
Three traps. Browsers cache 301s hard, so a wrong one can haunt returning visitors long after you fix the config; test with a 302 first if you are unsure. Redirect chains (A to B to C) waste crawl budget and are easy to accumulate over years, so flatten them to a single hop and never let one loop. And dumping hundreds of dead URLs onto the homepage is not a migration: search engines treat an irrelevant redirect as a soft 404 and pass nothing.
Ask AI for it
Set up 301 redirects for this URL change. Add permanent (301) redirects mapping each old path to its closest equivalent new path, one hop only, with no chains and no loops, preserving query strings where they carry meaning. Configure them at the edge or in the framework's redirect config rather than with client-side JavaScript, so crawlers see the real status code. Do not funnel unmatched old URLs to the homepage: let genuinely dead pages return 404 or 410. Then update internal links to point at the new URLs directly instead of relying on the redirect, and list only the new URLs in the sitemap.