HTTP Response Codes and Server Statuses – Complete Reference

Your server talks to browsers using three-digit codes. These HTTP status codes tell you whether a page loaded successfully, got redirected, or crashed. You’ll see them when debugging your site, checking broken links, or trying to figure out why search engines aren’t indexing your pages.

The Internet Assigned Numbers Authority manages these codes. They’re not random. Each code belongs to a specific category that tells you exactly what happened to your request. Understanding them saves you hours of troubleshooting and prevents SEO disasters.

We’ll cover all standardized HTTP response codes, how they impact your search rankings, and which tools catch them before they hurt your traffic.

Understanding HTTP Response Code Categories

HTTP status codes break into five categories. The first digit tells you everything.

  • 1XX codes mean your server got the request and it’s processing. You won’t see these in your browser. They’re temporary signals between servers.
  • 2XX codes are success. The server understood your request and delivered what you asked for. Your page loaded. Your form submitted. Everything worked.
  • 3XX codes mean redirection. The content moved somewhere else, and the server’s sending you to the new location. These can be temporary or permanent.
  • 4XX codes flag client errors. You typed a wrong URL. You don’t have permission. The page doesn’t exist. These are on you or your users.
  • 5XX codes signal server problems. The hosting crashed. The gateway timed out. The server can’t handle the request. These are hosting or configuration issues.

The Internet Engineering Task Force standardized these categories. They’ve stayed consistent since HTTP became the backbone of the web.

1XX Informational Status Codes

These codes work behind the scenes. Users never see them.

100 Continue

Your server received the request headers and it’s ready for the body. The client should keep sending data. This prevents wasted bandwidth on requests the server will reject anyway.

101 Switching Protocols

The server agreed to switch protocols. This happens when upgrading from HTTP to WebSocket or switching to HTTP/2. The change only occurs if it benefits both sides.

102 Processing

The server’s still working on your request. You’ll see this when operations take longer than expected. It prevents timeouts on slow processes.

103 Early Hints

The server tells your browser to start preloading resources while it prepares the full response. This speeds up page rendering by letting browsers fetch CSS and JavaScript files early.

2XX Success Codes Complete Guide

Success codes confirm your request worked. Here’s what each one means.

200 OK

The request succeeded. What that means depends on the HTTP method. GET fetched the page. POST submitted your form. PUT updated the resource. DELETE removed it. This is the code you want to see.

201 Created

The server created a new resource. You’ll see this after POST or PUT requests. The response includes either a Location header pointing to the new resource or the URI you targeted.

202 Accepted

The server accepted your request but hasn’t processed it yet. This works for batch operations where the server handles requests asynchronously. Your client doesn’t need to wait around for completion.

203 Non-Authoritative Information

The request worked, but a proxy modified the response. The data might differ from what the origin server sent. You’ll see this with cached or mirrored resources where intermediaries transform the content.

204 No Content

The server processed the request successfully but isn’t sending any content back. Use this for actions that don’t require updating the browser view. Your form saved. The resource deleted. No page refresh needed.

205 Reset Content

The request succeeded, and the client should reset the document view. Clear that form. Reset that canvas. Return to default state.

206 Partial Content

The server’s sending part of the resource. This happens when clients use the Range header to request specific chunks. It powers resume functionality on interrupted downloads and enables video streaming.

207 Multi-Status

The response contains status codes for multiple resources. You’ll get an XML message body with a multi-status root element. Each resource gets its own success, partial success, or failure status.

208 Already Reported

This code appears inside DAV responses to prevent duplicate listings. When collections contain internal members, only one resource reports 200 OK. Duplicates get 208.

226 IM Used

The server processed a GET request and applied instance manipulations to the resource. It modified the content based on transformation rules.

3XX Redirect Codes and Their Uses

Redirect codes tell clients the content moved. Some redirects preserve SEO value. Others don’t.

300 Multiple Choices

Multiple responses exist and the client needs to pick one. This happens when resources have language versions. English or French? The response lists your options with resource details and locations. If the server prefers one, it includes a Location header for automatic redirection.

301 Moved Permanently

