GALAXY OF TOOLS

DEV SECTOR

HTTP Status Codes

Every HTTP status code from 100 to 511 explained — with causes, fixes and SEO impact for common errors.

1xx · Informational

The request was received and the process is continuing.

100ContinueThe headers were received; the client may send the request body.

Used with the Expect: 100-continue request header so a client can check that the server will accept a large upload (authentication, size limits) before sending the body.

Defined in RFC 9110 §15.2.1
101Switching ProtocolsThe server agrees to switch to the protocol the client asked for.

The reply to an Upgrade header — most often when a browser opens a WebSocket connection. After the 101, the connection speaks the new protocol.

Defined in RFC 9110 §15.2.2
102ProcessingThe request was accepted and is still being processed.
WebDAV

Introduced by WebDAV to stop clients timing out during long operations. It was left out of the later WebDAV specification and is rarely used today.

Defined in RFC 2518
103Early HintsPreliminary headers sent before the final response so the browser can start loading resources.

A server or CDN sends Link: rel=preload or rel=preconnect headers while the page is still being generated, so CSS, fonts and scripts start downloading sooner. Supported by Chromium browsers and several CDNs.

Defined in RFC 8297

2xx · Success

The request was received, understood and accepted.

200OKThe request succeeded.
Common

For GET the body contains the requested resource; for POST it describes the result of the action. It is the normal answer for a working page or API call.

SEO impact: Pages returning 200 can be indexed. Make sure error and “not found” pages do not return 200 — search engines call those soft 404s.

Defined in RFC 9110 §15.3.1
201CreatedThe request succeeded and a new resource was created.
Common

The usual reply to a POST or PUT that creates a record in an API. Include a Location header pointing to the new resource.

Defined in RFC 9110 §15.3.2
202AcceptedThe request was accepted, but processing has not finished.

Used for asynchronous work such as exports, video encoding or queued emails. The action may still fail, so a good API also returns a URL where the client can check progress.

Defined in RFC 9110 §15.3.3
203Non-Authoritative InformationSuccess, but a transforming proxy changed the response.

The origin answered 200, and an intermediary modified the content or headers on the way (for example, recompressing images). Rare in practice.

Defined in RFC 9110 §15.3.4
204No ContentSuccess, with no body to return.
Common

Common for DELETE requests, saves with PUT or PATCH, and analytics beacons. A browser stays on the current page when a form submission returns 204.

Defined in RFC 9110 §15.3.5
205Reset ContentSuccess; the client should reset the form or view that sent the request.

Asks the user agent to clear the inputs that triggered the request, for example after a data-entry form is saved. Rarely used.

Defined in RFC 9110 §15.3.6
206Partial ContentOnly the byte range asked for in the Range header is being sent.

This is what makes resumable downloads and video seeking work. The response carries a Content-Range header such as bytes 0-1023/146515.

Defined in RFC 9110 §15.3.7
207Multi-StatusThe body contains separate status codes for several resources.
WebDAV

Returned by WebDAV operations that touch many files at once, such as PROPFIND; an XML body lists a status for each item.

Defined in RFC 4918
208Already ReportedThese members were already listed earlier in the same response.
WebDAV

Used inside a 207 response so that a resource bound into a collection several times is not listed over and over.

Defined in RFC 5842
226IM UsedThe response is the result of instance manipulations such as a delta.

From the HTTP delta-encoding extension: the client asked with an A-IM header for changes only, and the server sent a delta of the current resource. Almost never seen on the public web.

Defined in RFC 3229

3xx · Redirection

Further action is needed to complete the request.

300Multiple ChoicesSeveral representations are available and the client should choose one.

For example, different formats or languages. There is no standard way to pick automatically, so it is rarely used.

Defined in RFC 9110 §15.4.1
301Moved PermanentlyThe resource has a new permanent URL, given in the Location header.
Common

