DEV Community

Anosh
Anosh

Posted on

The Complete Guide to HTTP Status Codes for SEO

Every time Googlebot requests a URL, your server answers with a three-digit number before anything else happens. That number decides whether the page gets indexed, replaced, dropped or crawled less often.

This is a reference you can come back to. For each code, you get what it means, the SEO implication, when to use it, and the mistake people commonly make.

2xx: Success

200 OK

What it means: The request worked and the content was returned.

SEO implication: This is the only status that makes a page eligible for indexing. Google still decides whether it's worth keeping.

Use it when: The page exists and should be seen by users and crawlers.

Common mistake: Returning 200 for pages that are really errors, like empty search results or "product not found" pages. Google calls these soft 404s and treats them as missing anyway.

3xx: Redirects

301 Moved Permanently

What it means: The URL has changed for good. Go to the new one.

SEO implication: Google treats the destination as the new canonical home. Ranking signals pass through, and the old URL eventually drops out of the index.

Use it when:

  • A URL changes
  • You migrate to a new domain
  • You move from HTTP to HTTPS
  • You restructure your URL paths
  • You merge duplicate pages

Common mistake: Redirect chains (A → B → C → D) and redirecting a batch of old URLs to the homepage. Redirect each page to its closest equivalent, in a single hop.

302 Found

What it means: The URL has moved temporarily. Keep using the original.

SEO implication: Google generally keeps the original URL indexed. If a 302 stays in place for a long time, Google may start treating it like a permanent move anyway.

Use it when:

  • A/B testing
  • Short-term promotions or seasonal pages
  • Sending users to a regional or device-specific version for a while

Common mistake: Using 302 for a permanent change because it's the default in many frameworks and plugins. Check what your redirect actually returns.

303 See Other

What it means: The response is somewhere else, and the client should fetch it with a GET request.

SEO implication: Rarely relevant for crawled pages. Google treats it as a temporary redirect.

Use it when: A form submission or POST request should send the user to a confirmation page, so refreshing doesn't resubmit the form.

Common mistake: Using 303 for regular page moves. It's meant for the post-submission flow, not for content that changed address.

307 Temporary Redirect

What it means: A temporary redirect that preserves the HTTP method. A POST stays a POST.

SEO implication: Treated like a 302 for search. Google keeps the original URL.

Use it when: The move is temporary and the request method matters, such as in APIs.

Common mistake: Assuming a 307 means "permanent but safer." You'll often see 307s when a site has HSTS, where the browser itself redirects HTTP to HTTPS. That's a browser behavior, not what your server sent.

308 Permanent Redirect

What it means: A permanent redirect that preserves the HTTP method.

SEO implication: Treated like a 301. Signals consolidate on the new URL.

Use it when: The move is permanent and you want the method preserved.

Common mistake: Thinking 308 is a different SEO outcome from 301. For regular page navigation they behave the same.

301 vs 302 vs 307 (and 308)

  • 301: permanent, new URL gets indexed, old one fades out
  • 302: temporary, original URL usually stays indexed
  • 307: temporary like 302, but the HTTP method is preserved
  • 308: permanent like 301, but the HTTP method is preserved

The practical rule is simple. Ask yourself whether the old URL is coming back. If no, use 301 (or 308). If yes, use 302 (or 307). Both kinds pass signals, so the old line that "302s don't pass PageRank" doesn't hold up. What differs is which URL Google chooses to keep in the index.

4xx: Client errors

404 Not Found

What it means: Nothing is here, and the server doesn't say whether it will return.

SEO implication: The URL drops out of the index over time. A handful of 404s is normal and doesn't hurt your site overall.

Use it when: A page doesn't exist, or was removed with no replacement.

Common mistake: Panicking over every 404 in Search Console. Fix the ones that have backlinks, internal links or real traffic, and ignore the junk.

410 Gone

What it means: The page existed, was removed on purpose, and isn't coming back.

SEO implication: A slightly stronger signal than 404. Google may drop the URL a little faster, though the difference is small.

Use it when: You deliberately delete content permanently, like expired listings or retired campaigns.

Common mistake: Expecting 410 to give a big SEO advantage. It's a clean way to say "gone," not a ranking trick.

429 Too Many Requests

What it means: The client is sending requests too quickly. Slow down.

SEO implication: Google treats 429 like a server error and reduces its crawl rate. If it persists, indexing can suffer.

Use it when: You rate-limit abusive bots or scrapers.

Common mistake: Rate-limiting so aggressively that Googlebot gets caught, usually through a security plugin or firewall. Check server logs if crawl stats suddenly drop.

5xx: Server errors

500 Internal Server Error

What it means: Something broke on the server, and it can't say what.

SEO implication: Google retries and slows its crawling. If the error continues for days, URLs can start falling out of the index.

Use it when: You shouldn't be using it on purpose. It means a bug.

Common mistake: Ignoring intermittent 500s because "the site loads for me." Check Search Console's crawl stats and your logs.

502 Bad Gateway

What it means: A server acting as a gateway or proxy got an invalid response from the server behind it.

SEO implication: Same as other 5xx errors: crawl slowdown, and de-indexing if prolonged.

Use it when: It's generated by infrastructure, not chosen.

Common mistake: Blaming the application when the issue is the proxy, load balancer or CDN configuration.

503 Service Unavailable

What it means: The server is temporarily unable to handle the request.

SEO implication: This is the right code for planned downtime. Google understands it's temporary and will come back, especially when a Retry-After header is present.

Use it when:

  • Maintenance windows
  • Planned deployments
  • Short-term overload

Common mistake: Showing a "we'll be back soon" page with a 200 status. Google may index the maintenance page. Return 503 instead. And don't leave it up for days.

504 Gateway Timeout

What it means: The gateway waited too long for the upstream server.

SEO implication: Treated as a server error. Slow backends lead to repeated timeouts and reduced crawling.

Use it when: Again, infrastructure produces it, not you.

Common mistake: Treating it as a one-off. Repeated 504s usually point to slow database queries or overloaded servers that also hurt your Core Web Vitals.

Quick reference

  • 200: indexable, but confirm it isn't a soft 404
  • 301 / 308: permanent move, signals consolidate on the new URL
  • 302 / 307: temporary move, original URL usually stays
  • 303: post-form redirect, rarely an SEO concern
  • 404: not found, drops out over time
  • 410: deliberately gone, drops out slightly faster
  • 429: slow down, Google reduces crawling
  • 500 / 502 / 504: server trouble, fix fast
  • 503: temporary downtime, the correct code for maintenance

How to check your own status codes

curl -I https://example.com/old-page
Enter fullscreen mode Exit fullscreen mode

Look at the first line for the status and the location header for redirect targets. To follow a whole chain:

curl -IL https://example.com/old-page
Enter fullscreen mode Exit fullscreen mode

Also use Search Console's Page indexing and Crawl stats reports, and a crawler like Screaming Frog to catch chains, loops and soft 404s across the whole site.

Final thoughts

Status codes are the cheapest part of technical SEO to get right and one of the costliest to get wrong. A wrong redirect type, a maintenance page returning 200, or a firewall quietly serving 429s to Googlebot can undo months of content work.

Pick the code that matches what's really happening, and keep your signals consistent: the redirect, the canonical, the sitemap and your internal links should all agree.

Which status code has caused you the most confusion? Tell me in the comments.

Also do visit my website : anoshbb.com

Suggested tags: seo, webdev, http, beginners

Top comments (0)