When you visit a site on the web, every request comes with an HTTP (Hypertext Transfer Protocol) status code. These codes indicate whether the server was able to fulfill the request. They may look technical, but if you work with websites and web applications, knowing what they mean is very important.

What Is an HTTP Status Code?

An HTTP status code is a numeric value in an HTTP response that indicates the status of the server’s response. When a client (usually a web browser) sends an HTTP request to a server, the server processes it and sends back an HTTP response, which includes a status code.

Why HTTP Status Codes Matter

HTTP status codes are a fundamental tool that lets servers and clients (usually web browsers) communicate on the web. So why are they important?

  1. Error detection and debugging: Status codes show what happened while a web page was loading or an API request was made. In case of an error, the code usually identifies the problem. For example, if a user tries to load a page and gets a 404 Not Found, it usually means the URL was mistyped or the page no longer exists.
  1. Server status reporting: Status codes indicate how a server responded to a request. This helps web developers or system administrators monitor server health, for example when errors occur.
  1. Redirection: Some status codes tell the client to look for a resource elsewhere. For example, 301 Moved Permanently indicates that the resource has moved to a new URL and that the client should use the new URL for future requests.
  1. Authorization: Some status codes indicate whether a user is authorized to access a resource. For example, 403 Forbidden indicates that the client doesn’t have permission to access the requested resource.

For these reasons, understanding and using HTTP status codes correctly is important for a website or web application to work properly. They can also be used to make users’ interactions with a site faster and more efficient.

What Are the HTTP Status Codes?

1xx – Informational

These codes indicate a provisional response: the request was received and processing continues.

100 Continue: The request was received; please continue.

101 Switching Protocols: The server is switching protocols as requested.

2xx – Success

These codes indicate that the request was successfully received, understood and accepted.

200 OK: The request succeeded. The response information depends on the request type.

201 Created: The request succeeded and a new resource was created.

204 No Content: The request succeeded, but there’s no content to return.

3xx – Redirection

These codes indicate that further action is needed to complete the request.

301 Moved Permanently: The requested page has permanently moved to a new URL.

302 Found: The requested page is temporarily located elsewhere.

304 Not Modified: The client’s cached version is up to date, so it doesn’t need to download the page again.

4xx – Client Errors

These codes indicate an error caused by the client.

400 Bad Request: The server couldn’t understand the request.

401 Unauthorized: Authentication is required for the request.

403 Forbidden: The request was understood but permission was denied.

404 Not Found: The requested resource couldn’t be found.

5xx – Server Errors

These codes indicate an error on the server.

500 Internal Server Error: A generic server error.

502 Bad Gateway: The server, acting as a gateway or proxy, received an invalid response from an upstream server.

503 Service Unavailable: The server is temporarily unable to handle the request.

How to Check HTTP Status Codes

There are many tools for checking HTTP status codes. You can easily check them with browser extensions, server logs and debugging tools.

site checker

Web browser tools: Most modern browsers include a set of tools for developers, usually called “Developer Tools” or “DevTools,” which let you view HTTP responses and their status codes. Open DevTools, go to the “Network” tab and refresh the page or make a request. You’ll see a list of requests and responses, including which status codes were returned.

status codes in Screaming Frog

SEO tools: Screaming Frog, a favorite of many SEOs, is practically a must-have. It can give you a lot of information about status codes.

Google Search Console
Google Search Console pages report

Search Console: You can check mainly 404 issues in Google Search Console. Just go to:

Indexing > Pages.

HTTP debugging tools: Various third-party HTTP debugging and testing tools are also available. For example, tools like Postman let you send a request to a specific URL and inspect the response, including its status code.

Server logs: Server logs usually contain HTTP requests and responses, and therefore status codes. You can check them to see whether your server is returning a specific status code. How to view server logs depends on the server software you use.

How to Fix Status Code Errors

There are different approaches to fixing HTTP status code errors, depending on the specific code you encounter.

404 Not Found: This code is usually returned when the page a user requested can’t be found on the server. Fixing it usually means recreating the missing page, redirecting it to a relevant page or correcting a broken link.