Use it when a page moves for good: a domain change, HTTP to HTTPS, or a new URL structure. Browsers cache it. Clients may turn a POST into a GET when following a 301, so APIs that must keep the method should use 308.

SEO impact: Passes ranking signals to the new URL, and search engines index the target instead. Redirect each old URL to its closest new equivalent and avoid chains of redirects.

Defined in RFC 9110 §15.4.2
302FoundThe resource is temporarily at a different URL.
Common

The original URL remains the real one. Common after logins, for geo or language routing and for A/B tests. Clients may switch POST to GET when following it; use 307 if the method must be kept.

SEO impact: Search engines keep the original URL indexed. A 302 left in place for a long time may eventually be treated like a 301 by Google.

Defined in RFC 9110 §15.4.3
303See OtherFetch the result from another URL using GET.

The classic reply after a form POST (the Post/Redirect/Get pattern), so refreshing the result page does not submit the form again.

Defined in RFC 9110 §15.4.4
304Not ModifiedThe cached copy is still valid, so no body is sent.
Common

The answer to a conditional request with If-None-Match (ETag) or If-Modified-Since. The browser reuses its cached copy, saving bandwidth.

SEO impact: Good for crawling: Googlebot supports conditional requests, and 304s save crawl budget on large sites.

Defined in RFC 9110 §15.4.5
305Use ProxyDeprecated: the resource had to be accessed through a proxy.

Deprecated for security reasons, and browsers ignore it.

Defined in RFC 9110 §15.4.6
306(Unused)Reserved; no longer used.

It once meant “Switch Proxy”. The code is reserved and must not be sent.

Defined in RFC 9110 §15.4.7
307Temporary RedirectTemporarily at another URL — repeat the request with the same method and body.
Common

Like 302, but a POST stays a POST. Browsers also show an internal 307 when HSTS upgrades an http:// link to https:// — that redirect never reaches the server.

SEO impact: Treated like a 302: the original URL stays in the index.

Defined in RFC 9110 §15.4.8
308Permanent RedirectMoved permanently — repeat the request with the same method and body.
Common

The method-preserving version of 301, first defined in RFC 7538. Ideal for APIs and for permanent moves where POST must not turn into GET.

SEO impact: Search engines treat it like a 301, so ranking signals pass to the new URL.

Defined in RFC 9110 §15.4.9

4xx · Client errors

The request contains an error or cannot be fulfilled.

400Bad RequestThe server cannot process the request because it is malformed.
Common

A catch-all for requests the server cannot understand.

Common causes

  • Invalid JSON or form data, or a missing required field in an API call
  • A malformed URL or unencoded characters in the query string
  • Corrupted or oversized cookies (some servers answer 400 instead of 431)

How to fix it

  • Validate the request body against the API documentation
  • Percent-encode special characters with the URL encoder
  • Clear the site’s cookies and try again
Defined in RFC 9110 §15.5.1
401UnauthorizedAuthentication is missing or invalid.
Common

Despite the name, it means “unauthenticated”. The response must include a WWW-Authenticate header describing how to log in.

Common causes

  • A missing or expired token, API key or session cookie
  • Wrong username or password for HTTP Basic authentication
  • Clock skew that makes a JWT look expired or not yet valid

How to fix it

  • Log in again or refresh the access token
  • Send credentials in the expected header, e.g. Authorization: Bearer …
  • Inspect the token’s exp and nbf claims with the JWT decoder

SEO impact: Pages behind a login are not indexed, which is expected.

Defined in RFC 9110 §15.5.2
402Payment RequiredReserved for future use; some services send it for billing problems.

Never standardised for general use. Some APIs and SaaS platforms return it when a subscription has lapsed or a paid quota is used up.

Defined in RFC 9110 §15.5.3
403ForbiddenThe server understood the request but refuses to allow it.
Common

Unlike 401, logging in again will not help — the client is known (or anonymous) but lacks permission.

