3xx Redirection
301 Moved Permanently
The resource has permanently moved to the URL in the Location header.
Check a URL's HTTP statusWhat it means
Browsers and search engines follow the redirect and remember it. Clients may change a POST into a GET when following a 301; use 308 to preserve the method.
Common causes
- A page, domain, or URL structure was permanently changed.
- HTTP was redirected to HTTPS, or non-www to www.
How to fix it
- Point internal links directly at the final URL to avoid an extra hop.
- Avoid redirect chains: redirect old URLs straight to the final destination.
Example response
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-locationWorked example
A client requests an old URL and receives a redirect with a Location header. It requests the destination next, preserving or changing the HTTP method according to the specific redirect code.
How to read this response
- Find the status line in your browser's Network panel, API client, or server access log.
- Read the response body and headers shown above; headers such as Location, Allow, Retry-After, and WWW-Authenticate explain the next step.
- Use the code's class to orient your diagnosis: informational, successful, redirected, request-related, or server-side.
SEO impact
A 301 passes ranking signals to the destination URL and is the standard choice for permanent URL changes.
How to check a status code
Enter a URL in the HTTP Status Checker to see its status code, every redirect hop, and response time. For redirect-heavy pages, the Website Speed Test shows how much time redirects add.
Frequently asked questions
- What it means: HTTP 301
- 301 Moved Permanently: The resource has permanently moved to the URL in the Location header.
- Common causes: 301
- A page, domain, or URL structure was permanently changed. HTTP was redirected to HTTPS, or non-www to www.
- How to fix it: HTTP 301
- Point internal links directly at the final URL to avoid an extra hop. Avoid redirect chains: redirect old URLs straight to the final destination.
Defined in RFC 9110.