{"id":22876,"date":"2026-08-30T08:38:44","date_gmt":"2026-08-30T06:38:44","guid":{"rendered":"https:\/\/www.curiaweb.ch\/?post_type=docs&#038;p=22876"},"modified":"2026-08-30T08:38:45","modified_gmt":"2026-08-30T06:38:45","password":"","slug":"http-status-codes-explained","status":"publish","type":"docs","link":"https:\/\/www.curiaweb.ch\/en\/hilfe\/seo-monitoring\/http-statuscodes-erklaert\/","title":{"rendered":"HTTP status codes explained: 200, 301, 404, 403, and 500"},"content":{"rendered":"<p class=\"wp-block-paragraph\">When you visit a website, your browser communicates in the background with a web server. Among other things, the server responds to the request with an HTTP status code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These status codes indicate whether a request was successfully processed, whether a redirection is occurring, whether the requested resource was not found, or whether another error has occurred.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One of the most important status codes for website operators include <code>200<\/code>, <code>301<\/code>, <code>403<\/code>, <code>404<\/code> and <code>500<\/code>. If you know their meaning, you can categorize many website problems faster and search more specifically for the actual cause.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Briefly explained:<\/strong> An HTTP status code is a standardized response from the server to an HTTP request. The first digit already indicates which group the response belongs to: success, redirection, a problem with the request, or a server-side error.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">What happens when you visit a website?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For example, if you go to the following address:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/example.com\/kontakt\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">your browser sends an HTTP request to the responsible server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Simplified, the process works like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Browser\n   \u2193\nHTTP Request\n   \u2193\nWeb server\n   \u2193\nHTTP Response\n   \u2193\nStatus code + additional information + content if applicable\n   \u2193\nBrowser<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If everything works, the browser receives the status code, for example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>200 OK<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the page has been permanently moved, you can instead <code>301 Moved Permanently<\/code> be returned. If it does not exist, the answer <code>404 Not Found<\/code> loud.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">HTTP status code and visible webpage are not the same<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A status code is technical information within the HTTP response. Visitors normally do not just see the number. <code>200<\/code>, <code>404<\/code> or <code>500<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The server can additionally deliver an HTML page that the browser renders.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, for example, a custom error page can appear while the server technically returns the status code <code>404<\/code> returns.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, for a reliable diagnosis, you should not judge solely by how a page looks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The five classes of HTTP status codes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">HTTP status codes consist of three digits. The first digit assigns the response to a specific class.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Area<\/th><th>Meaning<\/th><th>Simplified<\/th><\/tr><\/thead><tbody><tr><td><code>1xx<\/code><\/td><td>Informational<\/td><td>Information regarding the ongoing request<\/td><\/tr><tr><td><code>2xx<\/code><\/td><td>Successful<\/td><td>Request successful<\/td><\/tr><tr><td><code>3xx<\/code><\/td><td>Redirection<\/td><td>Further action or redirection<\/td><\/tr><tr><td><code>4xx<\/code><\/td><td>Client Error<\/td><td>Request cannot be fulfilled this way<\/td><\/tr><tr><td><code>5xx<\/code><\/td><td>Server Error<\/td><td>Server could not successfully process a fundamentally valid request<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For the normal operation of a website, you particularly often encounter codes from the fields of <code>2xx<\/code>, <code>3xx<\/code>, <code>4xx<\/code> and <code>5xx<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">200 OK \u2013 Request successful<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>200 OK<\/code> belongs to the class of successful HTTP responses.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the case of a normal page request, this simply means that the request was processed successfully and the requested resource can be delivered.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Browser\n   \u2193\nGET \/kontakt\/\n   \u2193\nServer\n   \u2193\n200 OK\n   \u2193\nContact page is served<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For a regularly accessible HTML page is <code>200 OK<\/code> therefore a typical status code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">200 does not automatically mean that everything is correct in terms of content.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The status code <code>200<\/code> indicates that the HTTP request was successfully processed. However, it does not evaluate the content quality of the delivered page.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, a page can technically be equipped with <code>200 OK<\/code> respond and still contain incorrect text, a broken form, or outdated information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even a misconfigured error page may visually display \u201ePage not found\u201c under certain circumstances, even though the server <code>200 OK<\/code> returns. This is often referred to as a soft 404 situation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">301 Moved Permanently \u2013 permanently redirected<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The status code <code>301 Moved Permanently<\/code> belongs to the group of <code>3xx<\/code>-Answers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It signals that the requested resource is permanently available at a different URL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:\/\/example.com\/alte-seite\/\n        \u2193\n301 Moved Permanently\n        \u2193\nhttps:\/\/example.com\/neue-seite\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The browser can then automatically open the new address.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A 301 redirect is useful, for example, when the URL of a page has changed permanently.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We explain the practical setup at <a href=\"\/en\/help\/seo-monitoring\/set-up-a-301-redirect\/\">Set up a 301 redirect: Permanently redirect URLs<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">301 is not the only redirection status<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Next to <code>301<\/code> there are further HTTP status codes for redirections.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Important examples are:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>301 \u2192 permanent\n302 \u2192 temporary\n307 \u2192 temporary, method is preserved\n308 \u2192 permanent, method is preserved<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We explain the differences in detail at <a href=\"\/en\/help\/seo-monitoring\/http-redirects-301-302-307-308\/\">301, 302, 307 and 308: HTTP redirects simply explained<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">403 Forbidden \u2013 Access Denied<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>403 Forbidden<\/code> belongs to the group of <code>4xx<\/code>-Status codes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The server has received and understood the request, but refuses to authorize access to the requested resource.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Simplified:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Browser requests resource\n\u2193\nServer understands the request\n\u2193\nAccess is not allowed\n\u2193\n403 Forbidden<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A 403 error is therefore significantly different from a 404 error.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Do not confuse 403 and 404<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Although the two status codes belong to the same <code>4xx<\/code>-Class, but describing different situations.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>403 Forbidden\n\u2192 Access to the resource is denied\n\n404 Not Found\n\u2192 Resource was not found under this URL<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This distinction is important during troubleshooting because the potential causes and solutions are different.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What can cause a 403 error?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A 403 status can have various causes. Which one applies depends on the respective website and server configuration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Possible causes include access restrictions, certain security rules, or inappropriate permissions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also rules in a configuration file like <code>.htaccess<\/code> can play a role with appropriately configured web servers.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Important:<\/strong> Do not change file permissions or security rules haphazardly just to make a 403 error go away. First, you should determine why access is being denied.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">404 Not Found \u2013 Resource not found<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>404 Not Found<\/code> is one of the best-known HTTP status codes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It means that the requested resource was not found at the URL called.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:\/\/example.com\/nicht-vorhandene-seite\/\n        \u2193\n404 Not Found<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Typical causes are deleted pages, changed URLs, broken internal links, or typos in an address.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We explain how to correctly assess and handle such errors at <a href=\"\/en\/help\/seo-monitoring\/find-and-fix-404-errors\/\">Find and fix 404 errors<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A 404 status can be completely correct<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If a resource actually does not exist, a corresponding <code>404<\/code>- Answer not automatically a technical defect.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The internet contains an infinite number of conceivable URLs that have never existed on your website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, if someone accesses the following fictional address:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/example.com\/gibt-es-nicht-12345\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Is it fundamentally sensible for the server to communicate that this resource was not found?.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A 404 error becomes problematic in particular when an important resource should actually be available or an internal link accidentally points to a URL that no longer exists.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">500 Internal Server Error \u2013 Internal Server Error<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>500 Internal Server Error<\/code> belongs to the class of <code>5xx<\/code>-Status codes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The status code indicates that the server encountered an unexpected condition or error while processing the request and therefore could not successfully complete the request.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Browser\n   \u2193\nHTTP request\n   \u2193\nServer\n   \u2193\nError during processing\n   \u2193\n500 Internal Server Error<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Unlike <code>404<\/code> Isn't the problem here simply that a specific URL was not found?.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What can cause a 500 error?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A 500 error is a general server-side error status and does not reveal the exact cause on its own.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a website, for example, faulty application code, problematic configuration rules, or other server-side processing errors may be involved.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For PHP-based websites, for example, an error within an application, a plugin, a theme, or a custom script can play a role.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even a faulty configuration instruction can trigger a 500 status under certain conditions.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Important:<\/strong> <code>500 Internal Server Error<\/code> is an error category and not a complete diagnosis. To determine the actual cause, further information such as error logs and the most recent changes must be investigated.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">What to do in case of a 500 error?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">First, check whether the error affects only a single URL or the entire website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then consider whether any changes were made immediately prior.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These can include changes to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Plugins\nThemes\nPHP code\nConfiguration files\nPHP version\nFiles\nWebsite application<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">to be.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the error occurred directly after a specific change, this information is particularly valuable for troubleshooting.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Error logs instead of blind trial and error<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In the event of server-side errors, you should consult existing error logs or log files whenever possible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A log entry can provide much more specific clues about the cause than the general message <code>500 Internal Server Error<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not change multiple settings at once on a hunch. This often makes it harder to trace which change actually caused or fixed the problem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">500 doesn't automatically mean the whole server is down<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A 500 error can also affect only a specific website, application, or individual function.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, if a faulty script is only executed on a specific page, other areas can continue to function.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, you should first check how large the actually affected area is.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is the difference between 4xx and 5xx?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The distinction helps in the initial classification of a problem.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>status class<\/th><th>Meaning<\/th><th>Examples<\/th><\/tr><\/thead><tbody><tr><td><code>4xx<\/code><\/td><td>The request cannot be fulfilled in its present form<\/td><td><code>403<\/code>, <code>404<\/code><\/td><\/tr><tr><td><code>5xx<\/code><\/td><td>The server could not successfully process a fundamentally valid request<\/td><td><code>500<\/code>, <code>502<\/code>, <code>503<\/code>, <code>504<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The status class thus provides an initial direction for troubleshooting, but does not replace a concrete diagnosis.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Other common 2xx status codes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Next to <code>200 OK<\/code> are there other successful status codes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, means <code>201 Created<\/code>, that a request was successful and a new resource was created in the process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>204 No Content<\/code> means that the request was successfully processed, but no message content is returned.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Website operators encounter such codes less frequently when simply accessing an HTML page, but they play a role, for example, in web applications and APIs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Other common 4xx status codes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Besides 403 and 404, other status codes in this class exist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some examples:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>400 Bad Request\n\u2192 Request is malformed or cannot be processed\n\n401 Unauthorized\n\u2192 Authentication is required or missing\n\n403 Forbidden\n\u2192 Access is denied\n\n404 Not Found\n\u2192 Resource not found\n\n429 Too Many Requests\n\u2192 Too many requests in a given time frame<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The exact interpretation should always be made in the context of the respective application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">401 and 403 are not the same<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The terms can lead to confusion in everyday life.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>401 Unauthorized<\/code> is used when valid authentication is required for access.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>403 Forbidden<\/code> means, on the other hand, that the server understands the request but denies access.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, the two status codes should not simply be used synonymously.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Other common 5xx status codes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There are also several important status codes in the area of server errors.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>500 Internal Server Error\n\u2192 general internal server error\n\n502 Bad Gateway\n\u2192 invalid response from an upstream server\n\n503 Service Unavailable\n\u2192 service currently unavailable\n\n504 Gateway Timeout\n\u2192 upstream server did not respond in time<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Especially for websites with reverse proxies, multiple server services, or external components, distinguishing these codes can be helpful in diagnosis.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">503 Service Unavailable<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>503 Service Unavailable<\/code> means that the server or service is currently unable to process the request.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This may be related to a temporary overload or maintenance, for example.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A 503 status thus describes a different situation than a general <code>500 Internal Server Error<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">502 Bad Gateway and 504 Gateway Timeout<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">These status codes frequently occur in architectures where a server or gateway communicates with another service.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>502 Bad Gateway<\/code> indicates that an invalid response was received in the process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>504 Gateway Timeout<\/code> means, on the other hand, that a required response did not arrive in time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For website operators, this distinction is helpful because not every <code>5xx<\/code>-error has the same cause.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">HTTP Status Codes and SEO<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">HTTP status codes also help search engines understand what is happening with a URL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some simplified examples:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>200\n\u2192 Resource successfully reachable\n\n301\n\u2192 Resource permanently moved\n\n404\n\u2192 Resource not found under this URL\n\n5xx\n\u2192 Server-side issue during retrieval<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, it is important that the technical status matches the actual situation of the URL as closely as possible.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">An error page with 200 OK can be problematic<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Assuming a URL does not exist. However, instead of a 404 status, the server returns an error page with:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>200 OK<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Technically, the server is thereby communicating that the request was successful, even though the requested content is not present.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Such a constellation can unnecessarily confuse search engines and diagnostic tools.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, a truly non-existent resource should not be simulated solely through the design of an error page.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A redirection is not the same as an error page<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">During a redirection, the client receives a <code>3xx<\/code>status and a new destination address.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A 404 error, on the other hand, indicates that the resource was not found.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>301\nold URL\n   \u2193\nnew URL\n\n404\nrequested URL\n   \u2193\nresource not found<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Which answer is correct depends on what actually happened to the original resource.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How can I check the HTTP status code of a URL?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For a technical check, you can use the developer tools of a modern browser, for example.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open the network view there and then load the URL in question.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can then inspect the individual HTTP requests and their status codes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Depending on the browser, for example, values such as <code>200<\/code>, <code>301<\/code>, <code>404<\/code> or <code>500<\/code> displayed directly in the overview.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to properly check browser redirects<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">During a redirection, the address bar normally already shows the new destination address after the process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, that does not necessarily show you which status code was used for the previous step.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the network view, on the other hand, you can examine the redirect chain.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GET \/old-url\/\n301\n\nGET \/new-url\/\n200<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This shows that the old URL with <code>301<\/code> forwarded and the new destination subsequently with successfully <code>200<\/code> was delivered.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Multiple status codes can belong to a single page view<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A modern website usually consists of more than just the HTML document.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The browser also loads, for example, images, stylesheets, JavaScript files, and other resources.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, numerous HTTP requests with different status codes can appear in the network view during a single page load.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you want to examine a specific page URL, make sure that you are actually evaluating the response for the corresponding document and not accidentally just an image or script file.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Check status code first, then look for the cause<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If a website is not working, it is worth first determining what kind of problem actually exists.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Page not working as expected\n        \u2193\nCheck HTTP status\n        \u2193\n200? \u2192 Inspect content\/function in detail\n301? \u2192 Check redirect target\n403? \u2192 Check access\/permissions\/security rule\n404? \u2192 Check URL\/resource\n500? \u2192 Investigate server-side error<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This initial classification can prevent you from looking for the cause in the wrong place.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Do not change multiple settings at the same time<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When an error occurs, you should not indiscriminately change DNS, PHP, file permissions, redirects, and other settings all at once.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First, determine which status code is present and which layer is likely affected.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also consider what change was made immediately before the problem occurred.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Practical Tip:<\/strong> Good troubleshooting starts with observation and narrowing down. Only after that should a specific setting be changed.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">HTTP Status Codes During a Website Relaunch<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Following a relaunch, the status codes in particular <code>200<\/code>, <code>301<\/code> and <code>404<\/code> Interesting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Important new URLs should be successfully reachable. Old URLs with a clear new successor should be redirected correctly. Non-existent URLs without a sensible replacement, on the other hand, can continue to return an appropriate error status.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A simplified relaunch check looks like this, for example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>New important URL\n\u2192 200\n\nOld URL with successor\n\u2192 301 \u2192 new URL \u2192 200\n\nNon-existent URL without successor\n\u2192 404<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Status Codes and Website Monitoring<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Monitoring systems can also use HTTP status codes to check the availability of a website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If one normally with <code>200<\/code> the responding side suddenly returns an error status, this can indicate a problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, a mere HTTP response does not necessarily mean that a website is functioning completely correctly. What is also crucial is which status is returned and what behavior is expected for the monitored URL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We will cover this topic in detail later under <a href=\"\/en\/help\/seo-monitoring\/website-monitoring-availability\/\">Website Monitoring: Monitor Availability and Outages<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">An overview of the most important status codes<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Code<\/th><th>Name<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td><code>200<\/code><\/td><td>OK<\/td><td>Request successful<\/td><\/tr><tr><td><code>301<\/code><\/td><td>Moved Permanently<\/td><td>Resource permanently moved<\/td><\/tr><tr><td><code>302<\/code><\/td><td>Found<\/td><td>Temporary redirection<\/td><\/tr><tr><td><code>307<\/code><\/td><td>Temporary Redirect<\/td><td>Temporary redirect upon receipt of method<\/td><\/tr><tr><td><code>308<\/code><\/td><td>Permanent Redirect<\/td><td>Permanent redirect upon receipt of the method<\/td><\/tr><tr><td><code>400<\/code><\/td><td>Bad Request<\/td><td>Request cannot be processed correctly<\/td><\/tr><tr><td><code>401<\/code><\/td><td>Unauthorized<\/td><td>Authentication required<\/td><\/tr><tr><td><code>403<\/code><\/td><td>Forbidden<\/td><td>Access denied<\/td><\/tr><tr><td><code>404<\/code><\/td><td>Not Found<\/td><td>Resource not found<\/td><\/tr><tr><td><code>429<\/code><\/td><td>Too Many Requests<\/td><td>Too many requests<\/td><\/tr><tr><td><code>500<\/code><\/td><td>Internal Server Error<\/td><td>General internal server error<\/td><\/tr><tr><td><code>502<\/code><\/td><td>Bad Gateway<\/td><td>Invalid response from an upstream service<\/td><\/tr><tr><td><code>503<\/code><\/td><td>Service Unavailable<\/td><td>Service currently unavailable<\/td><\/tr><tr><td><code>504<\/code><\/td><td>Gateway Timeout<\/td><td>Response from an upstream service not received in time<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">HTTP status codes are standardized responses from a server to HTTP requests. They help browsers, search engines, monitoring systems, and website operators understand what happened with a request.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>200 OK<\/code> stands for a successful request. <code>301 Moved Permanently<\/code> indicates a permanent redirect. <code>403 Forbidden<\/code> means access is denied. <code>404 Not Found<\/code> indicates that a resource was not found at the requested URL. <code>500 Internal Server Error<\/code> indicates a server-side error during processing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first digit of a status code already provides an important orientation: <code>2xx<\/code> stands for successful answers, <code>3xx<\/code> for redirects, <code>4xx<\/code> for problems in fulfilling a request and <code>5xx<\/code> for server-side errors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, when troubleshooting, you should first check the actual HTTP status and only then investigate the potential cause.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The status code doesn't solve a problem\u2014but it often shows you in which direction you should look for the cause.<\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p>Wenn du eine Webseite aufrufst, kommuniziert dein Browser im Hintergrund mit einem Webserver. Der Server beantwortet die Anfrage unter anderem mit einem HTTP-Statuscode. Diese Statuscodes zeigen an, ob eine Anfrage erfolgreich verarbeitet wurde, ob eine Weiterleitung erfolgt, ob die angeforderte Ressource nicht gefunden wurde oder ob ein anderer Fehler aufgetreten ist. Zu den wichtigsten Statuscodes [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_joinchat":[],"footnotes":""},"doc_category":[85],"doc_tag":[],"class_list":["post-22876","docs","type-docs","status-publish","hentry","doc_category-seo-monitoring"],"year_month":"2026-10","word_count":2538,"total_views":"26","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"name":"Silvio Mazenauer","author_nicename":"admin-curia","author_url":"https:\/\/www.curiaweb.ch\/en\/author\/admin-curia\/"},"doc_category_info":[{"term_name":"SEO &amp; Monitoring","term_url":"https:\/\/www.curiaweb.ch\/en\/hilfe-kategorie\/seo-monitoring\/"}],"doc_tag_info":[],"knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/www.curiaweb.ch\/en\/wp-json\/wp\/v2\/docs\/22876","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.curiaweb.ch\/en\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.curiaweb.ch\/en\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.curiaweb.ch\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.curiaweb.ch\/en\/wp-json\/wp\/v2\/comments?post=22876"}],"version-history":[{"count":1,"href":"https:\/\/www.curiaweb.ch\/en\/wp-json\/wp\/v2\/docs\/22876\/revisions"}],"predecessor-version":[{"id":22878,"href":"https:\/\/www.curiaweb.ch\/en\/wp-json\/wp\/v2\/docs\/22876\/revisions\/22878"}],"wp:attachment":[{"href":"https:\/\/www.curiaweb.ch\/en\/wp-json\/wp\/v2\/media?parent=22876"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www.curiaweb.ch\/en\/wp-json\/wp\/v2\/doc_category?post=22876"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.curiaweb.ch\/en\/wp-json\/wp\/v2\/doc_tag?post=22876"}],"curies":[{"name":"WP","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}