July 08, 2023 |Last Updated On October 09, 2026 | By Kinex Media
HTTP Status Codes: The Complete List and What Each Means for SEO

HTTP Status Codes: The Complete List and What Each Means for SEO

Say you open Google Search Console and find dozens of pages marked “Not found (404)”, a handful marked “Server error (5xx)”, and a few more labelled “Page with redirect”. Which of these are hurting your rankings? In short, 404s and 301s on pages you meant to remove or move are normal. Server errors (5xx) and soft 404s on pages that should be live are the ones to fix first.

Each of those labels comes from the three-digit status code the page sends back. This guide explains what those codes mean, which ones Google cares about, and what to do about them. If you only need to look up one code, jump to the quick reference or the full list.

Key Takeaways

  • An HTTP status code is a three-digit number a server sends back with every response, including every response to Googlebot.
  • Codes fall into five classes: 1xx informational, 2xx success, 3xx redirection, 4xx client error, and 5xx server error.
  • The official list is kept by IANA, and most codes are defined in RFC 9110. A code that isn’t in that registry isn’t a standard HTTP status code.
  • For SEO, the codes that matter most are 200, the permanent and temporary redirects (301/308 and 302/307), 404, 410, 429, and the 5xx range, because they decide whether Google indexes a page, follows a redirect, or slows down crawling.
  • Some numbers people search for, such as 250, 255, and 329, aren’t HTTP codes at all. Several are email (SMTP) or FTP reply codes, and others aren’t standard codes in any of these protocols.

What are HTTP Status Codes?

HTTP status codes are three-digit numbers a web server returns to tell the browser, app, or search engine crawler what happened to its request. The first digit gives the class of response (success, redirect, or error), and the full code gives the detail. They are defined in RFC 9110 and listed in the IANA HTTP Status Code Registry.

You rarely see them when a page loads normally, because the code is almost always 200. You notice them when something goes wrong: a “404 Not Found” page, a “503 Service Unavailable” message, or a list of errors in Google Search Console.

The 5 Classes of HTTP Status Codes

Class Meaning Common Examples What It Means for SEO
1xx Informational The server received the request, and the process is continuing 100, 103 No direct effect. Browsers and servers handle these behind the scenes.
2xx Success The request worked 200, 201, 204 A 200 lets Google consider the page for indexing (it doesn’t guarantee it).
3xx Redirection The content is somewhere else 301, 302, 304, 307, 308 Google follows the redirect. Permanent redirects send a strong signal to index the new URL.
4xx Client error The request can’t be fulfilled as sent 400, 403, 404, 410, 429 Google doesn’t index these URLs and drops them if they were indexed. 429 is the exception.
5xx Server error The server failed to handle a valid request 500, 502, 503, 504 Google slows down crawling. Errors that last can lead to pages being dropped.

Quick Reference: The Codes You’ll Actually See

Code Name Plain-English Meaning SEO Impact
200 OK The page loaded normally. Eligible for indexing.
201 Created The request created something new (common in APIs). Not used for normal web pages.
204 No Content Success, but there’s nothing to show. A page returning 204 has no content to index.
301 Moved Permanently The page has moved for good. Strong signal to index the new URL.
302 Found The page is temporarily somewhere else. Weak signal; Google may keep the old URL.
304 Not Modified Nothing changed since the last visit; use the cached copy. Saves crawl resources.
307 Temporary Redirect Like 302, but the request method must not change. Weak signal, same as 302.
308 Permanent Redirect Like 301, but the request method must not change. Strong signal, same as 301.
400 Bad Request The server couldn’t understand the request. Not indexed.
401 Unauthorized You need to log in. Not indexed.
403 Forbidden You’re not allowed to see this. Not indexed. Check you aren’t blocking Googlebot by mistake.
404 Not Found The page doesn’t exist. Not indexed; removed if it was.
410 Gone The page was removed on purpose. Treated the same as 404 by Google.
429 Too Many Requests The client sent too many requests. Google treats it as a server overload and slows crawling.
500 Internal Server Error Something broke on the server. Google slows crawling.
502 Bad Gateway A server in the chain got a bad response from another. Same as 500.
503 Service Unavailable The server is down or overloaded, usually temporarily. Same as 500. The right code for planned maintenance.
504 Gateway Timeout A server in the chain waited too long for another. Same as 500.

How HTTP Status Codes Affect SEO

Google’s crawlers read the status code before anything else. According to Google’s crawling documentation, here’s what each class does:

