HTTP Status Codes
What HTTP status codes are, how they work (1xx–5xx), which ones matter most for SEO, and how Google interprets them — the hub for redirects, errors, and crawl behavior.
1 evidence signal on this page
- Related live toolRedirect Chain Mapper
An HTTP status code is the three-digit number a server returns with every response, and for SEO the code matters as much as the content on the page. Five families: 1xx informational, 2xx success (eligible for indexing, but 200 doesn't guarantee it), 3xx redirects (301/308 pass a canonicalization signal, 302/307 don't), 4xx client errors (404/410 drop pages from the index over time; 404s generally don't hurt rankings), and 5xx server errors (which — with 429 — make crawlers slow down, not instantly deindex). The sneaky exception is the soft 404: a 200 status with 'this doesn't exist' content, which Google treats like a 404 and flags in Search Console. This hub maps the families, corrects the common myths, and links down to the deep dives on individual error codes.
TL;DR — An HTTP status codeAn HTTP status code is the three-digit number a server returns with every response to tell a browser or crawler what happened to its request — success, redirect, client error, or server error. For SEO the code matters as much as the content: it tells Google and Bing whether to index a page, follow a redirect, retry later, or drop the URL from the index. is a three-digit number a server sends back with every page it serves, telling the browser or search engine what happened: success, a redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't., a “not foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore.,” or a server error. For SEO the code matters as much as the page itself — it tells Google whether to indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. the page, follow a redirect, come back later, or drop the URL. The famous one,
404, generally doesn’t hurt your rankings.
What an HTTP status code is
An HTTP status code is the server’s standardized response classification for a request. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: RFC 9110: Status codes Search engines interpret these responses in their crawl and indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. pipelines, with behavior documented separately from the HTTP specification. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: HTTP and network errors
Every time your browser (or GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer.) asks a server for a page, the server answers
with a three-digit number before it sends anything else. That number is the HTTP
status code, and it’s the server’s one-line summary of what happened to the
request. You’ve seen 404 when a page doesn’t exist; 200 is the quiet one that
means “here’s your page, everything’s fine.”
The codes come in five groups, sorted by their first digit:
- 1xx — Informational. “Hold on, still working.” You almost never see these.
- 2xx — Success. “Here you go.”
200 OKis the one that matters. - 3xx — Redirection. “It moved — go here instead.” Redirects live here.
- 4xx — Client error. “Your request has a problem.”
404 Not Foundis the star. - 5xx — Server error. “My fault — I couldn’t serve it right now.”
Why the code matters for SEO
Search engines read the status code first, and it decides how they treat the page:
- A 200 is what you want for a page you want in search — it’s the green light.
- A 301 redirect (permanent) tells Google the page has a new home and to move its ranking signals there. A 302 (temporary) says “this is only for now.”
- A 404 or 410 tells Google the page is gone, and it drops out of the index over time.
- A 500 or 503503 Service Unavailable is the HTTP status code a server returns when it's temporarily unable to handle a request — usually because of overload or planned maintenance. It tells crawlers 'come back later' instead of 'this page is gone,' which is why Google recommends it (paired with a Retry-After header) for short, planned downtime. server error tells Google something broke; Google backs off and tries again later rather than deleting your pages on the spot.
The thing most people get wrong
404 errors404 Not Found is the HTTP client-error status code a server returns when it can't find the requested URL — RFC 9110 defines it as no current representation, or unwillingness to disclose one. A \"hard 404\" actually returns the 404 status; a \"soft 404\" returns a success code (like 200) for a page that's really gone. 404s are normal and expected: the fact that some URLs 404 doesn't affect your site's other, successful pages, and Google de-indexes 404'd URLs over time (probably retrying for some period, less and less often). generally don’t hurt your rankings. Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.’s own help
says so plainly. If a page genuinely shouldn’t exist, letting it 404 is fine — you
can safely ignore those errors. The real cost of a 404 is indirect: you lose
whatever traffic and links that page used to have. What you should not do is leave
a broken page live returning 200 OK, because Google will happily index the broken
version as if it were real content.
Want the full family-by-family breakdown, how Google handles redirects and server errors, the soft-404 trap, and how to check any page’s code? Switch to the Advanced tab.
TL;DR — The status code is a first-class SEO signal, independent of the page’s content.
2xxis necessary but not sufficient for indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed..301/308pass a canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. signal;302/307don’t.4xxpages get dropped from the index over time, and404generally doesn’t hurt rankings.5xxand429make crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. slow down, not deindexDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist. — recovery is gradual once2xxreturns. The trap is the soft 404A soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing.: a200status wrapped around “this doesn’t exist” content, which Google detects at the content layer and treats like a real 404. Match the code to reality, use permanent redirectsA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. for permanent moves, and return503— not a broken200— during downtime.
What a status code actually is
The five response classes come from RFC 9110, the HTTP specification — they’re protocol semantics, not direct SEO scores. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: RFC 9110: Status codes Google’s documentation, layered on top of that spec, describes likely processing outcomes without guaranteeing exact crawl or index timing. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: HTTP and network errors
Google’s own documentation is the cleanest definition: “HTTP status codesAn HTTP status code is the three-digit number a server returns with every response to tell a browser or crawler what happened to its request — success, redirect, client error, or server error. For SEO the code matters as much as the content: it tells Google and Bing whether to index a page, follow a redirect, retry later, or drop the URL from the index. are generated by the server that’s hosting the site when it responds to a request made by a client, for example a browser or a crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index..” The key idea for SEO is that the code is a signal in its own right, separate from whatever HTML comes after it. A page can look perfect to a human and still be invisible to search because of the number the server sent first.
The five families, through an SEO lens
1xx — Informational. Provisional “still working” responses (100 Continue,
101 Switching Protocols). Almost never SEO-relevant, with one modern exception:
103 Early Hints, which lets the server tell the browser to start preloading
critical resources before the full response is ready — a small Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. win,
not an indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. lever.
2xx — Success. 200 OK is what an indexable page returns. But a 200 is
necessary, not sufficient: Google can still decline to index a 200 page for
quality, duplication, or other reasons. Edge case worth knowing — a 204 No Content
(a successful response with an empty body) can get treated like a soft 404, because
there’s nothing to index.
3xx — Redirection. This is where the canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. distinction lives, and it’s the single most misunderstood part of the topic. Per Google’s redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. documentation:
301(permanent) and308— Google follows the redirect and “the indexing pipeline uses the redirect as a signal that the redirect target should be canonical.” Ranking signals consolidate onto the target.302(temporary) and307— Google follows the redirect, “but the indexing pipeline doesn’t use the redirect as a signal that the redirect target should be canonical.” A302left in place for a genuinely permanent move is a classic misconfiguration — Google may eventually treat a long-lived 302 like a 301 in practice, but you shouldn’t rely on that.
Google recommends you “use a permanent server-side redirect whenever possible” for
permanent moves, and notes a hard ceiling: “By default, Google’s crawlers follow up
to 10 redirect hops.” Redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. that run longer than that get abandoned. (For
the full tour of the eleven redirect typesA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. and their SEO impact, I’ve written that up
separately at Ahrefs, linked in Resources — this hub is deliberately the map, not
the deep dive.) Also in the 3xx family: 304 Not Modified, a caching signal that
tells a crawler its cached copy is still current — no direct ranking effect, but it
supports efficient crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. on large sites.
4xx — Client error. The page can’t be served because of something on the request
side — it’s missing, forbidden, or blocked to this client. Google is explicit:
“Google doesn’t use the content from URLs that return 4xx status codes,” and
“if a URL was previously used but is now returning 4xx status code, Google systems
will stop using the URL over time.” For 404 specifically, “the indexing pipeline
removes the URL from the index if it was previously indexed. Newly encountered 404
pages aren’t processed.”
Two important nuances here:
404doesn’t hurt rankings. Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. Help states it directly: “In general, 404 errors won’t impact your site’s search performance.” The risk from a 404 is losing the traffic and links the page carried, or — at scale — wasting crawl budget.- Don’t weaponize
401/403against GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer.. Google warns: “Don’t use401and403status codes for limiting the crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor.. The4xxstatus codes, except429, have no effect on crawl rate.” Blocking Googlebot with a401/403doesn’t “slow it down” — it just makes the content invisible.
The individual client-error codes each have their own story — the access-and-auth
codes (401, 403), the “gone” codes (404, 410, and the question of which to
use), rate-limiting (429), and the legal-block code (451) — and each gets a full
treatment in its own article. See “Where to go next” below.
5xx — Server error. The request was fine; the server failed to fulfill it
(500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable,
504 Gateway Timeout). The crucial SEO fact: these don’t instantly deindex.
Google’s doc: 5xx and 429 server errors “prompt Google’s crawlers to temporarily
slow down with crawling,” and “once the server starts responding with a 2xx
status code, Google gradually increases the crawl rate.” The slowdown is measured:
“the decrease in crawl rate is proportionate to the number of individual URLs that
are returning a server error.” Previously indexed URLs are preserved through a blip;
only sustained server errors eventually lead to removal.
Crawl vs. index: the mental model that ties it together
Two different questions live behind these codes:
- Should I crawl this?
5xx/429say “slow down, try later.”301/302say “go here instead.”429and the 5xx family are the only codes that actually throttle crawl rate. - Should I index this, and under which URL?
2xx= eligible.4xx= drop it.301/308= consolidate onto the target.
The connective thread — and the thing that breaks this model — is the soft 404, where the code and the content disagree.
Soft 404s — the sneaky exception
A soft 404 is a page that returns a success code (200) but whose content says the
item doesn’t exist — an empty page, a “sorry, not found” message, or a thin/blank
result. Google detects the problem at the content layer, regardless of the HTTP
code: “if the content suggests an error for Google Search, an empty page or an error
message, Search Console will show a soft 404 error.”
Why care, if the page “loads fine”? Because it wastes crawl budgetThe number of URLs an engine will crawl in a timeframe.. Google’s
large-site guide is blunt: “soft 404 pages will continue to be crawled, and waste
your budget.” They usually come from misconfigured CMSes or JavaScript frameworksJavaScript frameworks — React, Vue, Angular, Next.js, Nuxt, Svelte, Astro — are libraries or meta-frameworks for building web UIs. Their SEO impact depends on rendering mode: SSR and SSG deliver pre-rendered HTML; CSR-only apps require Googlebot to execute JavaScript before it can index content.
that return 200 for routes that don’t exist. The fix is to make the code match
reality — return a real 404 (or 410) so Google can drop the URL cleanly. There’s
a dedicated soft-404 article in this cluster.
404 vs. 410 — does it actually matter?
Barely, for SEO. John Mueller settled this in a 2024 clarification: “The difference
in processing of 404 vs 410 is so minimal that I can’t think of any time I’d prefer
one over the other for SEO purposes,” adding that “Google does not penalize for
404’s (those pages drop out of the index though).” A 410 (Gone) can signal
permanence marginally faster and documents intent more clearly for humans and other
tooling — the historical Matt Cutts framing was that 410 removal ran “a little
faster,” a few days at most. Use 410 when you’re certain the removal is permanent;
404 when the page might return or you’re unsure. Google’s crawl-budget guide is
happy with either: “a 404 status code is a strong signal not to crawl that URL
again.” The dedicated 404-vs-410 article resolves the nuance in full.
Using status codes for downtime and migrations
For planned downtime, maintenance, or a migration window, return 503 Service Unavailable — not a broken 200. John Mueller’s guidance is direct: “if
something goes drastically wrong with your hoster, and you can’t host your website
anymore, please return a ‘503 Service unavailable503 Service Unavailable is the HTTP status code a server returns when it's temporarily unable to handle a request — usually because of overload or planned maintenance. It tells crawlers 'come back later' instead of 'this page is gone,' which is why Google recommends it (paired with a Retry-After header) for short, planned downtime.’ HTTP result code.” His reasoning
covers the two anti-patterns to avoid: “returning an error page with ‘200 OKHTTP 200 OK is the standard 2xx success status code, meaning the server received, understood, and fulfilled the request and is returning the resource. It's the code every page you want indexed should return — but a 200 alone doesn't guarantee Google will index the page.’ will
result in us indexing the change of content like that (and if all of your pages
return the same error page, then we may assume that these URLs are duplicates).
Redirecting to a temporary page will result in that redirect being used for
indexing.” The implementation trick when the origin is fully down: point DNS at a
temporary server that serves 503s.
Keep it short, though. Gary Illyes: “Serving a 503 status code for an extended
period of time will cause a decrease in crawl rate,” but “10-15 minutes every now
and then is not ‘extended’ by any means, so you should be fine.” Rule of thumb:
503 is for hours, not weeks — leave it up for weeks and Google starts treating the
pages as actually gone. The 503 article covers the migration pattern in depth.
How to check a page’s status code
- Browser DevTools — open the Network tab, reload, click the document request, read the Status column.
- Command line —
curl -I https://example.com/pagefor the headers of a single request, orcurl -IL https://example.com/pageto follow the whole redirect chainA → B → C instead of A → C. Each hop loses link equity and adds latency.. - Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. — the URL Inspection toolA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. reports the crawled status.
- Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. — its URL Inspection tool does the same for BingbotBingbot is Microsoft Bing's primary web crawler — the bot that discovers, fetches, and renders pages to build the Bing index. That index also powers Yahoo, DuckDuckGo, Ecosia, and Microsoft Copilot, so Bingbot's reach is far wider than Bing's own search-market share..
- Crawlers — Screaming Frog SEO Spider and Ahrefs Site Audit crawl the whole site and surface status codes, redirect chains, and 4xx/5xx URLs in bulk; the free Ahrefs SEO Toolbar shows the code for the page you’re on.
One genuine gotcha the competitor guides skip: a single check only tells you about that one request. Status can vary by request method, user agentA user agent is the HTTP request header a client (browser, crawler, or bot) sends to identify itself. For crawlers, a short user-agent token — a substring of that string — is what robots.txt rules actually target., authentication, region, and time, plus whatever cache or CDN sits in between — so a clean result from your desk doesn’t guarantee what Googlebot saw. A compact diagnostic workflow:
- Method — a
HEADrequest should carry the same headers asGET, but servers are allowed to omit fields that require generating content, so aHEADcheck isn’t proof of what a realGETreturns. Re-test withGETif the two disagree. - User agent — bot-detection, geoGenerative Engine Optimization — visibility inside AI answer engines.-blocks, or cloaking can serve Googlebot a
200while a browser gets a403(or vice versa). - Region — if you suspect geo-blocking or a region-specific CDN rule, retest from more than one location or IP.
- Cache — rule out a stale cached response (browser cache, CDN edge cache) before concluding the origin itself is misbehaving.
- Chain — record the full redirect chain, not just the final code; a mid-chain hop can be the actual problem.
- Logs — when a code doesn’t match what you expect, check what Googlebot actually saw. Your server logs are the ground truth a single browser or checker result can’t give you.
A friendly-looking page can still send any status. This sample returns 503, which tells crawlers the server is temporarily unavailable.
Check the actual response with my free HTTP Status Checker Free
- Test the URL rather than inferring status from what renders in a browser.
- Read the exact code, final URL, and status family before choosing a remedy.
- Rerun after the change and confirm the intended code is stable.
The result shows one tested URL returning HTTP 503 and labels it a 5xx server error. The filter counts show one 5xx response and no 2xx, 3xx, or 4xx responses.
A note on Bing
Bing’s public guidance on status codes is thinner than Google’s — there’s no single
canonical “how status codes affect crawling” doc as detailed as Google’s, and no Bing
rep quote on the topic surfaced when I looked. Directionally it’s the same advice:
return accurate codes, fix persistent 4xx/5xx, and use permanent redirects for
permanent moves. I’d rather say that plainly than manufacture a Bing quote that
doesn’t exist.
Where to go next: the HTTP error codes cluster
This hub is the overview. The HTTP Error CodesThe 4xx (client error) and 5xx (server error) HTTP status codes a server returns instead of a successful 2xx — and how Google treats each class very differently. sub-hub goes deep on the codes you actually end up troubleshooting, each in its own article:
401Unauthorized and403Forbidden — the access-and-auth codes, and why you shouldn’t use them to throttle crawling.404Not Found,410Gone, and404vs410— the “this page is gone” family and which code to reach for.429Too Many Requests — rate-limiting, and how it (unlike other 4xx codes) affects crawl rate.451Unavailable For Legal Reasons — the legal/regulatory block, distinct from a403.500Internal Server Error,502Bad Gateway,503Service Unavailable, and504Gateway Timeout — the server-error family, crawl slowdown, and the503-for-maintenance pattern.- Soft 404s — the
200-that’s-really-an-error, and how to fix it.
Each of those is nested under this hub and listed in the sidebar. For how redirects
consolidate ranking signals, see CanonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it.;
for how crawlers throttle on 5xx/429, see CrawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor..
AI summary
A condensed take on the Advanced version:
- The code is an SEO signal, separate from content. A perfect-looking page can be invisible to search because of the number the server sends first.
- Five families: 1xx informational (
103 Early Hintshelps Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data.); 2xx success (200is necessary but not sufficient for indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.); 3xx redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.; 4xx client errors; 5xx server errors. - Redirects:
301/308are permanent and pass a canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. signal;302/307are followed but don’t. Google follows up to 10 redirect hops. - 4xx: Google stops using
4xxcontent and drops404URLs from the index over time.404s generally don’t hurt rankings (Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. Help). Don’t use401/403to throttle GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. — only429and 5xx affect crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor.. - 404 vs 410: the processing difference is “so minimal” (Mueller) it rarely
matters;
410for certain-permanent removals,404otherwise. - 5xx / 429429 Too Many Requests is an HTTP client-error status code that means a client sent too many requests in a given time window — a mechanism called rate limiting. Unlike other 4xx codes, Google treats 429 as a server-overload signal and slows crawling instead of removing content.: crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. temporarily slow down, not deindex; crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor. recovers
gradually once
2xxresumes. Only sustained errors cause removal. - Soft 404A soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing.: a
200status with “doesn’t exist” content — Google detects it at the content layer, treats it like a404, and it wastes crawl budgetThe number of URLs an engine will crawl in a timeframe.. - Downtime: return
503(hours, not weeks), never a broken200— Google would index the broken content. - Checking codes: DevTools Network tab,
curl -I/curl -IL, GSC/Bing URL Inspection, Screaming Frog / Ahrefs Site Audit. A single check only proves that one request — method, user-agent, region, and caching can each change the result — so confirm the redirect chainA → B → C instead of A → C. Each hop loses link equity and adds latency. and check server logs for what GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. actually saw.
Official documentation
Primary-source documentation from the protocol spec and the search engines.
The underlying spec
- RFC 9110 — HTTP Semantics, §15 Status Codes — the actual protocol definition of the five status-code classes. Worth knowing: RFC 9110 defines request/response semantics, not SEO outcomes — everything below is Google’s own documentation of how it interprets those codes for Search.
- HTTP status codes, network and DNS errors, and Google Search — the canonical doc: what codes are, 4xx removal behavior, soft 404sA soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing., and 5xx/429429 Too Many Requests is an HTTP client-error status code that means a client sent too many requests in a given time window — a mechanism called rate limiting. Unlike other 4xx codes, Google treats 429 as a server-overload signal and slows crawling instead of removing content. crawl slowdown.
- How Google Search handles redirects — 301/302/307/308, the canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. distinction, and the 10-hop follow limit.
- Optimize your crawl budget — 404/410 as a “strong signal,” and soft 404sA soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing. wasting budget.
- Fix Search Console errors (404 / crawl errors) — the source of “404 errors404 Not Found is the HTTP client-error status code a server returns when it can't find the requested URL — RFC 9110 defines it as no current representation, or unwillingness to disclose one. A \"hard 404\" actually returns the 404 status; a \"soft 404\" returns a success code (like 200) for a page that's really gone. 404s are normal and expected: the fact that some URLs 404 doesn't affect your site's other, successful pages, and Google de-indexes 404'd URLs over time (probably retrying for some period, less and less often). won’t impact your site’s search performance.”
- John Mueller — “503s” — the definitive first-party statement on returning 503503 Service Unavailable is the HTTP status code a server returns when it's temporarily unable to handle a request — usually because of overload or planned maintenance. It tells crawlers 'come back later' instead of 'this page is gone,' which is why Google recommends it (paired with a Retry-After header) for short, planned downtime. during downtime and the 200/redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. anti-patterns.
Bing / Microsoft
- Bing Webmaster Tools — URL Inspection — check indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. status, crawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index., and HTTP response codes for a specific URL.
- Bing Webmaster Tools — Crawl error alerts — the Crawl report listing URLs with crawl errors and their status codes.
Quotes from the source
On-the-record statements from Google and its representatives. Each link is a deep link that jumps to the quoted passage on the source page.
Google — what status codes are, and how 4xx / 404 behave
- “HTTP status codesAn HTTP status code is the three-digit number a server returns with every response to tell a browser or crawler what happened to its request — success, redirect, client error, or server error. For SEO the code matters as much as the content: it tells Google and Bing whether to index a page, follow a redirect, retry later, or drop the URL from the index. are generated by the server that’s hosting the site when it responds to a request made by a client, for example a browser or a crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index..” — Google Search Central docs. Jump to quote
- “Google doesn’t use the content from URLs that return
4xxstatus codes.” Jump to quote - “In general, 404 errors404 Not Found is the HTTP client-error status code a server returns when it can't find the requested URL — RFC 9110 defines it as no current representation, or unwillingness to disclose one. A \"hard 404\" actually returns the 404 status; a \"soft 404\" returns a success code (like 200) for a page that's really gone. 404s are normal and expected: the fact that some URLs 404 doesn't affect your site's other, successful pages, and Google de-indexes 404'd URLs over time (probably retrying for some period, less and less often). won’t impact your site’s search performance.” — Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. Help. Read the doc
Google — soft 404sA soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing. and crawl budgetThe number of URLs an engine will crawl in a timeframe.
- “If the content suggests an error for Google Search, an empty page or an error message, Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. will show a
soft 404error.” Jump to quote - “soft 404A soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing. pages will continue to be crawled, and waste your budget.” Jump to quote
- “a
404status code is a strong signal not to crawl that URL again.” Jump to quote
Google — 5xx / 429429 Too Many Requests is an HTTP client-error status code that means a client sent too many requests in a given time window — a mechanism called rate limiting. Unlike other 4xx codes, Google treats 429 as a server-overload signal and slows crawling instead of removing content. crawl slowdown, and 401/403 misuse
5xxand429server errors “prompt Google’s crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. to temporarily slow down with crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor..” Jump to quote- “Once the server starts responding with a
2xxstatus code, Google gradually increases the crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor..” Jump to quote - “Don’t use
401and403status codes for limiting the crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor.. The4xxstatus codes, except429, have no effect on crawl rate.” Jump to quote
Google — redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. and canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it.
- “GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. follows the redirect, and the indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. pipeline uses the redirect as a signal that the redirect target should be canonical.” (301 / 308) Jump to quote
- “Googlebot follows the redirect, but the indexing pipeline doesn’t use the redirect as a signal that the redirect target should be canonical.” (302 / 307) Jump to quote
- “By default, Google’s crawlers follow up to 10 redirect hops.” Jump to quote
John Mueller, Google — 503 for downtime
- “if something goes drastically wrong with your hoster, and you can’t host your website anymore, please return a ‘503 Service unavailable503 Service Unavailable is the HTTP status code a server returns when it's temporarily unable to handle a request — usually because of overload or planned maintenance. It tells crawlers 'come back later' instead of 'this page is gone,' which is why Google recommends it (paired with a Retry-After header) for short, planned downtime.’ HTTP result code.” Read the post
- “Returning an error page with ‘200 OKHTTP 200 OK is the standard 2xx success status code, meaning the server received, understood, and fulfilled the request and is returning the resource. It's the code every page you want indexed should return — but a 200 alone doesn't guarantee Google will index the page.’ will result in us indexing the change of content like that (and if all of your pages return the same error page, then we may assume that these URLs are duplicates).” Read the post
John Mueller, Google — 404 vs 410
- “The difference in processing of 404 vs 410 is so minimal that I can’t think of any time I’d prefer one over the other for SEO purposes.”
- “Google does not penalize for 404’s (those pages drop out of the index though).” Relayed via Search Engine Journal’s April 2024 write-up of a Reddit r/SEO reply; corroborated by Search Engine Roundtable. Coverage
Gary Illyes, Google — 503 and crawl rate
- “Serving a 503 status code for an extended period of time will cause a decrease in crawl rate.”
- “Fortunately for you, 10-15 minutes every now and then is not ‘extended’ by any means, so you should be fine.” Relayed via Search Engine Journal’s coverage of a Google SEO Office Hours session, April 2024. Coverage
Which status code should I return?
Work top-down — the first match wins.
The page moved to a new URL.
- Permanently? →
301(or308). Google consolidates ranking signals onto the target. - Only for now (A/B test, geoGenerative Engine Optimization (GEO) is the practice of optimizing content and brand presence so AI-powered search engines and assistants — Google AI Overviews, ChatGPT, Perplexity — cite, recommend, or mention you when generating answers. Google's position is that it's still SEO.-swap, short campaign)? →
302(or307). No canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. signal — don’t leave it in place for a permanent move.
The page is gone and isn’t coming back.
- Certain it’s permanent? →
410— signals permanence a touch faster. - Might return, or you’re not sure? →
404— Google drops it from the indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. over time either way. Either is fine for SEO; the difference is “minimal.” - Whatever you do, don’t return
200with a “not foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore.” message — that’s a soft 404, and Google will keep crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. it and waste budget.
The page requires login or is access-restricted.
- →
401(needs auth) or403(forbidden). Do not use these to slow GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. down — they don’t throttle crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor., they just hide the content.
Something’s temporarily broken, or you’re doing maintenance/a migration.
- Planned downtime, hours not weeks? →
503, ideally with aRetry-Afterheader. Google backs off and comes back; it won’t index the maintenance page. - Server genuinely erroring? →
500/502/504— Google slows crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. and preserves indexed URLs through a blip. Fix it before it becomes sustained. - Rate-limiting a flood of requests? →
429— the one 4xx code that does slow Google’s crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor..
The content blocked for a legal reason (court order, GDPR, licensing,
country-level ban) → 451, which signals a legal block, distinct from a plain
403.
Everything’s fine and you want the page indexed → 200. Remember it’s
necessary but not sufficient — Google can still choose not to index it.
Each of these codes has its own deep-dive article in the HTTP Error CodesThe 4xx (client error) and 5xx (server error) HTTP status codes a server returns instead of a successful 2xx — and how Google treats each class very differently. cluster.
HTTP status codes for SEO — full reference
The five families at a glance
| Family | Meaning | SEO relevance |
|---|---|---|
1xx Informational | ”Hold on, still working” | Minimal; 103 Early Hints can help Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. |
2xx Success | ”Here you go” | 200 = eligible for indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. (necessary, not sufficient) |
3xx Redirection | ”It moved” | 301/308 consolidate; 302/307 don’t |
4xx Client error | ”Your request is the problem” | Google drops content over time; only 429 affects crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor. |
5xx Server error | ”My fault, try later” | Temporary crawl slowdown, not instant deindexingDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist. |
The SEO-relevant codes, one by one
| Code | Name | SEO meaning |
|---|---|---|
200 | OK | Fetched fine; eligible for indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. (not guaranteed) |
301 | Moved Permanently | Permanent redirectA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank.; passes canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. signal |
302 | FoundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. | Temporary redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.; no canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. signal |
304 | Not Modified | Cached copy still valid; supports efficient crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. |
307 | Temporary Redirect | Like 302; no canonicalization signal |
308 | Permanent Redirect | Like 301; passes canonicalization signal |
401 | Unauthorized | Needs auth; do not use to throttle crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. |
403 | Forbidden | Access denied; do not use to throttle crawling |
404 | Not Found | Gone; drops from index over time; doesn’t hurt rankings |
410 | Gone | Like 404; permanence signalled a touch faster |
429 | Too Many Requests | Rate-limit; the one 4xx that slows Google’s crawl |
451 | Unavailable For Legal Reasons | Legal/regulatory block; distinct from 403 |
500 | Internal Server Error | Server failed; crawl slows, indexed URLs preserved |
502 | Bad Gateway | Upstream error; treated like other 5xx |
503 | Service Unavailable | Use for planned downtime (hours, not weeks) |
504 | Gateway Timeout | Upstream timeout; treated like other 5xx |
Three groupings that matter
- Strong signals Google acts on:
301/308(canonical target),404/410(remove from index). - Mostly UX / access — no crawl-rate effect:
401,403,451. - Operational / temporary — crawl slowdown:
429,500,502,503,504.
Fast facts
200alone doesn’t guarantee indexing.- Only
429and5xxcodes throttle Google’s crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor.. - Google follows up to 10 redirect hops; longer chains get abandoned.
- Soft 404A soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing. =
200status + “doesn’t exist” content → treated like a404, wastes crawl budgetThe number of URLs an engine will crawl in a timeframe.. 503for downtime: hours fine, weeks not — Illyes says “10-15 minutes every now and then” is no problem.- Check with: DevTools Network tab,
curl -I/curl -IL, GSC/Bing URL Inspection, Screaming Frog, Ahrefs Site Audit/Toolbar.
Resources worth your time
My writing
- HTTP Status Codes & Their SEO Impact — my full range-by-range reference at Ahrefs (
1xx–5xxplus nonstandard codes), the piece this hub builds on. - 11 Types Of Redirects & Their SEO Impact — the companion deep dive on the
3xxfamily: which redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. to use and why. - The Beginner’s Guide to Technical SEO — where status codes fit in the bigger technical picture.
From around the industry
- HTTP status codes, network and DNS errors, and Google Search (Google) — the canonical doc behind most of this hub’s claims.
- How Google Search handles redirects (Google) — the 301/302/307/308 canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. distinction and the 10-hop limit.
- “503s” (John Mueller) — the first-party statement on returning
503during downtime and why a broken200is worse. - Google’s John Mueller Clarifies 404/410 Confusion For SEO (Search Engine Journal) — the “difference is so minimal” quote.
- Google On The SEO Impact Of 503 Status Codes (Search Engine Journal) — Gary Illyes’ “10-15 minutes” guidance.
- The ultimate guide to HTTP status codes for SEO (Search Engine Land) — a thorough per-code reference.
- HTTP Status Codes (Screaming Frog) — practical detection and bulk-export workflows.
- How to check pages for their HTTP status codes (Ahrefs Help) — checking codes with the SEO Toolbar and Site Audit.
Where these quotes come from
The full source list behind the Quotes lens, so you can verify every line yourself:
- HTTP status codes, network and DNS errors, and Google Search — Google Search Central. The “what status codes are,” 4xx, soft-404, and 5xx/429429 Too Many Requests is an HTTP client-error status code that means a client sent too many requests in a given time window — a mechanism called rate limiting. Unlike other 4xx codes, Google treats 429 as a server-overload signal and slows crawling instead of removing content. quotes.
- How Google Search handles redirects — Google Search Central. The 301/308 vs 302/307 canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. quotes and the 10-hop limit.
- Optimize your crawl budget — Google Search Central. The “strong signal not to crawl” and “soft 404 pages404 Not Found is the HTTP client-error status code a server returns when it can't find the requested URL — RFC 9110 defines it as no current representation, or unwillingness to disclose one. A \"hard 404\" actually returns the 404 status; a \"soft 404\" returns a success code (like 200) for a page that's really gone. 404s are normal and expected: the fact that some URLs 404 doesn't affect your site's other, successful pages, and Google de-indexes 404'd URLs over time (probably retrying for some period, less and less often).… waste your budget” quotes.
- Fix Search Console errors — Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. Help. The “404 errors won’t impact your site’s search performance” line.
- “503s” — John Mueller’s personal site. The 503503 Service Unavailable is the HTTP status code a server returns when it's temporarily unable to handle a request — usually because of overload or planned maintenance. It tells crawlers 'come back later' instead of 'this page is gone,' which is why Google recommends it (paired with a Retry-After header) for short, planned downtime.-for-downtime directive and the 200/redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. anti-patterns.
- Google’s John Mueller Clarifies 404/410 Confusion For SEO — Search Engine Journal (relayed Reddit reply).
- Google On The SEO Impact Of 503 Status Codes — Search Engine Journal (relayed Office Hours).
Crawl first, index second
Use this two-stage model whenever a status code creates an SEO question.
Stage 1: can the crawler retrieve a usable response?
2xxsays the request succeeded, so the content can move forward for processing.3xxsends the crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. to another URL; permanent and temporary codes provide different canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. signals.- Most
4xxresponses say the requested content does not exist or cannot be used. 5xxand429say the server is failing or overloaded, so crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. may reduce request rate.
If retrieval fails, content quality and on-page optimization cannot rescue that request. Fix the transport or intended URL state first.
Stage 2: should the retrieved content be indexed, and under which URL?
A 200 only clears the first gate. Google can still choose not to indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. thin,
duplicate, blocked, or error-like content; an error page that returns 200 can become a
soft 404A soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing.. A redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. can be followed while its target still fails indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.. A
successful response is eligibility, not a ranking or indexing guarantee.
The practical diagnostic
- Record the actual status and every redirect hop.
- Decide whether that response matches the URL’s intended state.
- If it reaches a usable 2xx page, inspect indexability and canonical signals.
- If it returns 4xx, decide whether disappearance is intentional.
- If it returns 5xx or 429429 Too Many Requests is an HTTP client-error status code that means a client sent too many requests in a given time window — a mechanism called rate limiting. Unlike other 4xx codes, Google treats 429 as a server-overload signal and slows crawling instead of removing content., investigate reliability and scope before interpreting search performance.
Check the first response
Run this in a macOS/Linux shell to print headers for the requested URL without following redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.:
curl -sS -D - -o /dev/null https://www.example.com/pageTo print only the status code:
curl -sS -o /dev/null -w '%{http_code}\n' https://www.example.com/pagePowerShell equivalent (PowerShell 7+):
$response = Invoke-WebRequest -Uri 'https://www.example.com/page' -Method Head -SkipHttpErrorCheck
$response.StatusCode
$response.HeadersIf the server treats HEAD differently, make a normal GET request before drawing a
conclusion.
Follow and display the redirect path
-L follows redirects, while -v shows each request and response. Run this in a
terminal and inspect the lines beginning with < HTTP and < location:.
curl -sS -L -o /dev/null -v https://www.example.com/old-pageUse the Redirect Chain Mapper when you need a cleaner single-URL or batch view rather than terminal output.
Tools for reading status behavior
- Bulk HTTP Status Code Checker — check up to 500 URLs, see each redirect chainA → B → C instead of A → C. Each hop loses link equity and adds latency. and final destination, filter SEO problems, and export the result. Use it when the question is “which URLs have the wrong code?”
- HTTP Header Checker — inspect complete response headers across redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. hops, including cachingCaching stores a copy of a page or resource — in a browser, a CDN edge node, or a search crawler's own cache — so it can be served again without regenerating or re-downloading it. It isn't a direct ranking factor, but it feeds page speed and crawl efficiency., CDN, compressionCompression (HTTP content encoding) shrinks text-based responses — HTML, CSS, JS, JSON, SVG, XML sitemaps — before they're sent over the network, using an algorithm like Gzip, Brotli, or Zstd, so the browser or crawler downloads fewer bytes. It's not a ranking factor, but it speeds up page loads and helps pages stay under crawler fetch limits., and selected security signals. Use it when the status alone is not enough.
- Redirect Checker — quickly inspect the final status, destination, and hop sequence for one URL or a small batch.
- Website Down Checker — test current reachability and timing from an external vantage point when a 5xx or timeout may be intermittent.
- Browser DevTools → Network — reload the page, select the document request, and inspect Status Code and Response Headers. This is useful for interactive debugging, but do not confuse a client-rendered error message with the document’s HTTP status.
Test yourself: HTTP Status Codes
Five quick questions on how status codes shape SEO. Pick an answer for each, then check.
HTTP Status Code
An HTTP status code is the three-digit number a server returns with every response to tell a browser or crawler what happened to its request — success, redirect, client error, or server error. For SEO the code matters as much as the content: it tells Google and Bing whether to index a page, follow a redirect, retry later, or drop the URL from the index.
Related: Crawling, Canonicalization, Indexing
HTTP Status Code
An HTTP status code is a three-digit number included in a server’s response to tell the client — a browser or a crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. — what happened to its request. As Google’s documentation puts it, these codes “are generated by the server that’s hosting the site when it responds to a request made by a client, for example a browser or a crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index..”
The codes fall into five families by their leading digit: 1xx informational (“hold on”), 2xx success (“here you go”), 3xx redirection (“it moved”), 4xx client error (“your fault — the page doesn’t exist or isn’t accessible”), and 5xx server error (“my fault — I couldn’t serve the request”).
For SEO, the status code is a signal in its own right, independent of the page’s visible content:
- A 2xx (usually 200) is required for a page to be eligible for indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. — though a 200 alone doesn’t guarantee indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed..
- 301 and 308 are permanent redirectsA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. Google treats as a canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. signal; 302 and 307 are followed but do not signal canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it..
- 404 and 410 remove content from the index over time; Google says 404s generally don’t hurt search performance.
- 429429 Too Many Requests is an HTTP client-error status code that means a client sent too many requests in a given time window — a mechanism called rate limiting. Unlike other 4xx codes, Google treats 429 as a server-overload signal and slows crawling instead of removing content. and 5xx errors make crawlers temporarily slow down rather than instantly deindexDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist., with crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor. recovering once 2xx responses resume.
- A soft 404A soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing. is the mismatch case: the server returns 200 but the content says the page doesn’t exist, so Google treats it like a 404 anyway and flags it in Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results..
You can check a page’s status code in your browser’s DevTools Network tab, with curl -I from the command line, in Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.’s or Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility.’ URL Inspection toolsA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version., or with crawlers like Screaming Frog and Ahrefs Site Audit.
Related: Crawling, Canonicalization, Indexing
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Revision history
Compare the published article with an archived editorial snapshot. Added and removed words are shown only after you open a comparison.
Updated Jul 18, 2026.
Editorial summary and recorded change details.Summary
Added a compact method/user-agent/region/cache/chain/log diagnostic workflow for status-code checking, and cited the underlying RFC 9110 spec alongside Google's own documentation.
Change details
-
Expanded the 'How to check a page's status code' section (Advanced) with a checklist covering request method, user agent, region, cache, redirect chain, and server logs, since a single check only proves one request.
-
Added RFC 9110 (HTTP Semantics, §15 Status Codes) to the Official Docs lens and named it explicitly as the protocol source behind the five status-code families.