301 vs 404: Which One to Use, and Why Search Engines Care

by Luca Cavallini Technical guides
301 vs 404: Which One to Use, and Why Search Engines Care

Two status codes that answer two different questions

A 404 answers the question "does anything live at this address" with no. It tells a browser and a crawler that the URL is not found, today, with no promise about tomorrow. A 301 answers a different question: "the thing you were looking for exists, but it permanently moved here." It carries an address to follow, and it tells a search engine to transfer the ranking signals of the old URL to the new one over time. They are not two flavours of the same error page. One says nothing exists, the other says something moved.

Getting this wrong in either direction has a cost. Returning a 404 for a page that actually moved throws away every backlink and every bit of ranking history the old URL had earned, and sends a real visitor to a dead end instead of the page they wanted. Returning a 301 for a page that is genuinely gone for good, redirecting it to an unrelated page just to avoid a 404, teaches search engines that the mapping means nothing, and eventually stops passing any value at all because the pattern looks like a trick rather than a real move.

A short decision list

  • The content moved to a new URL and still exists. Use a 301. This is the only case a 301 is for: a permanent, one-to-one move. Redirect to the single most relevant replacement, not to the homepage as a catch-all.
  • The content is temporarily unavailable but will come back at the same address. Use a 302, not a 301. A 302 tells the crawler to keep the original URL indexed and check back, which is exactly what you want during a sale, a stock-out, or a maintenance window.
  • The content is gone with no direct replacement. Use a 404, or a 410 if you know for certain it will never come back. A 410 (Gone) is a stronger, deliberate signal than a 404 and search engines tend to drop those URLs from the index faster, which is useful when you want a discontinued line cleaned out of search results quickly instead of lingering as a soft error.
  • The content never existed at that address in the first place. A plain 404 is correct and requires no further action.

The mistake that is easy to miss: the soft 404

A soft 404 is a page that tells a human visitor "product not found" or "page removed" in its text, while the server still answers with HTTP 200 OK underneath. Search engines eventually notice the mismatch between what the page says and what the status code says, and start treating the URL as an error page anyway, except now it wastes a normal indexing slot instead of being handled as the error it actually is. This happens most often on ecommerce catalogs when a product is deleted from the database but the controller falls through to a generic template instead of setting the response code, or when a client-side redirect (a JavaScript "no results, redirecting you now") never touches the HTTP status at all. If a page's own text says something is missing, its status code should say so too.

Why this is not just a theoretical SEO point: crawl budget is real traffic

Search engines and, increasingly, AI crawlers, do not have unlimited patience for a given domain: they allocate a rough budget of requests per day, and every request spent on a redirect chain, a wrong status code, or a URL that should not exist at all is a request not spent discovering or refreshing a page that matters. This is not an abstract concern. On our own online store, before a routine cleanup, the built-in visit-tracking filter turned out to be using a bot signature list last updated around 2010: it was logging 43,478 "visits" a day from bots as if they were real traffic, against roughly 300 actual people, and the accumulated tracking data had grown to 1.4 GB before that cleanup brought it down to 24 MB. Separately, on the same store, a single crawler (Meta's) was making 38,144 requests in a single day, 78 percent of all traffic the server received, until a targeted rule was added to stop it. Bots hitting a store at that volume will happily burn their whole budget on broken redirect chains and stale 404s before they ever reach a page you actually want indexed.

The practical takeaway is that a redirect map is not a one-time migration task, it is something worth checking again after every larger catalog change, theme change, or language rollout, precisely because the volume of automated traffic hitting a store's URLs is often far larger than the human traffic that motivated building the redirects in the first place.

Redirect chains: the quiet tax on every one of these decisions

A single 301 barely costs anything. A chain of three or four (old URL to a first replacement, to a second replacement, to the final page) forces every crawler and every real visitor's browser to make three or four requests to reach one page, and search engines are known to follow only a limited number of hops before giving up. Every time a URL changes again, redirect the original straight to the current final destination, do not add another hop on top of the last one. A redirect map that has been edited many times without ever being flattened is one of the most common, and most invisible, sources of lost crawl budget and slow page loads on older sites.

A practical checklist

  • Before any URL migration (re-platforming, a new theme, a language folder change), export the full list of currently indexed URLs from Search Console and build a redirect map before the change goes live, not after the first lost-traffic report.
  • Use 301 for permanent moves, 302 for genuinely temporary ones, and stop treating them as interchangeable "whatever works" codes.
  • For content that is gone for good, prefer a real 410 over a 301-to-somewhere-unrelated. A clean signal beats a fake redirect.
  • Audit for soft 404s: any page whose text says "not found" or "no longer available" should return the matching HTTP status, not 200.
  • Flatten redirect chains whenever you find one, so every old URL points directly at the current final page in a single hop.
  • Check server logs, not just Search Console, for what automated crawlers are actually requesting: the volume can be far larger than a dashboard summary suggests, and it is the fastest way to spot a stale bot filter or a runaway crawler before it becomes a resource problem.

In short

A 301 and a 404 are not interchangeable ways to make an old URL go away, they are opposite signals: one says "follow me, I moved", the other says "there is nothing here, do not follow anything". Picking the wrong one loses either ranking history or a visitor's trust, and at real traffic volumes, most of which is automated rather than human, getting it wrong repeatedly is not a cosmetic issue but a genuine drain on the attention crawlers are willing to spend on a domain. If managing redirects by hand in server configuration is not practical for your store, a dedicated redirect manager is one option among several, PrestaShop included (see the SEO Redirects module and its setup guide), but the decision tree above applies regardless of which tool ends up writing the rule.

SEO Redirects - 301/302/404 managerManage 301/302 redirects (plain, wildcard or safe regex), monitor 404s and turn them into redirects in one…€49.99View product

Leave a comment

Comments are moderated before publication.

← Blog

Loading...
Back to top