All HTTP status codes
3xx Redirection
RFC 9110

301 Moved Permanently

The resource has been permanently moved to a new URL.

What it means

HTTP 301 Moved Permanently signals that the requested resource has been assigned a new permanent URI. All future requests should use the new URI given in the Location header.

When it's used

Domain migrations, URL restructuring, HTTPS migrations, removing trailing slashes, www-to-non-www consolidation.

Common causes
  • Site migration to new domain
  • Old URL retired in favor of cleaner slug
  • Force HTTPS redirect from http://
  • Canonicalize www. vs non-www variants
How to fix it
  • This is the correct behavior for permanent moves
  • Verify the Location header points to the final destination (avoid redirect chains)
  • Update internal links to point directly to the new URL
  • Keep 301s in place forever — removing them breaks SEO equity transfer
Example response
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page/
SEO impact

Critical for SEO. Passes ~100% of link equity to the new URL. Always prefer 301 over 302 for permanent moves.