HTTP status · 3xx — redirection
301 Moved Permanently
301 Moved Permanently says the resource now lives at a new URL and future requests should use that URL.
Key facts
| Class | 3xx — redirection |
|---|---|
| Standard | RFC 9110 §15.4.2 |
| Cacheable by default | Yes |
| Method handling | May be changed to GET (except HEAD) |
| SEO | Signals a permanent move; link equity consolidates |
What 301 means
The target resource has a new permanent URI, given in the Location header. Clients should update bookmarks and caches may store the redirect indefinitely. For search engines, a 301 is the standard way to consolidate two URLs into one and pass ranking signals to the destination.
301 versus 308, and common mistakes
A 301 may change a POST into a GET, which is why the standard reserves 308 for a permanent move that preserves the method. For ordinary page moves this difference rarely matters. Frequent mistakes are redirect chains (A→B→C), redirect loops, and using 301 for a temporary campaign URL. Keep it to one hop and point at the final canonical URL.
Frequently asked questions
Does a 301 pass SEO value?
Yes. It is the conventional signal for a permanent move and tells search engines to treat the destination as the new address.
What is the difference between 301 and 302?
301 is permanent and cacheable by default. 302 is temporary and not cacheable by default, so clients keep requesting the original URL.
Should I use 301 or 308?
Use 301 for normal page moves. Use 308 when the request method and body must be preserved, such as an API endpoint moved permanently.