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.