The resource permanently moved to a new URL. All future requests should use the new address. Search engines transfer the old page’s ranking to the new location. This is your go-to for permanent URL changes.

The response includes a link to the new URL unless you’re using a HEAD request. For methods besides GET and HEAD, redirection only happens if the client allows it.

302 Found

The resource temporarily lives at a different URI. Keep using the original address for future requests unless told otherwise. The server usually includes a link to the temporary location. Redirection only occurs if the client permits it.

303 See Other

The server redirects the client to a different resource using GET. The server can’t provide the requested resource directly. After form submission, it redirects to a confirmation page instead of showing results inline.

304 Not Modified

The resource hasn’t changed. Use your cached version. This code appears with GET or HEAD requests that include conditional headers like If-None-Match or If-Modified-Since. It saves bandwidth by skipping unnecessary downloads.

307 Temporary Redirect

The server redirects to another URI temporarily. Since it’s temporary, keep using the original address later. Unlike 302, the client must maintain the same HTTP method during redirect. POST stays POST.

308 Permanent Redirect

The resource permanently moved to a new URI in the HTTP header. This works like 301 except clients can’t change the request method. POST stays POST. PUT stays PUT.

4XX Client Error Codes Reference

These codes mean something’s wrong with the request. The problem’s on the client side.

400 Bad Request

The server can’t process your request. Client-side error. Invalid syntax. Bad routing. Wrong parameters. Check your URL and clear browser cache to fix it.

401 Unauthorized

The server rejected your request due to missing or invalid authentication. If you included credentials, they were wrong. The response comes with a WWW-Authenticate header showing how to access the resource. Log in with valid credentials.

402 Payment Required

Reserved for digital payment systems but rarely used. No clear implementation rules exist. Most services skip this code entirely.

403 Forbidden

The server understood your request but denied access. Usually due to insufficient permissions. Re-authentication won’t help. Access is permanently restricted unless you get different credentials with proper authorization.

404 Not Found

The server can’t find the requested resource. No forwarding address. In browsers, the link’s broken or wrong. In APIs, the endpoint exists but the resource doesn’t. These are broken links. They can be temporary or permanent.

405 Method Not Allowed

The server recognizes the request method but the resource doesn’t support it. You tried to DELETE a read-only resource. You attempted to PUT where only GET works. The response includes an Allow header listing supported methods.

406 Not Acceptable

The server can’t find content matching the criteria in your Accept headers. You requested JSON but the server only serves XML. The server provides a list of available options so you can choose something suitable.

407 Proxy Authentication Required

You’re using a proxy and need valid authentication. Unlike 401, you authenticate with the proxy server, not the origin server.

408 Request Timeout

The server didn’t receive the complete request within the allowed time. The response suggests closing the connection. You can resend the request without changes. This happens in browsers like Chrome and Firefox when pre-connection attempts timeout.

409 Conflict

The server can’t process the request due to a conflict with the resource. It explains the issue so you can fix it and retry. Common with PUT requests when resources conflict.

410 Gone

The resource permanently disappeared. No forwarding address. Search engines remove these pages from their index. The site owner intentionally made the resource unavailable and wants all links removed.

411 Length Required

The server rejected the request because it needs a Content-Length header. Add the header and try again.

412 Precondition Failed

The server couldn’t meet one or more conditions in the request headers. Your conditional request failed validation.

413 Payload Too Large

Your request is too large to process. The server might close the connection and include a Retry-After header suggesting when to try again.

414 URI Too Long

The request URI exceeds what the server can handle. Rare, but happens when clients convert POST to GET with excessive query data, enter redirect loops, or attempt to exploit server vulnerabilities.

415 Unsupported Media Type

The server rejected the request because the resource uses an unsupported media format. This happens when compression methods aren’t supported or content doesn’t match server expectations.

416 Range Not Satisfiable

The server can’t process the range in your request. The range doesn’t exist in the resource or the value’s invalid.

417 Expectation Failed

The server can’t meet the requirements in the request’s Expect header. Your expectations don’t match server capabilities.

418 I’m a Teapot

