Deutsch
HTTP status codes

HTTP status code

Also known as: HTTP response code, status code

An HTTP status code is the three-digit number a web server sends with every response. It tells the browser or crawler whether the request worked, whether the resource has moved, or whether something went wrong. The codes are defined in RFC 9110, the current HTTP semantics specification.

At a glance

Type
three-digit number in every HTTP response
Values
five classes, 1xx to 5xx
Affects
crawling and indexing

Last checked:

The five classes

The first digit sets the class; the last two digits have no grouping role. RFC 9110 requires clients to understand the class of any code and to treat an unknown code like the x00 code of its class, so an unrecognized 471 is handled as a 400.

Class Meaning Examples
1xx Informational, request received and still in progress 100 Continue, 103 Early Hints
2xx Success 200 OK, 204 No Content
3xx Redirection, further action needed 301, 302, 304 Not Modified, 307, 308
4xx Client error 403 Forbidden, 404 Not Found, 410 Gone, 429 Too Many Requests
5xx Server error 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable

Why do status codes matter for SEO?

A crawler reads the status code before it looks at content. Google documents how its crawlers react:

  • 2xx: The content goes on to indexing. A 200 doesn’t guarantee the page will be indexed. A 204 means Google received no content to process.
  • 301 and 308: A strong signal that the redirect target should be canonical.
  • 302, 303, and 307: A weak signal for the target. For permanent moves, 301 or 308 fits better.
  • Redirect chains: Googlebot follows up to 10 hops (HTTP status code documentation). For site moves, Google advises redirecting straight to the final destination, or keeping chains ideally to no more than 3 hops and fewer than 5 (site move documentation).
  • 304: The content hasn’t changed since the last crawl.
  • 404, 410, and other 4xx except 429: Indexed URLs are removed, and Google crawls them less often over time. Google’s Search Console help states that 404s don’t harm a site’s indexing or ranking.
  • 429 and 5xx: Google slows down crawling of the site. Indexed URLs are kept at first and dropped if the errors persist.

Example

A store drops a product category for good and redirects the old URL to the parent category:

HTTP
GET /women/running-shoes/trail/ HTTP/1.1
Host: www.example.com

HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/women/running-shoes/

If there is no suitable replacement, 404 or 410 is the honest answer. RFC 9110 defines 410 as a resource that is no longer available and likely won’t return, while 404 leaves open whether the absence is temporary. Google treats both the same way in Search.

How a redirect with status 301 worksThe browser requests /old. The server responds with 301 Moved Permanently and the header Location: /new. The browser then sends a new request to /new and receives 200 OK. Below, a grid: 301 and 308 are permanent, 302 and 307 temporary. With 301 and 302 a POST may become GET when following the redirect; with 307 and 308 the method stays the same.Browser (client)ServerGET /old301 Moved PermanentlyLocation: /newGET /newnew request to the Location200 OKPERMANENTTEMPORARYPOST may become GETwhen following (historical)method and bodystay the same301Moved Permanently302Found308Permanent Redirect307Temporary RedirectSchematic, headers shortened. For GET requests the method stays GET with all four codes.
The server names the new target in the Location header, and the browser requests it with a second request. 301 and 308 are permanent, 302 and 307 temporary. Only with 301 and 302 may a POST become GET when the redirect is followed. Sources: RFC 9110: HTTP Semantics, section 15.4 (Redirection 3xx); MDN: Redirections in HTTP.

Common mistakes

  • Soft 404: A page says “not found” or is empty but returns 200. Search Console reports these URLs as soft 404s.
  • Temporary redirect for a permanent move: A 302 after a relaunch sends a weaker signal for the new URL.
  • Maintenance page with 200: RFC 9110 (section 15.6.4) assigns 503 to temporary overload and scheduled maintenance, optionally with a Retry-After header. For 2xx responses, Google considers the content for processing, even if it is only a maintenance page.
  • 401 or 403 to slow crawling: Google advises against using them to limit crawl rate; 429 or 503 are the signals it reads that way.

FAQ

What are the most common 4xx errors? 400 Bad Request (malformed request), 401 Unauthorized (authentication required), 403 Forbidden (access refused), 404 Not Found, 410 Gone, and 429 Too Many Requests (rate limit reached).

What do 201 and 204 mean? 201 Created confirms that a request created a new resource, typical for APIs. 204 No Content confirms success without returning a body. Neither plays a role for normal web pages.

How do I check the status code of a URL? In the browser’s developer tools under the Network tab, with curl -I https://www.example.com/ on the command line, or with a crawler that lists codes for every URL.

Sources

  1. RFC 9110: HTTP Semantics, Section 15 Status Codes – IETFrfc-editor.org
  2. HTTP response status codes – MDN Web Docsdeveloper.mozilla.org
  3. How HTTP status codes affect Google's crawlers – Google crawling documentation (updated Feb 4, 2026)developers.google.com
  4. 404 errors – Search Console Helpsupport.google.com
  5. Site moves with URL changes – Google Search Centraldevelopers.google.com

Last updated: