301 vs 404: When Redirecting a Dead URL Makes Things Worse

A 301 claims a replacement exists. Redirect a dead URL to your homepage and Google reports it as a soft 404 anyway. How to choose per URL, and what 404s actually cost.

In this article 6 sections
  1. What each status actually does
  2. The mistake that makes things worse
  3. Choosing, per URL
  4. What 404s actually cost you
  5. Doing it in WordPress
  6. The short version

Most advice about broken URLs stops at "301 them". It is good advice roughly half the time. The other half it produces a site full of redirects that send readers somewhere they did not want to go, and that Google eventually decides to treat as 404s anyway — after you have spent months believing the problem was solved.

The two responses answer different questions. A 301 says this thing moved, it is now over here. A 404 says this thing is not here. Choosing between them is not a technical decision about tidiness. It is a factual claim about whether a replacement exists.

What each status actually does

301 Moved Permanently. The URL has a successor. Google transfers the signals it had accumulated for the old URL to the new one, drops the old URL from the index over subsequent crawls, and sends anyone following an old link straight to the replacement. Browsers cache 301s aggressively, which is worth knowing before you point one at the wrong place.

404 Not Found. The URL has no successor. Google removes it from the index after it has seen the 404 a few times, and any accumulated signals simply end. Nothing is inherited, because there is nothing to inherit it.

410 Gone is the honest sibling of 404: this existed, it is deliberately gone, stop asking. In practice Google treats 410 slightly faster than 404, and the difference is small enough that it is rarely worth engineering for. Use it when you are certain and want to be explicit.

The mistake that makes things worse

The failure mode is redirecting a dead URL to a page that does not replace it — usually the homepage, sometimes a category page, occasionally whatever seemed closest.

Google has a name for this outcome: a soft 404. When a redirect lands on something that is not a genuine equivalent of the requested URL, Google stops honouring it as a redirect and reports the original URL as a soft 404 in Search Console. You get the worst of both: the URL is still out of the index, the signals did not transfer, and you now have a redirect rule you will maintain forever that accomplishes nothing.

The reader experience is worse than the 404 you were avoiding. Someone clicked a link expecting a specific article. A 404 page tells them the truth and offers a search box. A silent bounce to your homepage makes them work out for themselves that the thing is gone, on a page that gives them no way to find what they wanted.

Blanket rules — redirect every 404 to the homepage — are this mistake applied at scale.

Choosing, per URL

Use a 301 when a genuine replacement exists.

  • The URL changed: a slug rewrite, a new category structure, HTTP to HTTPS, a domain move.
  • The content was consolidated: three thin posts merged into one substantial guide, where the merged page genuinely covers what each of the three covered.
  • A product was replaced by its direct successor — the new model, the renamed plan.

The test is whether a person who clicked the old link will recognise the destination as the thing they were looking for. If they would have to be told it is a substitute, it is not one.

Let it 404 when nothing replaces it.

  • Content you deleted because it was wrong, thin or obsolete, with no equivalent.
  • A one-off page whose moment passed: an event, a seasonal promotion, a job posting.
  • A URL that never should have existed — a typo, a staging artefact, a spam-generated path.
  • Pages someone else's site links to that you never published, which is most of the 404s in a busy site's logs.

A 404 here is not an error you failed to fix. It is the correct answer, and Google handles it without drama.

There is a middle case worth naming. If a dead URL still earns meaningful traffic or carries real links, and there is a page that partially covers it, the right move is often neither: write the replacement, then 301 to it. The redirect becomes legitimate because you made it legitimate.

What 404s actually cost you

Less than most people fear, and the fear drives the bad redirects.

404s are not a ranking penalty. Every site of any age has them. Google expects them, and a URL that has never existed returning 404 is the web working correctly.

What they cost is narrower and real:

  • Referred traffic and link equity, but only for URLs that actually had links or visits. A 404 on a URL nobody references costs nothing.
  • Crawl attention, but only at scale. Thousands of 404s on a large site can waste crawl budget. A few dozen on a normal site are noise.
  • Trust, when a reader hits one from your own navigation. An internal link to a 404 is a different problem from an external one, and it is the one worth fixing first — not by redirecting, but by fixing the link.

The priority order follows from that: fix internal links pointing at dead URLs, redirect the external-facing dead URLs that have a real replacement, and let the rest 404 in peace.

Doing it in WordPress

Hydrogen SEO's redirection manager creates and manages the redirects, and 404 monitoring logs what is actually being requested — which is the part that makes the decision possible. A 404 log sorted by hit count separates the handful of URLs worth a redirect from the long tail of scanner noise that deserves nothing.

Two things worth watching once you start:

Redirect chains. A URL that 301s to a URL that 301s to a third is a chain. Each hop costs a round trip, and long chains get abandoned. When you move something that was already moved, repoint the original at the final destination rather than adding a link to the end.

Loops. A redirecting to B while B redirects to A takes the page down entirely. Usually the product of two fixes made months apart by people who could not see each other's rules.

Both are the reason to keep redirects deliberate rather than automatic. A redirect table you can read is one you can debug.

The short version

301 when there is a real replacement and a reader would recognise it as such. 404 when there is not, and stop worrying about it. The redirect that sends a dead URL to your homepage is not a compromise between the two — it is the option that fails on both counts, and Google reports it as a soft 404 to tell you so.