Search Atlas runs your marketing across every channel and fixes what breaks while you sleep
Manick BhanManick BhanFounder CEO/CTO

What Are HTTP Status Codes? A Complete Guide for SEO

Published on: October 25, 2022Last updated: July 16, 2026
Try Search Atlas

An HTTP status code is the three-digit number a web server sends back with every response, and it tells the browser or crawler whether the request worked, got redirected, or failed. Type a URL into a browser and hit enter, and the browser sends a request to that page's server. The server sends back the page itself, plus a status code riding along with it. A 200 means it worked. A 404 means the page doesn't exist. A 301 means it moved somewhere else for good. The visitor usually never sees the number, but Googlebot reads every one of them, and what it reads shapes whether a page gets crawled, indexed, and ranked.

This guide covers what each category of status code means, which ones actually move the needle for SEO, and how to check what your own site is returning right now.

What Is an HTTP Status Code?

An HTTP status code is a three-digit response the server sends alongside the requested page, confirming what happened to that request. HTTP stands for Hypertext Transfer Protocol, the language browsers and servers use to talk to each other. Every time a browser, an app, or a crawler requests a URL, the server that owns that URL answers with both the content, if there is any, and a status code describing the outcome.

The current specification for what these codes mean is RFC 9110, published by the IETF in 2022. It replaced the older RFC 7231, which had been the reference since 2014, and it consolidates what used to be spread across several separate documents into one definition of HTTP semantics. The IANA HTTP Status Code Registry is the authoritative, continuously updated list of every code officially assigned, and it's worth bookmarking over a static blog list, since new codes do get added. 103 Early Hints and 425 Too Early are both additions that a lot of older reference pages still leave out.

Status codes matter for SEO because Google's crawlers depend on them to decide what to do next with a URL. A clean 200 tells Googlebot the page is healthy and worth indexing. A 404 or a 500 tells it something is broken, and repeated errors on a domain can quietly reduce how much of the site Google bothers to crawl at all.

The 5 Categories of HTTP Status Codes

Every status code falls into one of five categories, identified by its first digit. The number itself tells you the category before you even look up what the specific code means.

CategoryRangeWhat It Means
1xx Informational100-199The request was received and processing is continuing
2xx Success200-299The request was received, understood, and completed
3xx Redirection300-399Further action is needed to complete the request, usually because the resource moved
4xx Client Error400-499The request has a problem the client caused, like requesting a page that doesn't exist
5xx Server Error500-599The server failed to fulfill a request that was otherwise valid

A quick way to remember the split, 1xx and 2xx are neutral to good, 3xx tells you to look somewhere else, and 4xx and 5xx both signal failure, just from opposite sides of the connection. A 4xx means the client, meaning the browser or crawler, asked for something that doesn't work. A 5xx means the server itself broke down while trying to answer.

Full Reference Table of Common HTTP Status Codes

Most sites only ever generate a handful of these codes in practice, but the registry is long, and the newer or rarer entries are exactly the ones a dated reference list tends to miss. The table below covers the codes worth knowing, including a few that only became relevant after HTTP/2, modern CDNs, and stricter security practices made them common.

color coded list of the different types of http status codes

1xx Informational

CodeNameMeaning
100ContinueThe initial part of the request was received, the client should keep sending the rest
101Switching ProtocolsThe server agrees to switch to a different protocol the client requested
103Early HintsLets the browser start preloading resources like CSS while the server is still preparing the full response

2xx Success

CodeNameMeaning
200OKThe request succeeded and the server returned the requested content
201CreatedThe request succeeded and a new resource was created as a result
204No ContentThe request succeeded but there's nothing to send back
206Partial ContentThe server is sending only part of the resource, common for video streaming and resumable downloads

3xx Redirection

CodeNameMeaning
301Moved PermanentlyThe resource now lives at a new URL, and it's staying there
302FoundThe resource is temporarily at a different URL
304Not ModifiedTells the browser its cached copy is still current, so it doesn't need to download the page again
307Temporary RedirectWorks like a 302, but guarantees the request method won't change, so a POST stays a POST
308Permanent RedirectWorks like a 301, with that same guarantee about preserving the request method

4xx Client Error

CodeNameMeaning
400Bad RequestThe server can't understand or process the request as sent
401UnauthorizedThe client needs to authenticate before it can access the resource
403ForbiddenThe server understood the request but refuses to authorize it
404Not FoundThe server can't find anything matching the requested URL
410GoneThe resource used to exist here and has been intentionally, permanently removed
421Misdirected RequestThe request landed on a server that isn't configured to produce a response for that URL
425Too EarlyThe server won't risk processing a request that might be a replayed attack
429Too Many RequestsThe client has sent too many requests in too short a window, a form of rate limiting
451Unavailable For Legal ReasonsThe resource is blocked for legal reasons, such as a government-mandated takedown

5xx Server Error

