← Back to insights
Guide · #417

The Founder Guide to HTTP Status Codes

Master HTTP status codes that kill SEO. Learn 200s, 300s, 400s, 500s with plain-English explanations and fixes for founders who ship.

Filed
March 22, 2026
Read
19 min
Author
The Seoable Team

Why HTTP Status Codes Matter to Your SEO

Your site is invisible if Google can't crawl it. HTTP status codes are the first signal you send to search engines—they tell Google whether your page exists, moved, or broke. Get them wrong, and you're throwing away rankings.

Most founders don't check status codes until rankings tank. By then, damage is done.

This guide cuts through the noise. You'll learn which status codes actually impact SEO, how to audit them in minutes, and exactly how to fix the ones that are killing your visibility. No agency jargon. No fluff. Just the codes that matter.

Prerequisites: What You Need Before You Start

Before diving into status codes, you'll need a few tools and a basic understanding of how your site works.

Tools you'll need:

  • A browser with developer tools (Chrome, Firefox, Safari—all have them built in)
  • Access to your site's server logs or hosting dashboard
  • Google Search Console (free, takes 5 minutes to set up)
  • A command-line tool like curl or wget (optional, but useful)

What you should already know:

  • How to access your site's backend or hosting provider
  • Basic familiarity with your web stack (whether it's Node, Rails, PHP, etc.)
  • Where your 404 pages and redirects are configured

If you haven't verified your domain in Google Search Console yet, do that first. It's the foundation for seeing what Google actually sees when it crawls your site. Check out Verifying Your Domain in Google Search Console: Every Method Explained for a step-by-step walkthrough.

Understanding the Five Classes of HTTP Status Codes

HTTP status codes fall into five categories. Each tells a different story about what happened when a browser (or Google's crawler) requested your page.

1xx codes (Informational): The request was received, and the server is processing it. These rarely matter for SEO. Skip them.

2xx codes (Success): The request succeeded. The page exists and loaded correctly. This is what you want.

3xx codes (Redirection): The page moved. The browser or crawler needs to follow a new URL. Get these wrong, and you lose rankings.

4xx codes (Client Error): The page doesn't exist or the request was malformed. These kill traffic and confuse crawlers.

5xx codes (Server Error): Your server broke. Google stops crawling and assumes your site is down. Rankings drop fast.

According to HTTP Status Codes: All 63 explained - including FAQ & Video, there are 63 official status codes. But as a founder, you only need to know about 12. The rest are edge cases.

The 2xx Codes: What Success Actually Looks Like

200 OK

This is the goal. The page exists, loaded correctly, and is ready to be indexed.

When Google crawls your homepage and gets a 200, it knows the page is live and will add it to its index. No surprises. No redirects. No errors.

What you should do: Make sure your most important pages—homepage, product pages, key content—return 200 codes. Check this in Google Search Console by using the URL Inspection Tool: The Search Console Feature Founders Underuse to verify that Google sees these pages as live.

201 Created

Rarely relevant for SEO. This code typically appears when you're creating new resources via APIs. Ignore it for your main site.

204 No Content

The request succeeded, but there's no content to return. This sometimes appears on AJAX endpoints or API responses. It won't hurt your SEO, but it's not a code you'll see on public pages.

206 Partial Content

This code appears when a browser requests only part of a file (like a video stream). It's not an SEO problem. Move on.

The bottom line on 2xx codes: You want 200s on all pages you want indexed. Everything else in the 2xx range is either invisible to SEO or handled automatically by your framework.

The 3xx Codes: Redirects That Make or Break Ranking Transfer

Redirects are where most founders mess up. A bad redirect can lose you 80% of your ranking power in a week.

301 Moved Permanently

This is the only redirect that matters for SEO. It tells Google: "This page moved permanently. Update your index. Pass all ranking power to the new URL."

Use 301 redirects when:

  • You're migrating domains
  • You're restructuring URLs
  • You're consolidating duplicate content
  • You're deleting a page but want to preserve rankings

How to implement 301 redirects:

If you're on Nginx, add this to your config:

return 301 https://newurl.com$request_uri;

If you're on Apache, add this to your .htaccess:

Redirect 301 /old-page https://newurl.com/new-page

If you're on a modern framework like Next.js or Rails, use built-in redirect functions. Don't hack it with JavaScript redirects—Google won't follow them reliably.

For a complete walkthrough, read Setting Up 301 Redirects for a Domain Migration. It covers mapping URLs, testing redirects, and monitoring ranking transfer.

302 Found

This is a temporary redirect. Google treats it differently than a 301. It says: "The page moved temporarily. Keep the original URL in my index. Don't transfer ranking power."

Use 302 only when you're genuinely moving a page for less than a few weeks. In practice, most founders should never use 302. If you're moving a page permanently, use 301.

303 See Other

Rarely used. It's technically for POST requests that should be handled as GET on the new URL. Ignore it for SEO.

307 Temporary Redirect

Like 302, but technically more correct for HTTP/1.1. Still temporary. Still shouldn't be your default.

308 Permanent Redirect

Like 301, but technically more correct for HTTP/1.1. Some modern servers prefer this. For SEO purposes, 301 and 308 are equivalent. Use whichever your stack supports.

Pro tip: If you're doing a domain migration, audit every redirect. Use Google Search Console to monitor redirect chains. A chain like 301 → 301 → 301 loses ranking power with each hop. Flatten them to single redirects whenever possible.

The 4xx Codes: Broken Pages That Kill Crawlability

404 Not Found

The page doesn't exist. This is normal for URLs that never existed. It's a problem when pages that used to rank return 404s.

When Google crawls a page that returns 404, it removes that URL from its index. If that page had backlinks, that ranking power is lost. If it had internal links, Google wastes crawl budget following dead links.

What kills rankings:

  • Deleting pages without redirects
  • Restructuring your site without planning redirects
  • Typos in your navigation
  • Broken internal links

How to audit 404s:

Open Google Search Console. Go to Coverage. Look for "Not Found (404)" errors. These are pages Google tried to crawl that don't exist.

For each 404, ask: Did this page rank? If yes, set up a 301 redirect. If no, leave it alone. Read Coverage Issues in Google Search Console: A Plain-English Guide for a detailed walkthrough of finding and fixing these.

401 Unauthorized

The page exists, but you need authentication to view it. Google can't crawl authenticated pages (unless you've set up special handling). Don't use 401 for pages you want indexed.

If you have login-protected content you want searchable, you need a public preview or summary page that's fully accessible.

403 Forbidden

The server understood the request, but refuses to fulfill it. Like 401, but usually due to IP restrictions or permission issues.

If Google's crawler is getting 403 on pages you want indexed, check your firewall rules. Google's crawler IP should be whitelisted. Make sure you're not accidentally blocking Googlebot.

410 Gone

The page is permanently deleted and won't come back. It's like 404, but more explicit.

Use 410 when you want to tell Google: "This page is gone forever. Remove it from your index immediately. Don't wait." It's useful when you're sunsetting a product and want Google to stop indexing those pages faster than it would with a 404.

When to use 410 vs 301:

  • Use 301 if you want to preserve ranking power and redirect users
  • Use 410 if you want to signal permanent deletion without redirecting

In practice, most founders should use 301 (with redirects) or 404 (if there's nothing to redirect to). 410 is rarely necessary.

The 5xx Codes: Server Errors That Nuke Your Rankings

500 Internal Server Error

Your server broke. Google will crawl the page, get a 500, and assume something's temporarily wrong. It'll come back and try again later.

But if your server returns 500 on most pages for more than a few hours, Google will stop crawling. It assumes your site is down. It'll drop your rankings temporarily until the site is back up.

What causes 500 errors:

  • Unhandled exceptions in your code
  • Database connection failures
  • Out-of-memory errors
  • Misconfigured deployments

How to prevent them:

  • Monitor your error logs in real-time
  • Set up alerts for 5xx spikes
  • Test deployments in staging before pushing to production
  • Use feature flags to disable broken features without redeploying

If you ship a broken deployment, you have maybe 6 hours before Google's crawler notices and stops indexing. Fix it fast.

502 Bad Gateway

Your server is up, but it can't communicate with another service it depends on (like a database or cache layer). This is usually a temporary infrastructure issue.

Fix it the same way you'd fix a 500. Monitor, alert, fix fast.

503 Service Unavailable

Your server is temporarily down for maintenance or overloaded. Google sees this and knows it's temporary. It'll come back later.

Use 503 intentionally when you're doing maintenance. Don't accidentally return 503 due to overload—that signals to Google that your site can't handle traffic.

504 Gateway Timeout

Your server is up, but a request to a downstream service timed out. Like 502, it's usually temporary infrastructure noise.

Fix the underlying service. Don't ignore 504s—they indicate your site is slow or fragile.

The bottom line on 5xx codes: One or two 5xx errors won't kill your rankings. But if Google sees 5xx codes on 10%+ of pages for more than a few hours, it'll stop crawling and drop your rankings. Monitor your error rates obsessively.

How to Audit Your Site's Status Codes in 15 Minutes

You don't need expensive tools. You can audit status codes with free tools in under 15 minutes.

Step 1: Use Google Search Console Coverage

This is the fastest way to see what Google actually sees.

  1. Open Google Search Console
  2. Select your property
  3. Go to Coverage (on the left sidebar)
  4. Look at the four sections: Error, Warning, Valid, and Excluded

Errors are the ones that matter. They include:

  • 404s (Not Found)
  • 401s (Unauthorized)
  • 403s (Forbidden)
  • 5xx errors (Server errors)

If you see errors, click into them. Google will show you which URLs are returning those codes. For each one, decide: redirect it, fix it, or leave it alone.

Step 2: Check Individual Pages with Chrome DevTools

  1. Open any page on your site in Chrome
  2. Right-click → Inspect (or press F12)
  3. Go to the Network tab
  4. Reload the page
  5. Look at the Status column

You'll see the status code for each resource (HTML, CSS, JS, images, etc.). The main document (usually the first request) is the one that matters for SEO. The others are secondary.

If you see anything other than 200, investigate.

Step 3: Test Redirects with curl

If you've set up redirects, verify they're working:

curl -I https://oldurl.com/page

The -I flag shows only headers. Look for the status code. If it's 301 or 308, follow the Location header to the new URL. Test that the new URL returns 200.

curl -I https://newurl.com/page

If the redirect chain is longer than one hop (301 → 301 → 200), fix it. Flatten it to a single redirect.

Step 4: Monitor 5xx Errors in Your Logs

Open your hosting provider's dashboard or server logs. Look for 5xx errors in the last 24 hours.

If you see spikes, investigate immediately. If 5xx errors are above 0.1% of total requests, you have a problem.

Pro Tips: Status Code Mistakes Founders Make

Mistake 1: Using JavaScript Redirects Instead of HTTP Redirects

If your redirect looks like this:

window.location.href = 'https://newurl.com';

You're doing it wrong. Google's crawler doesn't always execute JavaScript. It might not follow the redirect. The old page stays in the index. You lose rankings.

Fix it: Use HTTP-level redirects (301, 302, 308) at the server level. Let your framework handle it. In Next.js, use redirects in next.config.js. In Rails, use redirect_to in your controller. In Express, use res.redirect().

Mistake 2: Forgetting to Redirect www and non-www Variants

If your site is at www.yoursite.com but you also answer requests at yoursite.com, Google sees them as two different sites. It splits your ranking power between them.

Fix it: Pick one (www or non-www). Redirect the other to it.

In your DNS, point both to your server. On your server, redirect the non-preferred version to the preferred one with a 301.

Mistake 3: Not Setting Up HTTPS Redirects

If your site is at https://yoursite.com but you also answer requests at http://yoursite.com, redirect HTTP to HTTPS with a 301.

HTTPS is an SEO ranking factor. Google prefers HTTPS. If you're still serving HTTP, you're leaving rankings on the table.

For a complete guide to HTTPS setup, read SSL Certificates and SEO: Setting Up HTTPS the Right Way. It covers certificate setup, mixed-content fixes, and redirect rules.

Mistake 4: Returning 200 on Pages That Don't Exist

Some founders configure their 404 handler to return a 200 status code with a "Page Not Found" message. This is a disaster.

Google sees a 200, thinks the page exists, and indexes it. Your site fills up with thousands of indexed "Page Not Found" pages. You waste crawl budget. Your real pages get buried.

Fix it: Return an actual 404 status code on 404 pages. Make sure your framework does this by default.

Mistake 5: Not Monitoring Redirect Chains

If you redirect A → B → C, Google has to follow two hops to reach the final destination. It loses ranking power with each hop.

Fix it: Keep redirects to a single hop. If you have chains, flatten them.

You can check this with curl:

curl -L -I https://oldurl.com/page

The -L flag follows all redirects. Count how many 301/302/308 codes you see before the final 200. If it's more than one, fix it.

Connecting Status Codes to Your Broader SEO Strategy

Status codes are foundational, but they're only one piece of SEO. They work alongside other technical signals.

If you're setting up a new site or doing a domain migration, status codes are critical. But they're not enough. You also need:

Proper robots.txt and sitemap configuration: Tell Google which pages to crawl and which to skip. Read Robots, Sitemaps, and Canonicals: The Three Files Founders Always Get Wrong for the right setup.

Canonical tags: If you have duplicate content, tell Google which version is the original. This prevents indexing issues and ranking dilution.

Schema markup: Structured data helps Google understand your content better. Use Setting Up Schema Markup with Google's Rich Results Test to validate your implementation.

Site speed: Status codes don't matter if your pages load in 10 seconds. Use Setting Up PageSpeed Insights and Reading Your First Report to audit your performance.

Crawlability: Even if your status codes are perfect, Google won't index pages it can't crawl. Make sure your site isn't blocking Googlebot in robots.txt or via IP restrictions.

All of these work together. Get status codes right first. Then layer on the rest.

Common Status Code Scenarios and How to Handle Them

Scenario 1: You've Moved Domains

Old domain: oldsite.com
New domain: newsite.com

What to do:

  1. Set up 301 redirects from every page on oldsite.com to the corresponding page on newsite.com
  2. Update your DNS so oldsite.com still resolves (don't let it 404)
  3. Verify the new domain in Google Search Console
  4. In Search Console, use the Change of Address tool to tell Google about the migration
  5. Monitor the Coverage report for 404s and redirect errors

Ranking transfer usually takes 2-6 weeks. During that time, you might see a temporary drop. This is normal. Don't panic.

Scenario 2: You've Restructured Your URL Structure

Old: /blog/my-post
New: /articles/my-post

What to do:

  1. Set up a 301 redirect from /blog/* to /articles/* (or use a more specific pattern)
  2. Update internal links to point to the new URLs
  3. Update your sitemap
  4. Submit the new sitemap to Google Search Console
  5. Monitor for 404s in the Coverage report

If you have hundreds of URLs, use a pattern redirect. In Nginx:

rewrite ^/blog/(.*) /articles/$1 permanent;

In Apache:

RewriteRule ^blog/(.*) /articles/$1 [R=301,L]

Scenario 3: You're Consolidating Duplicate Content

You have three URLs that serve similar content:

  • /product/shoes
  • /products/shoes
  • /shoe-guide

What to do:

  1. Pick one as the canonical (the one you want to rank)
  2. 301 redirect the others to it
  3. Or use canonical tags to tell Google which is the original (if you want to keep them live for some reason)

Redirects are usually better than canonicals for consolidation. Redirects are clearer and don't waste crawl budget on duplicate pages.

Scenario 4: You've Deleted Pages

You had a product page at /products/old-product. You've discontinued the product. The page needs to go.

What to do:

  1. If you have a similar product, 301 redirect to it
  2. If you don't, return a 404 or 410
  3. Update internal links to stop pointing to the old page
  4. Check Google Search Console for 404s

Don't redirect to your homepage. That's a bad user experience and doesn't pass ranking power well. Redirect to a related page, or let it 404.

Tools for Deeper Status Code Auditing

For most founders, Google Search Console is enough. But if you want to go deeper, here are some free tools.

Screaming Frog SEO Spider (free version): Crawls your entire site and reports status codes for every page. Limited to 500 URLs on the free version, but that's enough for most startups.

Ahrefs Webmaster Tools (free tier): Shows status codes, crawl errors, and redirect chains. Not as detailed as paid Ahrefs, but useful for quick audits.

Bing Webmaster Tools: Similar to Google Search Console. If you're on Bing's index (you probably aren't, but check), it'll show you status code errors Bing sees.

curl and command-line tools: For power users. Use curl to test individual URLs and status codes. Use wget to crawl your site and generate a status code report.

For most founders, stick with Google Search Console. It's free, it's what Google actually uses to index your site, and it's all you need to get status codes right.

Monitoring Status Codes Over Time

Audit status codes once. Then set up monitoring to catch problems before they tank your rankings.

Weekly checklist:

  1. Open Google Search Console
  2. Check the Coverage report for new errors
  3. If there are errors, investigate and fix them within 24 hours

Monthly checklist:

  1. Run a full site crawl with Screaming Frog or similar
  2. Check for new 404s, 5xx errors, or redirect chains
  3. Review your server logs for 5xx spikes
  4. Test a few key pages with curl to verify status codes

Automation is better. If you're technical, set up a monitoring service that crawls your site daily and alerts you to status code changes. Tools like Uptime Robot, Pingdom, or custom scripts can do this.

The goal is to catch problems in hours, not days. A 500 error that goes unnoticed for a week can cost you weeks of ranking recovery.

Status Codes in the Context of AI Engine Optimization

As AI-generated content becomes more common, status codes matter even more. Here's why:

If you're using AI to generate hundreds of blog posts (like Seoable's AI blog generation does), you need to make sure all those pages return 200 codes and are properly indexed.

A single misconfigured redirect or 404 can prevent your entire content library from being indexed. You've generated 100 posts, but Google can't find them because they return 404s or redirect chains.

Before you publish AI-generated content at scale:

  1. Verify your site structure and URL patterns
  2. Set up redirects for any old URLs
  3. Audit status codes
  4. Submit a fresh sitemap to Google
  5. Monitor the Coverage report for indexing issues

Status codes are the plumbing. Get them right before you scale content.

Wrapping Up: The Status Code Checklist

Here's what you need to do right now:

Today:

  1. Open Google Search Console
  2. Check the Coverage report for errors
  3. Fix any 4xx or 5xx errors you find
  4. Test a few key pages with curl to verify status codes

This week:

  1. Audit your redirects (test each one with curl)
  2. Flatten any redirect chains
  3. Make sure your 404 page returns a 404 status code
  4. Verify your site returns 200 on all pages you want indexed

This month:

  1. Set up monitoring for status code errors
  2. Review your server logs for 5xx spikes
  3. Update your sitemap and resubmit it to Google Search Console
  4. Check the Coverage report again for any new issues

Key takeaways:

  • 200 codes mean pages are live and indexable. You want these.
  • 301 redirects pass ranking power. Use them for permanent moves.
  • 302 redirects are temporary. Avoid them unless you're genuinely moving a page for weeks.
  • 404 codes mean pages don't exist. Use them intentionally, not by accident.
  • 5xx codes mean your server broke. Fix them immediately.
  • Redirect chains lose ranking power. Keep redirects to a single hop.
  • Monitor status codes weekly. Catch problems before they tank your rankings.

Status codes are boring. But they're foundational. Get them right, and the rest of your SEO becomes easier. Mess them up, and no amount of content or links will save you.

You've shipped. Now make sure Google can find what you've built. Start with status codes. Then layer on technical SEO audits, content, and links. That's how you go from invisible to searchable.

For a complete technical SEO foundation, check out Reading the Google Search Console Performance Report Like a Founder to understand what metrics actually move rankings, and How to Request Indexing in Google Search Console (And When to Do It) to speed up crawling and indexing of your new pages.

If you want to accelerate the whole process—domain audit, brand positioning, keyword roadmap, and 100 AI-generated blog posts—Seoable delivers all of that in under 60 seconds for $99. One-time fee. No subscriptions. No agency markup. Just the SEO foundation you need to get visible.

Free weekly newsletter

Get the next one on Sunday.

One short email a week. What is working in SEO right now. Unsubscribe in one click.

Subscribe on Substack →
Keep reading