TrueURL

HTTP Status Codes Reference

Every HTTP response starts with a three-digit status code that tells the client what happened. Browse the codes by class, with plain-English explanations, example responses and what each one means for redirects and SEO.

2xx Success

The request was received, understood and accepted. A healthy redirect chain ends on one of these, usually 200 OK.

3xx Redirection

The client has to take further action, usually by requesting the URL in the Location header. These are the codes that make up a redirect chain.

4xx Client Error

The request can't be fulfilled as sent: the page doesn't exist, access is denied or the client has sent too many requests.

5xx Server Error

The server failed to fulfil an apparently valid request. Persistent 5xx errors block visitors and crawlers alike.

How to read an HTTP status code

The first digit gives the class of the response, and the other two identify the exact meaning within that class. A client that doesn't recognise a specific code treats it like the x00 code of its class, so an unknown 4xx code is handled like 400 Bad Request.

The reason phrase after the number, such as Not Found or Moved Permanently, is only a description for humans. Clients act on the number alone, and HTTP/2 and HTTP/3 don't send a reason phrase at all.

Redirect status codes at a glance

  • 301 Moved Permanently: permanent; browsers may change a POST into a GET. The default choice for moved pages.
  • 302 Found: temporary; the method may change. The default in many frameworks.
  • 303 See Other: temporary; always followed with GET. Used after form submissions.
  • 307 Temporary Redirect: temporary; the method and body are preserved.
  • 308 Permanent Redirect: permanent; the method and body are preserved.
  • 304 Not Modified: not a redirect to another URL, but a signal that the client's cached copy is still valid.

Read HTTP redirect status codes explained to learn when to use each one.

Status codes in a redirect chain

A redirect chain is a series of 3xx responses that ends on a final response. Only the last status code is what the visitor or crawler actually gets, so a chain that ends on a 404 is a broken link, however clean the redirects before it look. Use the URL redirect checker to see the status code of every hop, or the Bulk Redirect Checker to check many URLs at once.

URL Redirect Checker

See every status code a URL returns, hop by hop, with the free TrueURL redirect checker.