Common causes

  • File or folder permissions on the server are too strict, e.g. a folder without execute permission
  • A folder has no index file and directory listing is disabled
  • An IP block, firewall/WAF rule, bot protection or hotlink protection
  • The signed-in user lacks the required role

How to fix it

  • Set files to 644 and folders to 755 — see the chmod calculator
  • Add an index.html or index.php to the folder
  • Check firewall or CDN security logs for the blocked request
  • Grant the user the role or scope they need

SEO impact: If Googlebot receives 403 on public pages they drop out of the index — make sure bot protection lets verified crawlers through.

Defined in RFC 9110 §15.5.4
404Not FoundThe server cannot find the requested resource.
Common

The most common error on the web. It does not say whether the absence is temporary or permanent.

Common causes

  • A typo in the URL or a broken link
  • The page was deleted or moved without a redirect
  • Wrong file name or letter case — Linux servers are case-sensitive
  • Rewrite rules or single-page-app routing that the server does not know about

How to fix it

  • 301-redirect moved pages to their new URL (the .htaccess redirect generator helps)
  • Fix internal links that point to the missing page
  • Serve a helpful custom 404 page with search and links — but keep the 404 status
  • For single-page apps, make the server fall back to index.html for app routes

SEO impact: A few 404s are normal and do not hurt a site’s rankings overall, but the missing URL drops out of the index and links to it lose their value. Never answer 200 for a missing page (a soft 404).

Defined in RFC 9110 §15.5.5
405Method Not AllowedThis URL does not support the HTTP method used.
Common

For example a POST to a read-only page. The response must include an Allow header listing the methods that work.

Common causes

  • A form or API call using the wrong method (POST vs PUT vs GET)
  • Static hosting that does not accept POST
  • No backend route defined for that method

How to fix it

  • Check the Allow header and the API documentation
  • Point forms at an endpoint that accepts POST
Defined in RFC 9110 §15.5.6
406Not AcceptableThe server cannot produce a response matching the Accept headers.

Content negotiation failed — for example the client accepts only XML and the API only produces JSON. Some security modules also send 406 for blocked requests.

Defined in RFC 9110 §15.5.7
407Proxy Authentication RequiredLike 401, but the client must authenticate with a proxy.

Common on corporate networks. The proxy sends a Proxy-Authenticate header explaining how to sign in.

Defined in RFC 9110 §15.5.8
408Request TimeoutThe server gave up waiting for the client to finish sending the request.

Usually a slow or interrupted connection, or an idle keep-alive connection being closed. Clients can safely retry.

Defined in RFC 9110 §15.5.9
409ConflictThe request conflicts with the current state of the resource.
Common

For example editing a record someone else just changed, or creating a user that already exists. The body should explain how to resolve the conflict.

Defined in RFC 9110 §15.5.10
410GoneThe resource was removed on purpose and will not come back.
Common

A stronger, explicitly permanent version of 404.

SEO impact: Search engines may drop a 410 URL slightly faster than a 404. Use it for content you deleted deliberately and will not replace.

Defined in RFC 9110 §15.5.11
411Length RequiredThe server requires a Content-Length header.

Sent when a request with a body has no Content-Length and the server will not accept chunked uploads.

Defined in RFC 9110 §15.5.12
412Precondition FailedA condition in the request headers was not met.

Used with If-Match or If-Unmodified-Since for optimistic locking: the resource changed since the client last read it, so the update is refused.

Defined in RFC 9110 §15.5.13
413Content Too LargeThe request body is larger than the server allows.
Common

Formerly named “Payload Too Large”. Typical when uploading big files.

Common causes

  • The upload exceeds a server limit — nginx’s client_max_body_size defaults to 1 MB, and PHP has upload_max_filesize and post_max_size

How to fix it

  • Raise the limit on the server and on any proxy in front of it
  • Shrink the file first — for photos, try the image compressor
Defined in RFC 9110 §15.5.14
414URI Too LongThe URL is longer than the server will process.

