ShareYourGroupShareYourGroupHTTP Codes and Headers

HTTP 301 Moved Permanently

Redirection code, RFC 9110, section 15.4.2

What it means

The page has moved to a new address for good. Browsers and search engines are told to use the new address from now on.

A real response

This is the request and the answer our test server gave when we asked it to return 301.

GET /c/301 HTTP/1.1
Host: example.com

HTTP/1.1 301 Moved Permanently
Date: Sat, 14 Nov 2026 10:00:00 GMT
Content-Type: text/html; charset=utf-8
Location: /new-page
Content-Length: 11

<p>demo</p>

What browsers do with a POST

We sent a POST with the body hello to a test server that answered 301 and then reported what arrived at the new address. Chrome 157 sent GET and dropped the body. WebKit sent GET and dropped the body.

If you run the site

Use 301 when you change a URL for good, for example moving from http to https or renaming a page. Always send a Location header with the new address. For a POST, many browsers change the method to GET after a 301; if the method must stay the same, send 308. Search engines treat a 301 as a strong hint that the new address is the one to list. Still update your own menus and links, so that visitors do not have to pass through the redirect.

If you are a visitor

Your browser follows it by itself. If you get an endless loop, clear the site's cookies and cached data; if you run the site, see the loop warning below.

A common mistake

Redirecting every page to the home page. It confuses visitors and search engines. Redirect each old page to its closest new page.

Registered in the IANA HTTP Status Code Registry as Moved Permanently, defined in RFC 9110, section 15.4.2.

This is an independent guide. It is not connected with the IETF, IANA, any browser maker or any company named here. Meanings were checked against the RFC texts on 14 November 2026. Responses shown were recorded on 14 November 2026 from a small test server on the author's own computer.