Developer Tools

HTTP 301 Moved Permanently

3xx Redirection. The requested resource has been permanently moved to a new URL, given in the Location header.

Runs in your browser. Your files and text never leave your device - nothing is uploaded.

3xx Redirection

What it means

The requested resource has been permanently moved to a new URL, given in the Location header.

PropertyDetail
Status class3xx Redirection
Defined inRFC 9110, Section 15.4.2
Cacheable by defaultYes. RFC 9110 lists it as heuristically cacheable, so a cache may reuse it without explicit freshness headers unless Cache-Control says otherwise. Browsers can therefore reuse a 301 without contacting the server, so a mistaken permanent redirect may persist for visitors after you remove it.
Who needs to actThe site owner, who sets it up. Clients just follow it.

What does HTTP 301 Moved Permanently mean?

HTTP 301 Moved Permanently means the resource now lives at a new URL, given in the Location header, and future requests should go there. Browsers follow it automatically and may cache it, and Google treats it as a strong signal that the new URL should replace the old one in search results.

How 301 Moved Permanently works

A 301 is the standard tool for moving content: renaming URLs, switching from HTTP to HTTPS, consolidating www and non-www, or moving to a new domain. RFC 9110 says the server should send a Location header with the new URL, and lets user agents follow it automatically. One historical quirk remains. When a POST hits a 301, browsers send the follow-up request as a GET, which the RFC permits for historical reasons. That is harmless for page moves but breaks APIs that redirect a POST, and it is the reason 308 exists.

Example 301 request and response

GET /blog/old-post HTTP/1.1
Host: example.com

HTTP/1.1 301 Moved Permanently
Location: https://example.com/blog/new-post
Cache-Control: max-age=3600

Cache-Control: max-age limits how long browsers reuse the redirect, which is useful while a migration is still settling.

When servers send 301 Moved Permanently

  • Site migrations, domain changes and HTTP to HTTPS moves.
  • URL normalisation, such as adding or removing a trailing slash or the www prefix.
  • Pages renamed, or merged into another page.
  • CMS slug changes that automatically create a redirect from the old address.

How to handle 301 Moved Permanently

If you are a visitor or API client

  • Update bookmarks, links and API base URLs to the address in Location.
  • If a page redirects in a loop, clear cookies and cached data for the site; a stale cached 301 can be the cause.

If you run the site

  • Redirect each old URL straight to its final destination. Google follows up to 10 hops, but every hop adds latency.
  • Point redirects at the most relevant equivalent page, not the homepage.
  • Use 308 instead if clients may send POST, PUT or DELETE to the old URL and the method must be kept.
  • Keep the redirects in place for as long as old links might still be followed.

301 and SEO

Google treats 301 and 308 identically: it follows the redirect and uses it as a strong signal that the target should be the canonical URL, so the new address is the one shown in search results. Canonicalisation also consolidates signals such as links onto the chosen URL, which is why a one-to-one 301 is the standard way to move a page without losing its standing. Update internal links and sitemaps to the new URLs so crawlers do not keep passing through redirects.

Related status codes

  • 308 Permanent Redirect: Also permanent, but guarantees the method and body are kept; Google treats the two the same.
  • 302 Found: Temporary: the old URL normally stays the one shown in search results.
  • 410 Gone: For content that is gone with no replacement, rather than a redirect to an unrelated page.

Frequently asked questions

Sources

Other 3xx Redirection codes

Reviewed by Raja Jahangir · Last reviewed: October 7, 2026