CodeNameMeaning
500Internal Server ErrorA generic failure, the server hit a problem it can't describe more specifically
502Bad GatewayA server acting as a gateway or proxy got an invalid response from the upstream server
503Service UnavailableThe server is temporarily unable to handle the request, often due to maintenance or overload
504Gateway TimeoutA gateway or proxy didn't get a response from the upstream server in time
507Insufficient StorageThe server can't store the representation needed to complete the request, a WebDAV-specific code

The HTTP Status Codes That Matter Most for SEO

Only a fraction of the codes above show up often enough to matter for day to day SEO work, and a smaller fraction of those actually change how Google treats a page. These are the ones worth understanding in depth.

200 OK: The Baseline Every Page Should Hit

A 200 is what every indexable page on your site should return, and it's easy to take for granted until it stops happening. It confirms the server found the resource and handed it over cleanly. When the Search Atlas Site Auditor crawls a domain, one of the most basic checks it runs flags any URL that fails to return a 200, since that single signal underlies almost every other technical SEO check that follows it.

301 vs 302: Which Redirect Should You Actually Use?

Use a 301 when a page has moved for good, and use a 302 only when the move is genuinely temporary. The distinction is not cosmetic. A 301 redirect tells Google to transfer the old URL's ranking signals, including backlinks, to the new URL, and to update its index to show the new URL in search results going forward. A 302 tells Google the opposite, keep the old URL indexed, because it will be back.

Google has said that a 302 left in place for a long stretch can eventually pass link equity in a way similar to a 301, but it still won't swap the indexed URL the way a 301 does. If a redirect is permanent, meaning a page moved to a new URL for good, a domain migrated, or a URL structure changed, use a 301. If it's genuinely short-lived, like a page down for scheduled maintenance or an A/B test, a 302 is the correct choice. Reaching for a 301 there can leave a stale URL in Google's index longer than it should be.

404 vs 410: How Gone Is Gone?

A 404 tells Google a page can't be found right now, while a 410 tells Google the page is gone permanently and isn't coming back. Both are valid client-error responses, and for most sites, a plain 404 is enough. Google treats it as a signal to eventually drop the URL from the index, just not urgently.

A 410 is the more explicit version of the same message, and it prompts Google to remove the URL from its index faster than a 404 typically does. That distinction matters most at scale, on sites that retire large batches of URLs on purpose, like an ecommerce catalog dropping a discontinued product line or a publisher sunsetting an old content vertical. For a one-off deleted page, a 404, or better, a 301 redirect to a relevant replacement, usually does the job.

Soft 404s: The Error That Doesn't Look Like One

A soft 404 is a page that returns a 200 OK even though it's effectively broken, empty, or irrelevant, and it's one of the sneakier technical SEO problems because nothing in the server response admits there's a problem. Google detects these by evaluating the actual content on the page, not just the status code. A thin page, a template that renders with no real content, or a "no results found" search page that still returns 200 can all get classified as soft 404s.

The cost is real even though the error is invisible to a quick glance. Googlebot keeps recrawling pages that look alive, spending crawl budget, the finite amount of crawling activity Google is willing to spend on a given domain, on URLs that will never rank, while genuinely useful pages wait longer for their next crawl. Fixing a soft 404 usually means either returning an honest 404 or 410 for content that's genuinely gone, or fixing the template so the page actually renders real content when it claims to have succeeded.

429 and Rate Limiting: When Crawlers Get Throttled

A 429 tells a crawler or client it's sending requests too fast, and it matters more now than it used to because AI crawlers have added a whole new wave of bot traffic hitting sites at unpredictable volume. A server under heavy load from AI training crawlers or aggressive scraping tools may start returning 429s to protect itself, but if that throttling accidentally catches Googlebot too, indexing and recrawl frequency can suffer. Watching crawler behavior, not just status codes in isolation, is how you catch this kind of collateral damage before it costs rankings.

5xx Server Errors: The Ones That Cost the Most

A 500-series error is the one search engines treat with the least patience, because it means the server itself failed, not just a single missing page. A 500, 502, 503, or 504 returned during a Googlebot visit can cause that crawl to be abandoned entirely. If Google keeps hitting server errors on repeat visits, it can slow the crawl rate for the whole domain as a protective measure, which then delays how quickly new content or fixes get picked up anywhere on the site. A handful of scattered 500s rarely does lasting damage. A pattern of them, especially during a migration, a plugin conflict, or a traffic spike the server can't handle, is worth treating as urgent.

How Status Codes Affect Crawling, Indexing, and Rankings

Status codes are the raw signal Googlebot uses to decide what to do next with every URL it touches, which makes them foundational to crawling and indexing rather than a side detail. A domain returning clean 200s and correctly used redirects tells Google the site is well maintained and worth spending crawl resources on. A domain riddled with unexpected 404s, broken redirect chains, or intermittent 500s reads as a maintenance problem, and Google responds by crawling more cautiously and indexing more slowly.

Redirect chains are a common way this shows up in practice. A URL that 301s to another URL that 301s again to a third destination forces Googlebot to follow multiple hops before it reaches real content, wasting crawl budget and sometimes causing the chain to be abandoned before it resolves. The same logic applies to broken links scattered through a site's internal linking. Every link pointing at a 404 or a redirect chain is crawl budget spent on nothing, and pages that are only reachable through those broken paths risk becoming orphan pages that Google struggles to find at all.