An April Fools’ joke from the Hyper Text Coffee Pot Control Protocol. The server’s a teapot and can’t brew coffee. Some websites use it for requests they want to avoid.

421 Misdirected Request

The client sent a request to the wrong server. The server can’t respond to the given URL. Retry with a different connection or service.

422 Unprocessable Entity

The server received the request but can’t process it due to semantic errors. You entered text in a numeric field. Your data structure’s valid but the values aren’t.

423 Locked

The resource is locked. The response includes details about the lock status.

424 Failed Dependency

The request failed because it depended on a previous request that also failed. Chain broken.

425 Too Early

The server refuses to process the request because it might be replayed later. Security precaution.

426 Upgrade Required

The server won’t process the request unless the client switches to the required protocol in the Upgrade header. Update your protocol.

428 Precondition Required

The server needs a conditional request to ensure the client’s using the correct version of the resource.

429 Too Many Requests

You sent too many requests in a short time. Rate limited. The server may include a Retry-After header telling you how long to wait.

431 Request Header Fields Too Large

Your request headers are too big to process. Reduce header size and resend.

The resource was removed due to legal reasons. Site blocked. Page taken down. Legal compliance. Affects ISPs and search engines mainly.

5XX Server Error Codes Explained

Server errors mean something broke on the hosting side. Not your fault.

500 Internal Server Error

Generic error. The server hit an unexpected problem that prevented it from completing the request. Server administrators log detailed information for troubleshooting. You can’t fix this from the client side.

501 Not Implemented

The server doesn’t support the functionality needed to complete the request. Servers only need to handle GET and HEAD methods by default. The response might include a Retry-After header indicating when the functionality will be available.

502 Bad Gateway

The gateway or proxy server received an invalid response while trying to complete the request. Something broke in the server chain. Contact your web host.

503 Service Unavailable

The server can’t handle the request due to temporary overload or maintenance. Check the Retry-After header to see when to try again. Temporary condition.

504 Gateway Timeout

The gateway or proxy server didn’t get a timely response from the upstream server. Network issue. Server overload. Check your hosting resources.

505 HTTP Version Not Supported

The server doesn’t support the HTTP version used in the request. The response explains why that version doesn’t work and lists acceptable protocols.

506 Variant Also Negotiates

Server configuration error. The chosen resource variant is configured for content negotiation but isn’t a valid endpoint. Creates an infinite loop.

507 Insufficient Storage

The server doesn’t have enough storage to complete the request. Disk full.

508 Loop Detected

The server stopped an operation because it detected an infinite loop. The process failed.

510 Not Extended

The server needs further extensions to complete the request. The current capabilities aren’t enough.

511 Network Authentication Required

You need to authenticate to access the network. Common with captive portals on public Wi-Fi. The response includes a link to submit credentials.

HTTP Request Methods and Responses

HTTP methods tell the server what action to take. Each method has specific properties.

Safe methods don’t modify anything on the server. They work read-only. Idempotent methods give the same result no matter how often you run them. No unintended side effects. Cacheable methods let browsers or proxies save responses for reuse.

GET

Retrieves data from a resource. Safe, idempotent, and cacheable. Most common method.

HEAD

Requests the same response as GET but without a message body. Gets headers only. Safe and idempotent.

POST

Sends data to a resource. Submits forms. Creates resources. Not idempotent. Can be cacheable under certain conditions.

PUT

Replaces a resource or its representation entirely. Idempotent. Running it multiple times produces the same result as running it once.

DELETE

Removes a resource. Idempotent. First deletion succeeds. Subsequent deletions find nothing to delete but don’t fail.

OPTIONS

Shows the communication options for the resource. Safe and idempotent.

TRACE

Tests the path of a request. Debugging tool. Safe and idempotent.

PATCH

Updates part of a resource. Unlike PUT, which replaces the entire resource, PATCH modifies specific fields.

These request methods connect with HTTP status codes. A GET request returns 200 OK when it works or 404 Not Found when the resource doesn’t exist.

How to Check HTTP Status Code Using Tools

You need to see status codes when debugging. Several tools make this easy.

Your browser’s developer tools show every status code. Right-click anywhere on the page and select Inspect. Click the Network tab at the top. Reload the page. You’ll see every request with its status code, size, and timing.

