Skip to content

HTTP status codes

When you browse the internet, your browser and servers communicate using HTTP status codes. These codes indicate whether a request was successful or if errors occurred. Understanding these codes is crucial for developers, SEO experts, and anyone managing a website.

This article covers the most important HTTP status codes, what they mean and how they affect your site. Recognizing them helps you troubleshoot errors and improve the experience of your visitors.

The server has received the request headers and the client should proceed to send the request body. This code is useful for indicating that part of a request has been received and the rest can continue.

This code tells the client that the server agrees to switch protocols if the client requested it. It confirms that the server is willing to change the communication protocol.

This status code is the most familiar. It means the request was successful and the server has returned the requested data. It is a sign that everything is functioning correctly.

The server successfully created a new resource as a result of the client’s request. This code often appears when a new record is added to a database.

The server processed the request successfully, but there is no content to return. This is useful when you want to indicate successful completion without providing a response body.

This status indicates that the requested resource has been permanently moved to a new URL. Search engines update their indexes to reflect this change, and users are automatically redirected.

The resource is temporarily at a different URL. Browsers follow the redirect, and search engines keep the original URL indexed. A 307 Temporary Redirect means the same, but guarantees that the request method (such as POST) stays the same.

This code tells the client that the cached version of the requested resource is still valid. It saves bandwidth by not sending the same data again.

This response indicates that the server cannot process the request due to a client error. It could be a malformed request syntax or invalid request message framing.

The request requires user authentication. The client should provide credentials to access the requested resource. Often used for login-required areas of a website.

The server understands the request but refuses to authorize it. Unlike a 401 status, re-authenticating will not make a difference. The client does not have permission to access the resource.

This is one of the most recognizable HTTP status codes. It means the server cannot find the requested resource. This often results from broken links or mistyped URLs.

The resource was removed on purpose and will not come back. Search engines drop a 410 from their index faster than a 404.

The client sent too many requests in a given time, and the server asks it to slow down. Sites often send this to crawlers and bots.

This generic error message indicates that the server encountered an unexpected condition. It often arises from server misconfigurations or script errors.

This status appears when a server acting as a gateway receives an invalid response from an inbound server. It suggests issues with upstream servers.

The server is currently unable to handle the request due to temporary overload or maintenance. It usually resolves itself after some time.

This code indicates that a server acting as a gateway or proxy did not receive a timely response from an upstream server. It often points to network issues.

The Content screen reports links and media that answer with a 4xx or 5xx status code. A redirect (3xx) is followed, and the status of the final address counts. A 429 Too Many Requests shows as a warning rather than a failure: the other site turned the crawler away, which says little about the target itself. See How Scanfully detects broken links.