Content is Everything
Pillar 3 · Technical discoverability

Redirects and status codes

Spencer Thursfield · Published 2026-09 · Last reviewed 2026-09-12 · Evidence: platform documentation, RFC 9110

A status code is the three-digit number a web server sends back with every response, telling the browser or crawler whether the request worked, moved or failed. A redirect is a status code in the 300s plus a new address: a 301 says the page has moved for good, and a 302 says the move is temporary.

Google ignores the content of any address that answers with a 4xx or 5xx code, so a good page behind the wrong number is never read.

Which status codes does a small business actually meet?

The middle column is the meaning set out in RFC 9110, the standard that defines HTTP. The right-hand column is Google’s own account of what its crawlers do.

CodeWhat it saysWhat Google does with it
200 OKThe request worked.Passes the page on to indexing, which may or may not index it. A page that looks like an error is flagged as a soft 404.
301 Moved PermanentlyThe page has a new permanent address, and future links should use it.Follows it, and treats it as a strong signal that the new address is the one to process.
302 Found, 307 Temporary RedirectThe page is somewhere else for now; keep using the old address.Follows it, but treats it as a weak signal. A 307 is handled the same as a 302.
308 Permanent RedirectThe same meaning as a 301.Handled the same as a 301.
404 Not FoundNothing is here. It does not say whether that is temporary or permanent.Ignores the content, removes the address from the index if it was there, and crawls it less and less often.
410 GoneNothing is here, on purpose, and probably for good.Treated the same as a 404.
5xx, such as 500 and 503The server failed. A 503 means overload or planned maintenance.Slows its crawling. Indexed pages are kept for a while, but pages that keep failing are removed.

301 vs 302: which redirect should you use?

Use a 301 when a page has moved and is not coming back. Google’s guidance is to use a permanent redirect “when you’re sure that the redirect won’t be reverted”. A permanent redirect puts the new address in Google’s results; a temporary one keeps the old address there. Official recommendation

Google treats 308 as a 301 and 307 as a 302. The difference matters for forms: RFC 9110 lets a client following a 301 or 302 turn a form submission into a plain page request, and points to 308 and 307 for when that must not happen.

The redirect type is one of the signals Google uses to decide which address becomes the canonical, the one it treats as real; see canonical URLs.

When you cannot set a server redirect

Where the platform gives no server access, Google reads an instant meta refresh (a line in the page’s head that forwards after zero seconds) as a permanent redirect, and a delayed one as temporary. It advises a JavaScript redirect only when neither is possible, because if rendering fails, Google never sees the redirect.

What are redirect chains and loops?

A chain is a redirect to another redirect: A to B to C. Google’s crawlers follow up to 10 hops by default and process only the final page. A loop is A to B and back to A, which never reaches a page. Search Console files a chain that was too long, a loop, or a bad address in the chain under “Redirect error”.

Point every old address straight at its final destination, and change your own links to the final address so nobody needs the redirect at all. Official recommendation

What is a soft 404?

A page that tells people it cannot be found while telling crawlers everything is fine. In Google’s words, it “returns a user-friendly ‘not found’ message but not a 404 HTTP response code”. It recommends a real 404 for pages that do not exist; if the page is real and has been misread, give it enough content to show it is not an error page. Required

404 or 410: which should a deleted page return?

For Google it makes no difference: every 4xx code except 429 is treated the same, and a dead address is crawled less and less often. The standard does draw a line: a 410 says the removal is deliberate and likely to last, the more exact message to other clients.

Redirect a deleted page only when something replaces it. Google’s advice is to 301 a page that has moved, and it calls a 404 “not necessarily a problem” for a page removed without replacement. For planned downtime, RFC 9110 defines 503 for exactly that case; a maintenance page sent with 200 is passed to indexing like any other page. Official recommendation

Do AI crawlers treat status codes the same way?

Status codes are defined for every client, not for Google alone, and an AI crawler fetches your pages like any other. A 404 or a 5xx gives it nothing to read.

How AI systems weigh those codes is unpublished. OpenAI’s and Perplexity’s crawler documentation, read on 2026-09-12, says nothing about individual status codes, so this manual makes no claim about how a redirect or a 404 affects whether an AI answer cites you. Your server logs show what each crawler received; can AI reach your site at all? explains how to check. Emerging

How do you check a URL’s status code?

From a terminal, curl -I fetches the headers only. The first line is the status code; a location line is the next address. Here is this site without the www, fetched on 2026-09-12, other headers trimmed:

$ curl -I https://content-is-everything.com/methodology/
HTTP/2 301
location: https://www.content-is-everything.com/methodology/

$ curl -I https://www.content-is-everything.com/methodology/
HTTP/2 200

Adding -L follows every hop, which shows a chain at a glance.

In Search Console, the Page indexing report sorts addresses by reason, including “Not found (404)”, “Soft 404” and “Redirect error”. The URL Inspection tool shows the response Google received. Its live test follows redirects and tests the final address without saying so, so use curl to see each hop.

What about moving a whole site?

Every old address with a new home needs one permanent redirect straight to it. The rest of a move is a subject of its own, set out in how to move your website without losing your Google rankings. The wider picture is in the technical discoverability pillar.

What bernard does about this

A missing address on a hosted site returns a real 404, and error and redirect responses are not cached at the edge. verified (infra/cloudflare/sites-router/src/index.js; checked live on this site, 2026-09-12)

Each AI crawler fetch is logged with the status code it received. verified (recordCrawlerHit, PRD 126)

An old short link can be forwarded with the addRedirect tool: an instant meta refresh page, marked noindex with its canonical set to the target, saved as a draft for the owner to approve. Google reads that form as permanent, but it is not a server-side 301. verified (src/lib/ai/tool-spec.ts; src/lib/sites/dead-forms.ts)

A move records old addresses that redirected to a captured page, but does not yet serve them as real 301s. An old address whose path changed returns 404 until that is built. absent (PRD 102, Phase 3; src/lib/move/seo-inventory.ts)

Common questions

What is a 301 redirect?

The status code a server sends when a page has moved to a new address for good. Browsers follow it, and Google treats it as a strong signal that the new address is the one to index.

Does a 301 redirect hurt SEO?

Google recommends a permanent server-side redirect as the best way to send people and Google Search to a page’s new address. The trouble comes from chains, loops, and redirects to pages that do not replace the old one.

Should a deleted page return 404 or 410?

Either works for Google, which treats both the same. If the page has a replacement, send a 301 to it instead.

What does “Page with redirect” mean in Search Console?

The address redirects elsewhere, so it is not indexed itself. It is not an error.

Sources
made with bernard

Cookie settings