HTTP Status Codes for SEO (2026): What 200, 301, 404 and 500 Mean — and When You Must Step In

Understand what HTTP status codes 200, 301, 404 and 500 mean for SEO — and which ones demand action before your traffic starts to drop.

By Anabel Hafstad9 min read
Flat illustration of a browser with three arrows leading out to the status codes 200, 301 and 404.
In this article

Googlebot knocks on your door hundreds of times a month, and what it gets back decides whether your content stays indexed. Most people never see these codes — but they feel them anyway, when traffic quietly starts to slip.

What is an HTTP status code?

When a browser or Googlebot requests a page, the server replies with a three-digit code. That code tells both users and search engines what happened with the request, and they use it to decide what to do next.

Codes are split into five categories based on the first digit. 1xx are informational codes you rarely see in practice. 2xx means everything went fine. 3xx means redirection. 4xx means something is missing on the client side. 5xx means something is wrong on the server.

For most sites it's the 2xx, 3xx and 4xx codes that matter most, and those are the ones we focus on here.

Overview of the codes that matter

Here are the codes you'll actually meet day to day, what they mean and what they cost you.

CodeNameWhat it meansConsequence
200OKThe page exists and loads correctlyGoogle indexes the page normally
301Moved PermanentlyThe page has moved for goodLink authority is transferred to the new URL
302FoundTemporary redirectAuthority is not transferred, Google keeps the old URL
307Temporary RedirectTemporary, HTTP method preservedSame as 302 for SEO purposes
404Not FoundThe page does not existGoogle removes the page from the index over time
410GoneThe page has been permanently removedFaster de-indexing than a 404
500Server ErrorSomething is wrong on the serverGoogle retries, but can lose trust
503Service UnavailableTemporarily downFine if brief, a problem if persistent

200 OK

This is what you want. The page exists, loads correctly, and Google can index the content. A 200 on a page that's actually empty or no longer exists is a different story — that's called a soft 404, and Google has become quite good at spotting it.

301 Moved Permanently

The page has moved, and it's permanent. A 301 is the right choice when you change URL structure, switch domains, or delete a page you want to replace with another. It transfers link authority from the old URL to the new one, which is essential for preserving your rankings. About to do a bigger move? Read the guide to site migration without losing traffic first.

302 Found and 307 Temporary Redirect

Both are used for temporary redirects, but they're used far too often where a 301 would be correct. A 302 signals that the original URL is still valid, so Google keeps it in the index and does not transfer link authority. Only use 302 and 307 when the redirect is genuinely temporary — for example during maintenance or a short A/B test.

404 Not Found

The page doesn't exist. That's not always a problem — pages can disappear for good reasons — but a 404 on a page with inbound links and historical traffic is another matter. Then you lose link authority and potential visitors who never reach you. I've written a dedicated piece on when a 404 is a problem and when it isn't.

410 Gone

A 410 is the more decisive cousin of 404. Where a 404 says the page doesn't exist right now, a 410 says it's permanently gone and isn't coming back. Google de-indexes 410 pages faster than 404s, which is useful when cleaning up old content you don't want Google spending time on.

500 and 503

A 500 means something is broken on the server, and Google doesn't know what. It will retry, but persistent 500s are a serious signal that the site isn't reliable. 503 is designed for planned downtime and tells Google to try again later. Used correctly it's fine; used wrong or left for too long it sends the wrong signal.

What I often see go wrong with status codes

Status code problems are rarely dramatic events. They creep in gradually, and most people only notice them once the traffic has already fallen.

  • 302 where it should have been 301. The most common mistake I see, and it's almost always unintentional. Developers set up a redirect and reach for 302 out of habit or because it's the framework default. The result is that Google keeps the old URL indexed, and the work of building authority on the new URL starts from zero.
  • Redirect chains. A points to B, which points to C, which maybe points to D. Each hop weakens the link authority passed through, and Google gives up after a certain number of steps. The fix is simple: always point straight from the old URL to the final destination.
  • Soft 404s. When the server returns 200 OK on a page that has no real content. Often happens when products go out of stock and the page shows a "not available" message but keeps the wrong status code. Crawl budget gets burned on pages that don't add value.
  • No redirect plan at migration time. When pages are deleted or URLs change without redirects, all the link authority you've built up disappears overnight. I see this most often during relaunches where the focus has been on design, not on what happens to existing URLs.
  • 500s nobody is watching. Server errors happen, but very few people have alerts set up. A 500 left for days without anyone reacting can push Google to reduce crawl frequency on the whole site.