This is also where crawl monitoring earns its keep on larger sites. Watching which bots are hitting which URLs, and what status codes they're getting back, in something closer to real time makes it possible to catch a redirect chain or a spike in 500s before it drags down crawl frequency across a whole domain, rather than finding out weeks later once rankings have already slipped.

How to Check and Monitor Your Site's HTTP Status Codes

Checking status codes only matters if you catch the problem before it costs you rankings, which means building a habit of checking rather than running a one-time cleanup. There are a few ways to see what your site is actually returning.

Check a Single URL Manually

The fastest way to check one URL is to open your browser's developer tools, go to the Network tab, and reload the page. The status code for the main document, and every resource it loads, shows up in that panel. Command-line tools work too. Running curl -I followed by a URL returns just the response headers, including the status code, without downloading the full page, which is a quick way to spot-check a redirect or confirm a 404 without opening a browser at all.

Use Google Search Console

Google Search Console's Pages report, under the Indexing section, groups every URL on your site by why it is or isn't indexed, including status-code-related reasons like "Not found (404)" and "Server error (5xx)." Clicking into any of those groups shows the specific URLs affected, which is useful for spot-checking but slower for catching problems across a large site, since Search Console only refreshes this data periodically rather than continuously.

Run a Full Crawl With Search Atlas Site Auditor

For anything beyond a handful of pages, a full-site crawl catches what manual checks and Search Console both miss. The Search Atlas Site Auditor crawls a domain at up to 20 pages per second, covering anywhere from 100 to 1,000,000 URLs depending on site size, and re-crawls automatically every 7 days by default to keep the data current between manual runs.

Search Atlas Site Auditor Issues overview showing crawled pages, site health score, and issues broken out by category like links, content, and sitemap

Every URL it finds gets a status code recorded in the Page Explorer view, alongside a broader site health score on a 0 to 1000 scale that reflects technical stability and crawl efficiency across the whole domain, not just individual pages. Issues tied to status codes, like a soft 404, a redirect that doesn't point to HTTPS, or an internal link still pointing at an old redirected URL, show up in the Issues tab with an explanation of the problem and the steps to fix it.

Search Atlas Site Auditor issue card showing a flagged technical SEO issue with severity, affected pages, and fix guidance

That kind of reporting means a technical SEO audit doesn't require manually cross-referencing a spreadsheet of URLs against a status code chart. Running that audit on a regular cadence, rather than only after something visibly breaks, is what keeps status code issues from quietly eating into crawl budget and rankings over months instead of days. Redirects specifically should also route to the HTTPS version of a page, since a 301 that lands on an unsecured HTTP URL is one of the more common issues a crawl like this surfaces.

Frequently Asked Questions

What is the most common HTTP status code? 200 OK is by far the most common, since it's returned every time a page loads successfully, which is the outcome for the overwhelming majority of requests on a healthy website.

What's the difference between 401 and 403? A 401 means the client hasn't authenticated yet and needs to log in or provide credentials. A 403 means the server knows who's asking and is refusing anyway, because that client isn't allowed to access the resource regardless of authentication.

Do HTTP status codes directly affect Google rankings? Google does not use status codes as a direct ranking factor, but they gate the crawling and indexing process that has to happen before a page can rank at all. A page returning errors instead of content can't be indexed properly, and a domain with widespread errors can see its overall crawl rate throttled, which delays indexing across the site.

Should I use a 404 or a 410 for a deleted page? A 404 is sufficient for most single-page deletions. A 410 is the better choice when you want Google to remove the URL from its index faster and you're confident the content is gone for good, which matters most when retiring large batches of URLs at once.

What is a soft 404 and why is it a problem? A soft 404 is a page that returns a 200 OK status even though the content is effectively missing, empty, or broken. It's a problem because Google has to evaluate the actual page content to catch it, and until it does, the page keeps consuming crawl budget that could go toward pages that actually rank.

Where can I find the official list of every HTTP status code? The IANA HTTP Status Code Registry is the authoritative, continuously updated source. RFC 9110 defines what the codes mean in detail and is the current specification, having replaced the older RFC 7231 in 2022.

Picture of Manick Bhan
Manick Bhan

Founder CEO/CTO

Manick Bhan is a 3x INC 5000 Founder CEO/CTO of Search Atlas which is an AI SEO automation platform used by thousands of brands and agencies.

Agentic SEO And AI Visibility Start Here

Join Our Community Of SEO Experts Today!

Visualize Your AI Marketing Success: Expert Videos & Strategies

Ready to Replace Your SEO Stack With a Smarter System?

If Any of These Sound Familiar, It’s Time for an Enterprise SEO Solution:

  • 25 - 1000+ websites being managed
  • 25 - 1000+ PPC accounts being managed
  • 25 - 1000+ GBP accounts being managed
Start for Free