Often caused by huge query strings, redirect loops that keep appending parameters, or data sent with GET that belongs in a POST body.

Defined in RFC 9110 §15.5.15
415Unsupported Media TypeThe server does not accept the request’s Content-Type.

For example sending form data to an endpoint that expects application/json, or leaving out the Content-Type header.

Defined in RFC 9110 §15.5.16
416Range Not SatisfiableThe requested byte range lies outside the file.

Happens when resuming a download of a file that has since changed or shrunk. The response includes Content-Range: bytes */length.

Defined in RFC 9110 §15.5.17
417Expectation FailedThe server cannot meet the Expect request header.

Usually the server or a proxy does not support Expect: 100-continue; retry without that header.

Defined in RFC 9110 §15.5.18
418I’m a teapotAn April Fools’ joke: the server refuses to brew coffee because it is a teapot.

Defined in RFC 2324, the Hyper Text Coffee Pot Control Protocol (1998). RFC 9110 reserves the number so it cannot be reused, and some sites return it playfully to turn away unwanted requests.

Defined in RFC 2324 · reserved in RFC 9110 §15.5.19
419Page ExpiredLaravel’s CSRF token is missing or has expired.
Unofficial · Laravel

Appears when a form is submitted after the session expired, or the form lacks a CSRF token.

How to fix it

  • Reload the page and submit the form again
  • Developers: include @csrf in forms and check session settings
Not part of the HTTP standard — specific to Laravel
420Enhance Your CalmOld Twitter API rate-limit response, replaced by 429.
Unofficial · Twitter (historic)

You may still meet it in old code samples and libraries.

Not part of the HTTP standard — specific to Twitter (historic)
421Misdirected RequestThe request reached a server that cannot answer for this host name.

Seen with HTTP/2 and HTTP/3 connection reuse, when a connection opened for one host name is reused for another the server is not configured for. Clients should retry on a new connection.

Defined in RFC 9110 §15.5.20
422Unprocessable ContentThe request is well-formed, but its content is invalid.
Common

Formerly “Unprocessable Entity”. Widely used by APIs and frameworks such as Rails and Laravel for validation errors — valid JSON containing, say, an invalid email address.

Defined in RFC 9110 §15.5.21
423LockedThe resource is locked.
WebDAV

A WebDAV file is locked by another user or process.

Defined in RFC 4918
424Failed DependencyThe request failed because a request it depended on failed.
WebDAV

Used by WebDAV when one action in a batch fails and the others cannot proceed.

Defined in RFC 4918
425Too EarlyThe server will not process a request that might be replayed.

Relates to TLS 1.3 early data (0-RTT): the server refuses to act on a request sent before the handshake finished, because an attacker could replay it. The client retries after the handshake.

Defined in RFC 8470
426Upgrade RequiredThe client must switch to a different protocol.

The server sends an Upgrade header naming the protocol the client must use.

Defined in RFC 9110 §15.5.22
428Precondition RequiredThe server requires a conditional request.

Forces clients to send If-Match so they cannot overwrite changes made by someone else (the lost-update problem).

Defined in RFC 6585
429Too Many RequestsToo many requests in a given time — the client is being rate-limited.
Common

The server may include a Retry-After header saying how long to wait.

Common causes

  • An API rate limit or quota has been reached
  • A script or crawler requesting too fast
  • A shared IP address (office, VPN, mobile carrier) with heavy traffic
  • Brute-force protection on a login page

How to fix it

  • Respect Retry-After and back off exponentially between retries
  • Cache responses and batch requests
  • Ask for a higher quota or use authenticated access

SEO impact: Googlebot slows down when it receives 429 or 503 responses; if they continue, URLs can start dropping from the index.

Defined in RFC 6585
431Request Header Fields Too LargeThe request headers are too big for the server.

The server refuses to process a request whose headers, or one header, are too large.

Common causes

  • Too many or very large cookies on the domain
  • An extremely long Referer or Authorization header