403 Forbidden: This error indicates that a user isn’t authorized to access a resource. It usually stems from permission settings, which need to be corrected.

500 Internal Server Error: This generic error indicates a problem on the server. Fixing it usually requires solving an issue with the software running on the server.

503 Service Unavailable: This error indicates that the server is temporarily out of service, usually because it’s overloaded by very high traffic. To solve it, you need to increase server resources or apply scaling strategies so it can handle more demand during peak periods.

Each status code has its own fix. So the first step in fixing an HTTP status code error is identifying which code is being returned and understanding what it means. Then you may need to look at server logs, error messages and other information to find out why it occurs and how to solve it.

How Do HTTP Status Codes Affect SEO?

HTTP status codes can have a significant impact on a website’s search engine optimization (SEO). Here are some common codes and their effects on SEO:

200 OK: The request was processed successfully and the user reached the requested information. Pages that correctly return 200 support both user experience and rankings.

301 Moved Permanently: This code indicates that a page has permanently moved to a new URL. 301 redirects pass the old URL’s SEO value to the new URL. They should be managed carefully when changing site structure or moving a site to a new domain.

404 Not Found: This code indicates that a page wasn’t found. Some 404s are normal on any site, but large numbers of broken internal links hurt user experience and waste crawl budget. Finding and fixing them — often with 301 redirects to relevant pages — can improve SEO.

500 Internal Server Error and 503 Service Unavailable: These errors indicate that your server ran into a problem and couldn’t complete the request. They hurt user experience, and if they persist, search engines like Google may crawl your site less and eventually drop affected pages from the index.

Because of this relationship between status codes and SEO, website owners and developers should monitor status codes regularly and fix errors quickly. This is an important part of improving user experience and positively influencing search rankings.

100 Continue
101 Switching Protocols
103 Early Hints
200 OK
201 Created
202 Accepted
203 Non-Authoritative Information
204 No Content
205 Reset Content
206 Partial Content
300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
307 Temporary Redirect
308 Permanent Redirect
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Payload Too Large
414 URI Too Long
415 Unsupported Media Type
416 Range Not Satisfiable
417 Expectation Failed
418 I'm a teapot
422 Unprocessable Entity
425 Too Early
426 Upgrade Required
428 Precondition Required
429 Too Many Requests
431 Request Header Fields Too Large
451 Unavailable For Legal Reasons
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
506 Variant Also Negotiates
507 Insufficient Storage
508 Loop Detected
510 Not Extended
511 Network Authentication Required

1xx Informational



100 Continue
101 Switching Protocols
102 Processing (WebDAV)


2xx Success


200 OK
201 Created
202 Accepted
203 Non-Authoritative Information
204 No Content
205 Reset Content
206 Partial Content
207 Multi-Status (WebDAV)
208 Already Reported (WebDAV)
226 IM Used

 
3xx Redirection


300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
305 Use Proxy
306 (Unused)
307 Temporary Redirect
308 Permanent Redirect (experimental)

4xx Client Error

400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Requested Range Not Satisfiable
417 Expectation Failed
418 I'm a teapot (RFC 2324)
420 Enhance Your Calm (Twitter)
422 Unprocessable Entity (WebDAV)
423 Locked (WebDAV)
424 Failed Dependency (WebDAV)
425 Reserved for WebDAV
426 Upgrade Required
428 Precondition Required
429 Too Many Requests
431 Request Header Fields Too Large
444 No Response (Nginx)
449 Retry With (Microsoft)
450 Blocked by Windows Parental Controls (Microsoft)
451 Unavailable For Legal Reasons
499 Client Closed Request (Nginx)


5xx Server Error



500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
506 Variant Also Negotiates (Experimental)
507 Insufficient Storage (WebDAV)
508 Loop Detected (WebDAV)
509 Bandwidth Limit Exceeded (Apache)
510 Not Extended
511 Network Authentication Required
598 Network read timeout error
599 Network connect timeout error
Skip to content