2xx: Eligible, Not Guaranteed. A 200 response lets Google process the content for indexing, but Google notes that a 2xx code “doesn’t guarantee indexing.” Watch out for soft 404s: pages that return 200 but show an error message or an empty page. Google treats these as errors, so a missing page should return a real 404 or 410.

3xx: follow the signal. Google follows up to 10 redirect hops. Permanent redirects (301, 308) are a strong signal that the new URL should be indexed. Temporary redirects (302, 307) are a weak signal, so Google may keep showing the old URL. For SEO:

  • Use 301 or 308 when a page has moved for good.
  • Avoid redirect chains (A to B to C). Point every old URL straight at its final destination.
  • Never create loops (A to B to A).

4xx: not indexed. Google doesn’t index URLs that return a 4xx code and removes them if they were indexed. Google says all 4xx codes except 429 are handled the same way, so 404 and 410 have the same effect in Google. Use 410 if you want to be explicit that a page was removed on purpose; use 404 otherwise. Don’t use 403 or 401 for pages you want indexed.

429 and 5xx: slow down. Google treats 429 and 5xx responses as a sign the server is struggling and temporarily slows crawling. Pages that are already indexed stay in the index at first, but if the errors continue, they can be dropped. For planned maintenance, return a 503 for a short period instead of a 200 “under maintenance” page.

Best Practices

  • Make sure every live page returns 200 and every removed page returns 404 or 410, not a redirect to the homepage.
  • Fix internal links that point to redirects or 404s; link straight to the final URL.
  • Check Search Console regularly for server errors (5xx) and sudden jumps in 404s.
  • After a site migration, map every old URL to its closest new URL with a 301.

Is HTTP 250 a Real Status Code? Numbers That Aren’t HTTP Codes

No. There is no HTTP status code 250, and the same goes for 255, 329, 222, 312, and many other numbers people search for. If you saw one of these numbers, it most likely came from a different protocol or from a specific tool.

Two other internet protocols use three-digit reply codes that look like HTTP codes:

  • Email (SMTP), defined in RFC 5321. Mail servers use codes such as 220, 221, 250, 251, 252, 354, 421, 450, and 550.
  • File transfer (FTP), defined in RFC 959. FTP servers use codes such as 110, 150, 212, 213, 220, 226, 230, 250, 331, and 530.

Here are the numbers we’re asked about most:

Number HTTP code? What it probably is
250 No SMTP: “Requested mail action okay, completed” (the email was accepted). FTP: “Requested file action okay, completed.”
220 No SMTP: the mail server is ready. FTP: the server is ready for a new user.
221 No SMTP / FTP: the server is closing the connection.
251 No SMTP: “User not local; will forward.”
252 No SMTP: the server can’t verify the user but will accept the message and try to deliver it.
212 No FTP: directory status.
213 No FTP: file status.
211 No SMTP / FTP: system status or help reply.
110 No FTP: restart marker reply.
104 Yes
(temporary)
Upload Resumption Supported. See the 1xx list below.
210, 219, 222, 254, 255 No Not standard codes in HTTP, SMTP, or FTP. Check the documentation of the app or device that showed it.
310, 312, 322, 329 No Not standard codes in HTTP, SMTP, or FTP. (310 is sometimes used informally to mean “too many redirects”, but browsers report that as an error, not a status code.)
105, 106, 111 No Not standard codes. Errors such as “name not resolved” or “connection reset” are browser or network errors, not HTTP status codes.

Tip: If a number appeared in an email bounce message or mail log, look it up as an SMTP code. If it appeared in an FTP client, look it up as an FTP code. If it appeared in an app, it’s usually that app’s own error number.

How to Check a Page’s Status Code

  1. In your browser: Open the page, press F12 (or right-click and choose Inspect), go to the Network tab, and reload. The first row shows the page’s status code.
  2. In Google Search Console: Use the URL Inspection tool to see how Google last fetched a page, and the Pages report to see which URLs aren’t indexed and why (Not found (404), Server error (5xx), Page with redirect, Soft 404, and so on).
  3. With a crawler: SEO crawlers such as Screaming Frog or Sitebulb check every URL on your site and list status codes, redirect chains, and broken links in one report.

If you’re comfortable with the command line, this shows only the response headers, including the status code:

curl -I https://www.example.com/

Common Confusions: 200 vs 201, 301 vs 302, and More