How to fix it

  • Clear the site’s cookies
  • Store less data in cookies on the server side
Defined in RFC 6585
444No Responsenginx closed the connection without sending anything.
Unofficial · nginx

Configured with return 444; to drop unwanted or malicious requests. Clients see an empty reply; the code only appears in nginx logs.

Not part of the HTTP standard — specific to nginx
451Unavailable For Legal ReasonsAccess is blocked for legal reasons.

For example a court order, government censorship or a copyright takedown. The number is a nod to Ray Bradbury’s Fahrenheit 451, and the response may name the blocking party in a Link header.

Defined in RFC 7725
499Client Closed RequestThe client closed the connection before nginx could respond.
Unofficial · nginx

Logged when a visitor navigates away or a client times out first — often a sign of slow upstream responses.

Not part of the HTTP standard — specific to nginx

5xx · Server errors

The server failed to fulfil a valid request.

500Internal Server ErrorA generic error: something went wrong on the server.
Common

The server hit an unexpected condition and has no more specific code to report.

Common causes

  • An unhandled exception or bug in the application
  • A syntax error in .htaccess or another server config file
  • Wrong permissions on a PHP or CGI script
  • Memory exhausted or a failed database query

How to fix it

  • Read the server or application error log — the real cause is recorded there
  • Roll back the most recent deploy or configuration change
  • Validate .htaccess and config syntax
  • Show a friendly error page and alert developers automatically

SEO impact: An occasional 500 is harmless, but persistent 5xx errors make search engines crawl less and eventually drop pages.

Defined in RFC 9110 §15.6.1
501Not ImplementedThe server does not support the functionality required.

Usually the server does not recognise the request method at all.

Defined in RFC 9110 §15.6.2
502Bad GatewayA gateway or proxy received an invalid response from the upstream server.
Common

Something between you and the application — nginx, a load balancer or a CDN — could not get a valid answer from the server behind it.

Common causes

  • The application server (PHP-FPM, Node.js, Gunicorn…) crashed or is not running
  • The upstream closed the connection or sent malformed headers
  • Wrong upstream address or port in the proxy configuration
  • A firewall blocks the proxy from reaching the origin

How to fix it

  • Restart the application server and check its logs
  • Confirm the proxy_pass or upstream address and port
  • Increase proxy buffer sizes if responses have very large headers
  • As a visitor: wait a minute and reload

SEO impact: Short outages are fine; repeated 502s reduce crawling like other 5xx errors.

Defined in RFC 9110 §15.6.3
503Service UnavailableThe server is temporarily unable to handle the request.
Common

Overload or planned maintenance. Include a Retry-After header to say when to come back.

Common causes

  • Maintenance mode is switched on
  • A traffic spike beyond capacity
  • Worker processes or connection pools are exhausted
  • A required dependency is down

How to fix it

  • Scale up, add caching or rate-limit expensive endpoints
  • During maintenance answer 503 with Retry-After — not 200 or 404
  • Check health checks and auto-scaling rules

SEO impact: The right code for planned downtime: search engines come back later instead of dropping pages. If it lasts more than a couple of days, URLs can start to fall out of the index.

Defined in RFC 9110 §15.6.4
504Gateway TimeoutA gateway or proxy did not get a response from the upstream server in time.
Common

The proxy reached the server behind it, but the answer took longer than the proxy was willing to wait.

Common causes

  • Slow database queries or long-running requests
  • The upstream server is overloaded or unreachable
  • A proxy timeout shorter than the work needs — nginx’s proxy_read_timeout defaults to 60 seconds
  • DNS or network trouble between the proxy and the origin

How to fix it

  • Speed up the slow request, or move it to a background job and return 202
  • Raise the proxy timeout only if the work genuinely takes longer
  • Check the origin server’s health and resources
Defined in RFC 9110 §15.6.5
505HTTP Version Not SupportedThe server does not support the HTTP version used in the request.