Chrome, Firefox, Safari, and Edge all work the same way. The Network tab captures everything. Filter by status code to find errors quickly. Click any request to see full headers and response data.

WebSniffer works online without installing anything. Visit websniffer.cc, enter your URL, select the request type (GET, POST, or HEAD), and pick a client. You’ll see how the page loads on different browsers and even Googlebot. Check headers. Verify status codes. Test crawler access.

Command-line users can use curl with the -I flag. Type curl -I https://example.com and you’ll get headers including the status code. Fast and scriptable.

For checking multiple URLs at once, use browser extensions like Redirect Path or Link Checker. They scan entire pages and highlight status codes. Red means problems. Green means everything works.

HTTP Status Codes for SEO Impact

Search engines track every status code while crawling your site. They use this data to evaluate site health and ranking.

200 codes tell search engines your pages work. They index the content. They rank the pages. Everything’s accessible.

301 redirects preserve your SEO value when URLs change. They transfer link equity from old pages to new ones. Rankings stay intact. Use them for permanent moves.

302 redirects don’t transfer SEO value the same way. They’re temporary. Search engines keep the original URL indexed. Using 302 for permanent changes splits your authority between URLs. Rankings suffer.

404 errors hurt. Search engines remove these pages from their index. You lose traffic. If the page has backlinks, you lose link equity. Visitors leave frustrated. Fix 404s immediately or redirect them to relevant content.

500 errors damage crawling and indexing. Search engines can’t access your content. If errors persist, they’ll crawl less frequently. Rankings drop. Your hosting matters.

503 errors indicate maintenance. Short periods won’t hurt much. Extended downtime damages rankings. Search engines interpret prolonged 503s as site instability.

200 OK Status Code for SEO

200 OK is the code you want everywhere. It means pages load correctly. Search engines can access your content. Users get what they requested.

When search engine bots crawl your site and receive 200 responses, they index those pages. The content enters search results. Rankings can improve based on content quality, backlinks, and user signals.

A consistent pattern of 200 codes tells search engines your site’s reliable. Pages load fast. Content’s accessible. The infrastructure works. This builds trust with search algorithms.

Monitor your important pages. Check that they’re returning 200. Use tools like Google Search Console to spot pages that aren’t loading correctly. Fix any that aren’t returning 200.

301 Redirect Best Practices

301 redirects move SEO value from old URLs to new ones. When you change a URL structure, redesign your site, or consolidate content, 301s preserve your rankings.

Search engines transfer link equity through 301 redirects. The old page’s authority flows to the new location. Backlinks count toward the new URL. Rankings typically hold steady if you redirect to relevant content.

Best practices for implementing 301 redirects:

  • Redirect to relevant pages with similar content. Users and search engines expect continuity.
  • Update internal links across your site. Replace old URLs in navigation, menus, and content.
  • Ask sites linking to your old URLs to update their links. Not everyone will, but trying helps.
  • Monitor redirects to avoid chains. A chain happens when URL A redirects to URL B which redirects to URL C. Each hop slows your site and confuses search engines.
  • Submit an updated sitemap to inform search engines about your new URL structure.

WordPress sites can set up 301 redirects through hosting control panels or plugins. Many hosting providers include redirect tools in their dashboards.

302 Temporary Redirect vs 301

302 redirects work differently from 301s. They’re temporary. Search engines assume the original URL will return.

When search engines encounter a 302, they often keep the original URL indexed. They don’t transfer full link equity to the new location. Using 302 for a permanent move splits your SEO value between URLs. Neither URL gets full authority.

Use 302 only for genuinely temporary situations. A/B testing. Maintenance pages. Seasonal campaigns. Holiday promotions. When the change becomes permanent, switch to 301.

The difference matters. A site I audited had used 302s for three years after a redesign. Their rankings never recovered because search engines kept indexing the old URLs. We switched to 301s and rankings improved within weeks.

404 Not Found Error Impact

404 errors kill SEO and user experience. Search engines remove these pages from their index. Traffic disappears. If the page has backlinks, you lose valuable link equity.

