SEO glossary
What is an HTTP Status Code?
Learn what HTTP status codes are—how 2xx, 3xx, 4xx, and 5xx responses affect crawling, indexing, and user experience—and which codes SEO teams must monitor.
Definition
An HTTP status code is a three-digit numeric response from a web server indicating the outcome of a request—such as 200 OK, 301 Moved Permanently, 404 Not Found, or 503 Service Unavailable—guiding browsers and search crawlers on how to handle each URL.
HTTP status code: the server's answer to every request
An HTTP status code is how a web server reports what happened when a browser or crawler requested a URL. The first digit classifies the outcome:
- 1xx — informational (rare in SEO work)
- 2xx — success
- 3xx — redirection
- 4xx — client error
- 5xx — server error
Search engines use status codes to decide whether to index a URL, follow redirects, retry later, or drop a page from results. Technical SEO programs monitor status distributions at template scale—not only on the homepage.
Status codes SEO teams see most
| Code | Name | SEO meaning |
|---|---|---|
| 200 | OK | Default indexable success |
| 301 | Moved Permanently | Permanent redirect; consolidate signals |
| 302 | Found | Temporary redirect; target may not consolidate fully |
| 304 | Not Modified | Cached validation; not an error |
| 404 | Not Found | URL missing; deindex over time |
| 410 | Gone | Permanent removal signal |
| 403 | Forbidden | Access denied; usually not indexed |
| 401 | Unauthorized | Login required; not indexed publicly |
| 429 | Too Many Requests | Rate limited; crawl may slow |
| 500 | Internal Server Error | Server failure; hurts crawl trust |
| 503 | Service Unavailable | Temporary outage; may retry if Retry-After set |
| soft 404 | (behavioral) | 200 with not-found content |
2xx success and indexing
200 OK means the server returned a representation. Indexation still requires no noindex directives, quality thresholds, and crawlability.
Watch for:
- 200 on empty product pages (soft 404)
- 200 on infinite duplicate parameter URLs
- 200 with wrong language content
Example: sold-out product returns 200
Page shows "Product unavailable" with no alternatives—thin 200. Better: 301 to category, 404 if discontinued, or robust content explaining alternatives.
3xx redirects and signal flow
Redirects tell clients to fetch another URL.
301 / 308 — permanent
Use for:
- HTTP → HTTPS moves
- www consolidation
- Slug changes in URL structure
- Domain migrations
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-path/
Chains should be minimal: A → B, not A → B → C → D.
302 / 307 — temporary
Use for:
- Geo routing experiments
- A/B tests with short lifetimes
- Maintenance toggles
Permanent site moves should not stay on 302 for months.
Example: redirect chain waste
Old marketing links hit /promo → /2024/promo → /campaigns/promo → final 200. Consolidate to one 301 hop from /promo to final URL.
4xx client errors
404 Not Found
Broken internal linking, expired campaigns, removed products. Fix links or redirect to relevant replacements. Mass 404s after migrations signal poor site architecture planning.
410 Gone
Explicit retirement—useful for legal removals and discontinued content when deindex speed matters.
403 / 401
Public SEO pages must not require authentication. Accidental 403 to Googlebot from WAF rules blocks indexation.
Example: WAF blocks crawler
Security appliance returns 403 to Googlebot IP ranges while users see 200. Log analysis reveals bot-specific blocks—allowlist verified crawlers.
5xx server errors
Persistent 500 or 502/504 errors reduce crawl rate and trust. Google may temporarily drop URLs from index if errors continue.
503 with Retry-After
Planned maintenance can return 503 telling crawlers to retry later—prefer over fake 200 maintenance pages for brief windows.
Example: deploy regression
Release introduces PHP fatal error on /category/ templates—thousands of 500s. Organic traffic collapses within days. Roll back; fix forward with status monitoring alerts.
HTTP status codes and crawl budget
Bots retry 5xx and may deprioritize unstable hosts. Millions of 404s on discovered URLs waste crawl budget—clean sitemaps and internal linking after removals.
Status codes vs robots directives
| Mechanism | Layer |
|---|---|
| HTTP status | Request outcome (exists? moved? error?) |
| robots.txt | Whether to request path |
| robots meta / X-Robots-Tag | Whether to index after fetch |
A 404 removes the URL; noindex on 200 keeps fetch but drops index. Do not return 404 on pages you want indexed.
Measuring HTTP status codes
Sources:
- Server logs — bot vs human status histograms
- Crawl tools — per-template breakdowns
- Search Console — Page indexing, crawl stats
- Synthetic monitoring — uptime on critical URLs
Segment by user-agent: smartphone Googlebot vs desktop vs AdsBot.
HTTP status code checklist for migrations
- Map old URLs to 301 targets (one hop)
- Eliminate 302 placeholders on permanent moves
- Remove migrated URLs from XML sitemap
- Update canonical URL and internal links to 200 destinations
- Crawl legacy URL list; zero unexpected 404/5xx on top traffic paths
- Monitor GSC for four weeks post-cutover
Common HTTP status mistakes
| Mistake | Impact |
|---|---|
| 302 for permanent migration | Delayed consolidation |
| Redirect loops | Fetch failure |
| 404 with soft content marketing | Confusing UX |
| 200 for missing entities | Soft 404 index noise |
| CDN error pages returning 200 | Hidden outages |
| Mixed 404/200 on slash variants | Duplicate or dead ends |
Example: trailing slash split
/page returns 200, /page/ returns 404. Pick policy; 301 unify.
HTTP status code myths
- Myth: "404 passes link equity like 301." Reality: 404 drops equity; use 301 to relevant targets when moving.
- Myth: "All 3xx are equal." Reality: 301 vs 302 semantics differ for permanence.
- Myth: "Google ignores 5xx quickly." Reality: sustained errors harm crawl frequency and index stability.
How Crawlox helps with HTTP status codes
Crawlox reports status code distributions per template, maps redirect chains to final destinations, detects soft 404 patterns where 200 responses lack substantive content, and correlates bot-only 403/5xx spikes with WAF or deploy issues. Fix crawl errors and migration gaps with prioritized URL lists—before broken HTTP status code responses silently drain indexation across your catalog.
Related terms
Frequently asked questions
Which HTTP status codes can be indexed?
Google primarily indexes URLs that return 200 OK with indexable content. 301/302 redirects pass signals to targets but are not indexed themselves. 404 and 410 are dropped over time. 5xx errors block reliable indexing until resolved.
Should I use 301 or 302 for permanent moves?
Use 301 (or 308) for permanent URL changes so crawlers consolidate to the new location. 302/307 are for temporary redirects. Misusing 302 for permanent migrations can delay signal consolidation.
What is the difference between 404 and 410?
404 means not found—may be temporary. 410 Gone explicitly signals permanent removal. Both lead to deindexation; 410 may speed removal when intentional.
Do 5xx errors hurt SEO?
Yes. Server errors prevent reliable crawl and can reduce crawl rate site-wide if persistent. Fix origin health quickly; use 503 with Retry-After only for planned maintenance.
What is a soft 404?
A URL returning 200 OK but displaying empty or 'not found' content. Google may treat it like a 404 for indexing. Fix content or return proper 404/410 status codes.
References
Explore authoritative guidance and frameworks related to http status code.
Explore every glossary definition
Return to the glossary to search by term, alias, starting letter, or category.