Three URL boxes connected in a chain by 301 arrows — A to B to C — weakening along the way, compared with one direct 301 arrow from A to C.
Every hop in the chain weakens what gets passed through. Always point straight to the final URL.

Status codes: how to get them right

Most status code problems can be prevented with three simple habits: the right code from the start, a redirect plan when something changes, and regular monitoring.

Use the right code from the start

When you set up a redirect, ask yourself: is this permanent or temporary? Permanent means 301. Temporary means 302 or 307. When you delete a page that isn't being replaced, use 410. It takes no longer than using the wrong code, but the consequences are completely different.

Always have a redirect plan

Before you delete a page, change a URL, or run a migration, map out which old URLs need to point to which new ones. Pages with historical traffic or inbound links are priority one. A simple spreadsheet is enough — as long as you do it systematically.

Set up monitoring and react quickly

Google Search Console will alert you to crawl errors, but only if you've turned on email alerts and actually check them. Block out fifteen minutes a week to go through the Pages report. It's the cheapest insurance you have against status code problems that build up over time. Need a primer? See the guide to Google Search Console.

Your action plan for HTTP status codes

  1. Crawl your site. Use Screaming Frog or a similar tool to get a complete overview of every status code. The free version of Screaming Frog handles up to 500 URLs — more than enough for most small sites.
  2. Prioritise by impact. 500s first — they're the most critical. Then 404s on pages with inbound links or historical traffic. Then redirect chains and 302s that should be 301s.
  3. Fix redirect issues. Replace 302 with 301 where the redirect is permanent. Shorten redirect chains to a single hop by pointing straight to the final destination.
  4. Update internal links. Once redirects are fixed, update internal links to point directly to the new URLs. That eliminates unnecessary redirects and improves crawl efficiency.
  5. Set up ongoing monitoring. Turn on email alerts in Google Search Console for crawl errors. Schedule a quick review of the Pages report every week.
Decision tree: one starting box with three arrows out to codes 301, 302 and 410, labelled permanent, temporary and gone for good.
Permanent → 301. Temporary → 302. Gone for good → 410. Pick the right code once and you won't have to fix it later.

In summary: my take on HTTP status codes

Status codes aren't glamorous, and they rarely come up in conversations about content strategy or link building. But they're fundamental — everything else relies on them.

I think of them as hygiene factors: when they're in place, nobody notices them. When they aren't, they affect everything from indexing to user experience, and the problems build up slowly enough that it's hard to point to exactly when things went wrong.

The good news is that most status code problems are both easy to spot and easy to fix — as long as you actually look for them.

Where to read more about HTTP status codes

Anabel — grunnlegger av SmåSeo

Struggling with status codes or technical SEO?

Let SmåSeo clean up your status codes

Whether you want a full technical review or help with a single error you can't crack — we find and prioritise what's actually costing you traffic.

  • Technical audit: I crawl your site and give you a prioritised list of status code issues and other technical errors — in plain language, not a 200-page report.
  • Redirect planning: We set up a complete redirect plan before a migration or URL change, so you don't lose the rankings you've built up.
  • Search Console setup: I help you configure alerts so you catch crawl and indexing issues before they hit your traffic.
  • Ongoing advice: On-demand support when something comes up — no retainers you don't need.

Ofte stilte spørsmål

  • A 301 signals that the page has moved permanently and transfers link authority to the new URL. A 302 signals a temporary move — Google keeps the original URL in the index and does not transfer authority. Using a 302 where you really mean a 301 means losing the SEO value you've built up.