Pair Difference Which to use
200 vs 201 200 means the request succeeded. 201 means it succeeded and created something new. Web pages return 200. APIs return 201 after creating a record.
301 vs 302 301 is permanent; 302 is temporary. 301 for moved pages; 302 only for short-term moves, such as a temporary promotion page.
301 vs 308 Both are permanent. 308 also requires the request method (for example, POST) to stay the same. Either works for normal page moves; 308 matters for APIs and forms.
404 vs 410 404 means “not found”; 410 means “gone on purpose”. Google treats them the same. Either is fine for SEO.
502 vs 503 vs 504 502: bad response from an upstream server. 503: the server is unavailable. 504: an upstream server timed out. 503 is the right code for planned maintenance.

Want more detail on a specific code? See our guides to 302 redirects, 400 Bad Request, 404 Not Found, 409 Conflict, 422 Unprocessable Content, and 503 Service Unavailable. If Google isn’t indexing your pages at all, start with why Google might not be indexing your site.

The Full List of Official HTTP Status Codes

Here is the complete list of official HTTP status codes, as listed in the IANA registry in October 2026. Names are the official ones; the explanations are ours.

1xx Informational

Code Name What it means
100 Continue The server got the first part of the request, and the client should send the rest.
101 Switching Protocols The server agrees to switch protocols, for example to WebSocket.
102 Processing The server is working on a long request but has no response yet. Originally defined for WebDAV (RFC 2518) and rarely used today.
103 Early Hints The server sends some headers early so the browser can start loading resources, such as stylesheets, before the final response (RFC 8297).
104 Upload Resumption Supported Tells the client that an interrupted upload can be resumed. This is a temporary registration (made in November 2024 and due to expire in November 2026) tied to an IETF draft, so treat it as experimental.

2xx Success

Code Name What it means
200 OK The request succeeded. For a web page, the content is in the response.
201 Created The request succeeded and created a new resource. Typical after a POST to an API.
202 Accepted The request was accepted for processing, but the processing isn’t finished.
203 Non-Authoritative Information The request succeeded, but a proxy modified the response.
204 No Content The request succeeded, and there is no body to return.
205 Reset Content The request succeeded, and the client should reset the form or view that sent it.
206 Partial Content The server is returning only part of the resource, as asked (used for video streaming and resumable downloads).
207 Multi-Status A WebDAV response that contains several separate status codes (RFC 4918).
208 Already Reported WebDAV: these members were already listed earlier in the same response (RFC 5842).
226 IM Used The server applied changes (such as a delta encoding) to the resource before returning it (RFC 3229).

3xx Redirection

Code Name What it means
300 Multiple Choices There are several versions of the resource and the client can choose one.
301 Moved Permanently The resource has a new permanent URL. Use it for permanent page moves.
302 Found The resource is temporarily at a different URL.
303 See Other The client should fetch a different URL with GET, often after a form submission.
304 Not Modified The cached copy is still valid, so nothing is resent.
305 Use Proxy Deprecated. Don’t use it.
306 (Unused) Reserved. It was used in an old draft and is no longer in use.
307 Temporary Redirect Temporary move; the client must repeat the request with the same method.
308 Permanent Redirect Permanent move; the client must repeat the request with the same method.

4xx Client Errors

Code Name What it means
400 Bad Request The request is malformed, so the server won’t process it.
401 Unauthorized Authentication is required and is missing or wrong.
402 Payment Required Reserved for future use. Some services use it for billing errors.
403 Forbidden The server understood the request but refuses to allow it.
404 Not Found The server can’t find the requested resource.
405 Method Not Allowed The method (for example, POST) isn’t allowed for this URL.
406 Not Acceptable The server can’t produce a response in a format the client accepts.
407 Proxy Authentication Required The client must authenticate with a proxy first.
408 Request Timeout The server gave up waiting for the client to finish this request.
409 Conflict The request conflicts with the current state of the resource, such as an edit conflict.
410 Gone The resource was removed on purpose and won’t come back.
411 Length Required The request must say how long its body is.
412 Precondition Failed A condition in the request headers wasn’t met.
413 Content Too Large The request body is bigger than the server will accept (formerly “Payload Too Large”).
414 URI Too Long The URL is longer than the server will process.
415 Unsupported Media Type The server doesn’t support the format of the request body.
416 Range Not Satisfiable The client asked for a part of the file that doesn’t exist.
417 Expectation Failed The server can’t meet the requirement in the Expect header.
418 (Unused) Reserved. Known from the 1998 “I’m a teapot” April Fools’ joke and not a real error.
421 Misdirected Request The request went to a server that can’t produce a response for it.
422 Unprocessable Content The request is well formed but contains invalid data (formerly “Unprocessable Entity”).
423 Locked WebDAV: the resource is locked.
424 Failed Dependency WebDAV: the request failed because an earlier request failed.
425 Too Early The server won’t process a request that might be replayed (RFC 8470).
426 Upgrade Required The client must switch to a different protocol.
428 Precondition Required The server requires the request to be conditional, to prevent lost updates (RFC 6585).
429 Too Many Requests The client sent too many requests in a given time.
431 Request Header Fields Too Large The request headers are too large.
451 Unavailable For Legal Reasons The resource is blocked for legal reasons (RFC 7725).