Rare today; modern servers accept HTTP/1.1 and usually HTTP/2.

Defined in RFC 9110 §15.6.6
506Variant Also NegotiatesA content-negotiation configuration error on the server.

The variant chosen during transparent content negotiation is itself set up to negotiate, creating a loop.

Defined in RFC 2295
507Insufficient StorageThe server cannot store what is needed to complete the request.
WebDAV

Typically a full disk or an exhausted storage quota on a WebDAV server.

Defined in RFC 4918
508Loop DetectedThe server found an infinite loop while processing the request.
WebDAV

Defined for WebDAV bindings. Some shared-hosting platforms also use 508 when an account exceeds its resource limits.

Defined in RFC 5842
510Not ExtendedFurther extensions to the request are required.

From the HTTP Extension Framework, an experiment that never caught on — you are unlikely to meet it.

Defined in RFC 2774
511Network Authentication RequiredYou need to sign in to the network first.

Sent by captive portals on hotel, airport and café Wi-Fi to show that the network — not the website — needs you to log in.

Defined in RFC 6585
520Web Server Returned an Unknown ErrorThe origin sent an empty, unknown or unexpected response to Cloudflare.
Unofficial · Cloudflare

Check the origin’s error logs, crash reports and response header sizes.

Not part of the HTTP standard — specific to Cloudflare
521Web Server Is DownThe origin server refused Cloudflare’s connection.
Unofficial · Cloudflare

Make sure the web server is running and that its firewall allows Cloudflare’s IP ranges.

Not part of the HTTP standard — specific to Cloudflare
522Connection Timed OutCloudflare could not complete a TCP connection to the origin.
Unofficial · Cloudflare

The origin is overloaded, offline or blocking Cloudflare at the network level.

Not part of the HTTP standard — specific to Cloudflare
523Origin Is UnreachableCloudflare cannot reach the origin server.
Unofficial · Cloudflare

Often caused by wrong DNS records pointing at an old or incorrect IP address.

Not part of the HTTP standard — specific to Cloudflare
524A Timeout OccurredThe origin accepted the connection but did not answer in time.
Unofficial · Cloudflare

Cloudflare waits 100 seconds by default for an HTTP response; move long jobs to background processing.

Not part of the HTTP standard — specific to Cloudflare
525SSL Handshake FailedThe TLS handshake between Cloudflare and the origin failed.
Unofficial · Cloudflare

Check that the origin has a valid certificate installed and supports modern TLS versions and ciphers.

Not part of the HTTP standard — specific to Cloudflare
526Invalid SSL CertificateCloudflare could not validate the origin’s certificate.
Unofficial · Cloudflare

In Full (strict) mode the origin needs a valid, unexpired certificate for the host name — a publicly trusted one or a Cloudflare Origin CA certificate.

Not part of the HTTP standard — specific to Cloudflare

Runs entirely in your browser. Nothing you enter or upload is sent to a server.

Every HTTP status code, explained in plain English

An HTTP status code is the three-digit number a web server sends back with every response: 200 when a page loads, 301 when it has moved, 404 when it cannot be found and 500 when the server breaks. This reference lists all the standard HTTP status codes registered with IANA — from 100 Continue to 511 Network Authentication Required — plus the unofficial codes you will meet from nginx and Cloudflare.

Each code explains what it means, when servers use it and where it is defined. The errors people actually run into — 400, 401, 403, 404, 429, 500, 502, 503 and 504 — also list typical causes and step-by-step fixes, and redirects and errors carry notes on how search engines treat them. Search by number or by words like “timeout”, filter by class, and share a direct link to any code, such as #404.

How to use the HTTP Status Codes

  1. Type a code (404) or a few words (gateway timeout, rate limit) into “Search codes”. A single match opens automatically.
  2. Use the filter buttons to show all codes, only the common ones, or one class such as 4xx.
  3. Click any code to expand it and read its meaning, typical causes, fixes and SEO impact.
  4. Untick “Include unofficial codes” to hide nginx, Cloudflare and framework-specific codes.
  5. Press “Copy link” inside an entry to share a deep link like /http-status-codes/#503 with a colleague.

