Skip to main content
SiteIndex

3xx Redirection

301 Moved Permanently

The resource has permanently moved to the URL in the Location header.

Check a URL's HTTP status

What 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

  1. Point internal links directly at the final URL to avoid an extra hop.
  2. Avoid redirect chains: redirect old URLs straight to the final destination.

Example response

HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-location

Worked 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

  1. Find the status line in your browser's Network panel, API client, or server access log.
  2. Read the response body and headers shown above; headers such as Location, Allow, Retry-After, and WWW-Authenticate explain the next step.
  3. 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.

Related codes

Tools