Skip to content
Guide

HTTP status codes explained: a practical primer for SEOs

Every time a browser or a crawler asks a server for a page, the server answers with a three-digit status code before it sends anything else. That number is the server's one-word summary of what happened: here you go, it moved, I cannot find it, something broke. Learn to read those numbers and a lot of SEO debugging stops being guesswork.

This is a working primer rather than a full reference. It covers what each family of codes means, which ones matter for search, and the specific codes you will run into often enough to memorize. For the full list with fixes for each code, the reference section goes deeper than this guide can.

How the families break down

Status codes are grouped by their first digit, and the digit alone tells you the general shape of the answer.

  • 1xx informational: the request was received and processing continues. You rarely see these directly.
  • 2xx success: the request worked. 200 OK is the one you want for every page you want indexed.
  • 3xx redirection: the resource is somewhere else. This family covers permanent and temporary redirects.
  • 4xx client error: something about the request was wrong, most often a URL that does not exist.
  • 5xx server error: the request was fine but the server failed to handle it.

The success codes (2xx)

200 OK is the response you are aiming for. It means the page loaded and returned real content, and it is the only state in which a page gets crawled and indexed normally. When you audit a site, the goal is for every URL you want ranked to return a clean 200.

The trap in this family is the soft 404: a page that returns 200 while displaying an error or showing no real content. Search engines may keep that empty page indexed, which wastes crawl budget and clutters your index. Missing pages should return a real 404 or 410, not a 200.

The redirect codes (3xx)

Two codes carry most of the weight here. A 301 is a permanent redirect that passes nearly all ranking signals to the new URL, and it is the right choice for moves you intend to keep. A 302 is a temporary redirect that leaves the original URL indexed and generally does not pass those signals.

Getting these two right is one of the highest-leverage things in technical SEO, because using a 302 where you needed a 301 can quietly cost you rankings during a migration. The same permanent-versus-temporary logic extends to 307 and 308, which behave like 302 and 301 but guarantee the request method is preserved.

The client errors (4xx)

404 Not Found is the one everyone knows: the server could not find the page. A few 404s are normal and even healthy, but valuable pages returning 404 by accident lose their rankings and any link value they had earned.

Two cousins are worth knowing. A 410 Gone says a page was removed on purpose and is never coming back, and search engines drop 410s faster than 404s. A 403 Forbidden means access was refused, and it becomes an SEO problem when a firewall or CDN accidentally blocks crawlers from pages you want indexed.

The server errors (5xx)

A 5xx means the request was valid but the server fell over while handling it. 500 Internal Server Error is the generic catch-all, while 502 and 504 usually point at a problem between a proxy and the backend behind it.

Search engines tolerate the occasional brief 5xx, but sustained server errors are damaging. Pages returning 5xx cannot be indexed, and a pattern of them tells crawlers the site is unreliable, which slows your crawl rate. The one bright spot is 503 Service Unavailable: paired with a Retry-After header during planned maintenance, it tells crawlers to come back later without dropping the page.

Codes worth memorizing

You do not need to learn all of them. A short list covers the vast majority of what comes up in day-to-day SEO work.

  • 200 OK: the page is live and indexable.
  • 301 Moved Permanently: permanent redirect that passes ranking signals.
  • 302 Found: temporary redirect that does not.
  • 404 Not Found: the page is missing.
  • 410 Gone: the page was removed on purpose.
  • 503 Service Unavailable: temporary downtime, safe for planned maintenance with Retry-After.

Frequently asked questions

Which HTTP status codes matter most for SEO?
200, 301, 302, 404, 410, and the 5xx family. Make sure indexable pages return 200, permanent moves use 301 rather than 302, missing pages return a real 404 or 410, and server errors get fixed quickly. Those few codes cover most technical SEO issues you will hit.
Can a status code stop my page from being indexed?
Yes. Only pages returning 200 get indexed normally. A page returning 404, 403, 5xx, or stuck behind a redirect will not be indexed, and if it was ranking before, it can drop out. That is why checking real status codes is part of any technical audit.
What is the difference between a 404 and a 410?
Both mean the page is not there. A 404 says it could not be found, without saying whether that is permanent. A 410 explicitly says the page was removed on purpose and will not return. Search engines tend to drop 410 URLs from the index faster.
How do I check what status code my pages return?
Use a status checker that requests each URL and reports the code the server actually returns. Checking in bulk lets you scan a whole list of URLs at once and spot 404s, redirect chains, and 5xx errors quickly, which is far faster than testing pages one by one.

Related tools

Related guides

Check it with Sitewell

Put this guide to work on your own site

Sitewell’s free tools run the exact checks covered above — no signup, results in seconds.