redirect RFC 9110

HTTP 301 Moved Permanently

The resource has permanently moved to a new URL — clients and search engines should update their references.

What it means

The URL the client requested is gone for good; the new location is in the `Location` header. Browsers cache 301s aggressively (often for the lifetime of the browser session or longer), so once you send a 301 to a client, changing the destination later requires clearing the browser's HSTS/redirect cache. Search engines transfer the link equity from the old URL to the new one after seeing 301s.

When servers send it

  • Permanent URL change (old /about-us → new /about)
  • HTTP → HTTPS canonical redirect
  • www → non-www or vice versa
  • Trailing slash normalization

What the client does

Follows the redirect to the new URL. Updates bookmarks, caches the redirect, and reports the new URL to search engines.

When you see it

  • Intentional permanent redirect

How to fix it

  • 1.If unexpected: check your webserver config, .htaccess, or Cloudflare Page Rules for a redirect you forgot about
  • 2.Never use 301 for temporary changes — it will get cached and be painful to reverse

Similar codes

← All HTTP status codes · HTTP status cheat sheet · HTTP headers reference