5xx Server Errors

Code Name What it means
500 Internal Server Error A generic error: something went wrong on the server.
501 Not Implemented The server doesn’t support the feature needed to complete the request.
502 Bad Gateway A gateway or proxy got an invalid response from the server behind it.
503 Service Unavailable The server is temporarily unable to handle the request, often because of maintenance or overload.
504 Gateway Timeout A gateway or proxy didn’t get a response in time from the server behind it.
505 HTTP Version Not Supported The server doesn’t support the HTTP version used.
506 Variant Also Negotiates A server configuration error in content negotiation.
507 Insufficient Storage WebDAV: the server can’t store what’s needed to complete the request.
508 Loop Detected WebDAV: the server found an infinite loop while processing the request.
510 Not Extended Obsoleted. It belonged to an HTTP extension experiment that is now historic.
511 Network Authentication Required You must log in to the network first, as on hotel or airport Wi-Fi.

Unofficial and Vendor-Specific Codes

Some servers, CDNs, and frameworks use their own codes. They are not part of the HTTP standard, but you may see them in server logs, CDN dashboards, or crawler reports.

Code Used by Meaning
419 Laravel (PHP framework) Page Expired, usually because the security (CSRF) token on a form expired.
440 Microsoft IIS Login Time-out: the session expired.
449 Microsoft IIS Retry With: the request should be retried after the client provides more information.
499 nginx Client Closed Request: the visitor (or a bot) closed the connection before the server answered.
520 Cloudflare The origin server returned an unknown or unexpected response.
521 Cloudflare The origin web server refused the connection (often it is down).
522 Cloudflare Cloudflare timed out connecting to the origin server.
523 Cloudflare The origin server is unreachable.
524 Cloudflare Cloudflare connected, but the origin took too long to respond.
525 Cloudflare The SSL handshake between Cloudflare and the origin failed.
526 Cloudflare The origin’s SSL certificate is invalid.
530 Cloudflare Returned together with a Cloudflare 1xxx error (for example, a DNS problem at the origin); the 1xxx error tells you the real cause.

If you see one of these, the fix is on the server or CDN side, and the vendor’s documentation is the best place to start. For SEO, Google treats them by their class: a 5xx-range vendor code slows crawling like any other server error.

FAQ

What are the 5 classes of HTTP status codes?

HTTP status codes are grouped by their first digit: 1xx informational (the request is in progress), 2xx success (the request worked), 3xx redirection (the content is elsewhere), 4xx client error (the request can’t be fulfilled as sent), and 5xx server error (the server failed to handle a valid request).

Which HTTP status codes matter most for SEO?

The most important are 200 (the page can be indexed), 301 and 308 (permanent redirects), 302 and 307 (temporary redirects), 404 and 410 (the page is removed from Google’s index), 429, and the 5xx server errors, which make Google slow down crawling and can lead to pages being dropped if they continue.

Is HTTP 250 a real status code?

No. 250 isn’t an HTTP status code. It’s a common reply code in email (SMTP), where it means the mail action was completed, and in FTP, where it means a file action was completed. Numbers such as 255 and 329 aren’t standard codes in HTTP, SMTP, or FTP.

What is the difference between a 200 and a 201 status code?

Both mean the request succeeded. A 200 OK is the normal response for a web page or a successful request. A 201 Created means the request also created a new resource, which is typical when an API saves a new record.

Should I use a 404 or a 410 for a deleted page?

Either works for SEO. Google treats all 4xx codes except 429 the same way and removes the URL from its index. A 410 tells other systems more clearly that the page was removed on purpose, while a 404 is the standard “not found” response.

Who decides which HTTP status codes are official?

The Internet Engineering Task Force (IETF) defines HTTP status codes in its RFC standards, mainly RFC 9110, and the Internet Assigned Numbers Authority (IANA) keeps the official registry. A code that isn’t in the IANA registry isn’t a standard HTTP status code.

Seeing 404s, redirect chains, or 5xx errors in Search Console? Our technical SEO team can find what’s stopping Google from crawling and indexing your site. Get a free SEO audit.