HTTP Status Codes features

Complete standard list

All codes defined in RFC 9110 and the related RFCs, including 103, 207, 208, 226, 308, 421, 422, 425, 426, 428, 429, 431, 451, 507, 508, 510 and 511.

Causes and fixes

Practical troubleshooting for the errors that break sites and APIs most often.

SEO impact

How Google and other search engines react to redirects, 404/410 and 5xx responses.

Instant search and filters

Matches numbers, names and descriptions as you type, with class and “common” filters.

Deep links

Every code has its own anchor, so a link to #429 opens that entry directly.

The five classes of status codes

  • 1xx Informational — interim responses such as 101 for WebSocket upgrades and 103 Early Hints.
  • 2xx Success — the request worked: 200 OK, 201 Created, 204 No Content.
  • 3xx Redirection — go somewhere else (301, 302, 307, 308) or use the cached copy (304).
  • 4xx Client errors — the request is wrong, unauthorised or for something that does not exist.
  • 5xx Server errors — the request was fine but the server, or a gateway in front of it, failed.

301 vs 302 vs 307 vs 308

All four send the browser to the URL in the Location header. They differ in two ways: whether the move is permanent, and whether the client must keep the original method (a POST staying a POST). For web pages, use 301 for permanent moves and 302 for temporary ones; for APIs and forms that must keep the method, use 308 or 307. You can create server rules with the .htaccess redirect generator.

CodePermanent?Keeps method and body?Search engines
301 Moved PermanentlyYesNot guaranteed (POST may become GET)Index the new URL; signals pass
302 FoundNoNot guaranteedKeep the old URL indexed
307 Temporary RedirectNoYesKeep the old URL indexed
308 Permanent RedirectYesYesIndex the new URL; signals pass

Status codes and SEO

  • Return a real 404 or 410 for missing pages. A “not found” page that answers 200 is a soft 404 and wastes crawl budget.
  • Use 503 with Retry-After for maintenance so search engines return later rather than dropping pages.
  • Avoid redirect chains (A → B → C); point old URLs straight to the final destination.
  • Watch for spikes of 5xx and 429 errors in Search Console — sustained errors make crawlers slow down.
  • Check how a URL responds from the command line with curl -I https://example.com/page, or in the browser’s developer tools under the Network tab.

HTTP Status Codes FAQ

What are HTTP status codes?

HTTP status codes are three-digit numbers a server returns with every response to say what happened: 2xx means success, 3xx a redirect, 4xx a problem with the request and 5xx a problem on the server. The full list of HTTP status codes is above, each with its meaning.

What is the difference between 401 and 403?

401 Unauthorized means the server does not know who you are — logging in or sending a valid token can fix it. 403 Forbidden means the server knows (or does not care) who you are and still refuses, so logging in again will not help without different permissions.

What is the difference between 502 and 504?

Both come from a gateway or proxy in front of the application. 502 Bad Gateway means the upstream server sent an invalid response or none at all, often because it crashed. 504 Gateway Timeout means it did not answer within the proxy’s time limit, usually because a request was too slow.

Which redirect is best for SEO?

For a permanent move, a 301 (or 308) passes ranking signals to the new URL and replaces the old one in search results. Use 302 or 307 only when the original URL should stay indexed, such as short campaigns or temporary maintenance pages.

Is 418 I’m a teapot a real status code?

It began as an April Fools’ joke in RFC 2324 (1998). It is not used by real HTTP servers for anything meaningful, but RFC 9110 now reserves the number so nobody can reuse it, and some sites return it playfully.

What is a soft 404?

A page that tells visitors “not found” while the server returns 200 OK. Search engines detect these and treat them as errors. Configure your server or framework to return a genuine 404 (or 410) status for missing content.

You might also need