Users hate 404s. They came for content that doesn’t exist. Frustration sets in. They bounce. Your site looks broken.

Fix 404 errors immediately. If you deleted a page intentionally, redirect it to relevant content with a 301. If the page should exist, figure out why it doesn’t and restore it.

Create a custom 404 error page. Include navigation links. Add a search box. Suggest popular pages. Guide lost visitors back into your site instead of letting them leave.

Scan your site regularly for 404 errors. Google Search Console shows which URLs are returning 404. Third-party tools like Screaming Frog crawl your entire site and flag broken links. Fix them before they accumulate.

410 Gone vs 404 Error Codes

410 Gone tells search engines you permanently removed a page. It’s more explicit than 404. Search engines respond by removing the page from their index faster.

404 says the page doesn’t exist right now. Could be temporary. Could be a typo. Search engines might check back later. 410 says don’t bother checking. It’s gone forever.

Use 410 when you intentionally delete content you don’t want indexed. Old product pages. Expired promotions. Outdated information. Content you’re actively trying to remove from search results.

Don’t use 410 on pages with valuable backlinks or significant traffic unless you’re sure. Redirect those pages instead with a 301. Preserve the SEO value.

500 Internal Server Error Solutions

500 errors mean your server broke. These damage SEO through reduced crawling and indexing. When search engines can’t access your content, they can’t rank it.

If 500 errors persist, search engines crawl your site less frequently. They assume your site’s unreliable. Rankings drop. Traffic decreases.

Common causes on WordPress sites include bad plugins and corrupted .htaccess files. Disable plugins one by one to find the culprit. Check your .htaccess file for syntax errors.

For other platforms, check server logs. They’ll show what failed: exceeded memory limits, database connection failures, or file permission issues. The logs reveal the problem.

Contact your hosting provider if you can’t identify the cause. Server-side issues often require host intervention. They have access to deeper logs and server configuration.

Fix 500 errors fast. Every minute your site’s down is potential traffic lost and rankings at risk.

503 Service Unavailable Fix

503 errors signal temporary downtime: server maintenance, traffic overload, resource exhaustion. Unlike 500 errors, 503s are usually planned.

Short-term 503 errors won’t hurt SEO much. Search engines understand maintenance happens. They’ll check back later. But extended periods damage rankings.

If your site shows 503 for days or weeks, search engines interpret it as instability. They reduce crawling. Pages might drop from the index. Rankings decline.

Include a Retry-After header in your 503 response. This tells search engines exactly when to come back. It’s polite and prevents excessive crawl attempts.

If you’re getting 503s from server overload, upgrade your hosting resources. More RAM. Better CPU. Faster servers. High traffic breaking your site means you need infrastructure that can handle it.

For planned maintenance, schedule it during low-traffic hours. Monitor how long pages stay in 503 status. Get back online quickly.

Common HTTP Status Code FAQ

How many HTTP status codes exist?

The IANA registry lists codes from 100 to 599. Only 63 are standardized and widely used. The rest remain unassigned or are platform-specific.

Should I check my site for HTTP status code errors?

Yes. Checking for status code errors improves site performance, user experience, and search rankings. Use Google Search Console, browser developer tools, or crawling software to find problems.

How do I fix 4XX and 5XX errors?

4XX errors come from the client side. Check for URL typos, update permissions, or verify authentication. 5XX errors are server-side. Review server settings, check logs, examine resources, and contact your hosting provider if needed.

What’s the difference between 301 and 302 redirects?

301 redirects are permanent and transfer SEO value to the new URL. 302 redirects are temporary and don’t transfer full link equity. Use 301 for permanent changes, 302 for temporary situations.

Why do 404 errors hurt SEO?

404 errors cause search engines to remove pages from their index, resulting in lost traffic. Pages with backlinks lose link equity. Users encounter frustration and leave. Regular monitoring and fixing prevents damage.

What HTTP methods are safest to cache?

GET and HEAD methods are safe to cache because they don’t modify server data. POST, PUT, and DELETE shouldn’t be cached as they change resources. OPTIONS and TRACE are safe but rarely cached.

Scroll to Top