Skip to main content

HTTP

HTTP Status Codes: The Web's Vocabulary of Success and Failure

From 200 OK to 500 errors — and what each one signals.

Quick answer

HTTP status codes are three-digit numbers a server returns to describe the result of a request: 2xx success, 3xx redirection, 4xx client error (like 404), 5xx server error (like 500). Using the correct code is essential for browsers, search engines and monitoring.

Every web response carries a status code that tells the client what happened. Serving the right code — a real 404 for missing pages, a 301 for permanent moves, a 200 for success — keeps search engines, browsers and monitoring tools accurate.

Check your website

See how your site handles http status codes: the web's vocabulary of success and failure — free, no account needed.

For business owners

Status codes are how your server communicates with browsers and Google. Getting them wrong causes real problems: missing pages that return "success" get indexed as thin content, temporary redirects lose SEO value, and errors that go unmonitored become silent downtime. Correct status codes keep your site legible to the machines that decide your rankings and uptime.

How it works (technical)

The five classes:

  • 1xx Informational — rarely seen directly.
  • 2xx Success — 200 OK, 204 No Content.
  • 3xx Redirection — 301 permanent, 302/307 temporary, 304 Not Modified (caching).
  • 4xx Client error — 400, 401, 403, 404, 410 Gone, 429 Too Many Requests.
  • 5xx Server error — 500, 502, 503, 504.

Search engines act on these: 301 transfers ranking signals, 404/410 removes pages, 503 says "try again later". Returning the wrong class (e.g. 200 for a missing page) causes misindexing.

Real-world example

A site returned 200 for its "page not found" screen (a soft 404) and 302 for permanent moves. Google indexed empty pages and never transferred link equity from moved URLs. Switching to proper 404s and 301s cleaned the index and recovered ranking signals.

Why it matters

Correct status codes are fundamental to SEO, caching, error handling and monitoring. Many trust and technical-SEO checks are really status-code checks in disguise.

How to fix it

  1. Return 200 only for pages that genuinely exist and succeed.

  2. Use 301 for permanent moves, 302/307 only for truly temporary ones.

  3. Serve a real 404 (or 410) for missing content — never a 200 soft 404.

  4. Use 503 with Retry-After for maintenance.

  5. Monitor for unexpected 4xx/5xx spikes.

Best practices

  • Match the code to the actual outcome of the request.

  • Prefer 301 for permanent redirects to preserve SEO.

  • Return 429 with Retry-After for rate limiting rather than a generic error.

Common mistakes

  • Soft 404s that return 200 for missing pages.

  • Using 302 for permanent moves and losing ranking signals.

  • Serving 500s during planned maintenance instead of 503.

Frequently asked questions

What is the difference between 301 and 302?

301 is a permanent move that transfers SEO signals to the new URL; 302 is temporary and keeps signals on the original. Use 301 for permanent HTTPS or URL changes.

Is a 403 the same as a 404?

No. 403 means "you are not allowed to access this" (it exists but is forbidden); 404 means "this does not exist".

Put this into practice

See how your site scores with Plexa Trust — start with a free scan, then unlock the complete audit on Pro.

Scan your website free

See Pro plans · Create account