---
title: "301 Moved Permanently"
canonical: "https://lemwatch.com/http-status-codes/301"
category: "redirection"
last_verified: "2026-08-11"
source: "https://lemwatch.com"
---

# HTTP 301 Moved Permanently

**TL;DR** — A 301 is the "this URL has moved forever" redirect. Use it whenever a page genuinely moved permanently — Google transfers the old URL's ranking to the new one, but only if the redirect target is a true equivalent. Don't use 301 for A/B tests, login flows, or temporary maintenance pages; use 302 or 307 instead. Avoid chains: A→B→C drops more equity at every hop than A→C directly.

## What it means

HTTP 301 Moved Permanently tells browsers, crawlers, and intermediary caches that a URL has permanently changed location. Search engines treat 301 as the strongest signal that the old URL's ranking history, link equity, and indexing status should transfer to the new URL. Browsers cache 301s aggressively (sometimes forever) so once a 301 is set, it sticks — making accidental 301s genuinely painful to reverse. Use 301 whenever a move is permanent: domain change, HTTPS upgrade, slug rewrite, content consolidation. Use 302 (or 307) for anything temporary.

## Common causes

- HTTP → HTTPS sitewide migration
- Domain change (oldbrand.com → newbrand.com)
- URL structure overhaul (/2024/article-title → /article-title)
- Consolidating duplicate pages into a canonical version
- Removing trailing slash inconsistency (/about/ → /about)
- Country-code domain consolidation (.co.uk + .com → single domain)
- Switching CMS platforms with different URL schemes

## How to fix

- Map every old URL to a specific new URL — never redirect everything to the homepage (Google flags this as a "soft 404")
- Avoid redirect chains: A→B→C drops equity at each hop and slows page load. Always redirect A→C directly
- Update internal links to point at the final URL — internal 301s waste crawl budget and load time
- Update XML sitemaps to list only the new URLs
- Keep 301s in place forever — removing them years later breaks every backlink to the old URL
- Use 308 instead of 301 if the redirect must preserve HTTP method (POST/PUT) — relevant for API endpoint moves
- Submit the new sitemap to Google Search Console and use the Change of Address tool for full-domain migrations

## SEO impact

The most SEO-critical of all redirect codes. Google passes ~100% of ranking signals through 301s (since 2016). Done well, a 301 preserves rankings during a migration. Done poorly — redirect chains, blanket redirects to the homepage, broken target URLs — it can erase 40–80% of organic traffic. The "Change of Address" tool in Google Search Console accelerates the transfer for full-domain moves. Browsers cache 301s aggressively, so testing a redirect once it's deployed requires an incognito window or a different browser.

## Monitoring tip

LemWatch detects redirect chains (A→B→C→D) and alerts when chains exceed 2 hops — each hop adds latency and drops ranking signal. We also flag broken final targets (a 301 pointing to a 404 is the worst-case failure mode).

**Related:** [302](https://lemwatch.com/http-status-codes/302.md), [307](https://lemwatch.com/http-status-codes/307.md), [308](https://lemwatch.com/http-status-codes/308.md), [404](https://lemwatch.com/http-status-codes/404.md), [410](https://lemwatch.com/http-status-codes/410.md)

_Canonical HTML page: https://lemwatch.com/http-status-codes/301_
