Guide

301 vs 410 for pages missing from the archive

Every site restored from the Wayback Machine has gaps: addresses the archive never captured or saved only as errors. Each of them needs a deliberate answer. Restore the page if you can (200). Keep a 301 only where the original site already redirected, or where a page truly replaces the lost one. Answer 410 when the page is gone for good. Never send them all to the homepage.

By Dmitriy Gabdrakhmanov · Updated 9 October 2026

The four answers a missing address can give

StatusWhat it tells browsers and search enginesUse it when
200What it tells browsers and search enginesThe page is hereUse it whenThe archive holds the page and it is restored
301What it tells browsers and search enginesThe page moved permanently to another addressUse it whenThe original site redirected it, or a page with the same content exists
410What it tells browsers and search enginesThe page is gone on purpose and will not returnUse it whenNothing can replace it
404What it tells browsers and search enginesNothing is known at this addressUse it whenThe address never existed: typos, random URLs

The difference between 404 and 410 is small. Both remove the page from search results; Google has said a 410 can be acted on a little sooner. What 410 adds is intent: it records that someone checked the address and decided. On a restored site with hundreds of old addresses, that record is the point.

Why not redirect everything to the homepage

It is the most common shortcut after a restoration, and it does more harm than good:

  • Search engines treat it as a soft 404. A redirect to a page that has nothing to do with the old content counts as “not found” anyway. Google’s documentation names redirects to the homepage as a typical example.
  • It hides the real gaps. Every old address looks fine in a quick check because it answers. Nobody sees which pages are actually missing.
  • It confuses visitors. Someone who followed a link to a specific article lands on a homepage with no explanation.

A homepage redirect is right for exactly one case: when the old address was the homepage under another name, such as /index.html or /home/.

How to decide, address by address

Go through the list of old addresses in this order. The first rule that fits wins.

  1. The archive holds the page. Restore it on the same address. It answers 200.
  2. The archive shows the original site redirected this address. The capture itself is a 301 or 302 to another page. Keep that redirect as a 301, to the same target.
  3. A page on the restored site truly replaces it. Same topic, same purpose, not just “related”. A 301 there is fine. Be strict: a weak match is treated as a soft 404.
  4. Nothing replaces it. Answer 410 and write down the reason: never captured, captured only as an error, blocked, or excluded on purpose.
  5. The address never existed. Leave it as a normal 404.

In my restorations, rules 1, 2 and 4 are applied to every address, and each one becomes a row in redirects.csv with its reason. I do not invent rule-3 redirects on my own: the site comes back as it was, and you add redirects to new pages when you decide to.

What a redirect map looks like

Keep the decisions in one file, one row per old address. It is the documentation of the restoration and the source for setting up the server.

Old addressStatusTargetReason
/2014/05/old-review/Status200Target—Reasonrestored from the archive
/?p=812Status301Target/2014/06/new-review/Reasonthe original site redirected
/shop/cart/Status410Target—Reasonbehind a login, never captured
/2015/01/guest-post/Status410Target—Reasoncaptured only as an error page

Whoever runs the site next can see at a glance what came back, what moved and what is gone, and why.

Setting it up in WordPress

Three common ways, from simplest to most technical:

  • A redirect plugin. Most SEO plugins and dedicated redirect plugins handle both 301 and 410, and can import a list. Good when you will edit the list yourself.
  • The server configuration. On Apache, rules in .htaccess; on Nginx, in the site config. Fastest, because WordPress is not even loaded, but harder to edit.
  • A small router inside WordPress. Needed for parameter addresses such as ?p=812 or ?cat=5, which WordPress otherwise rewrites to its own permalinks.

Whatever you choose, check the result with a plain request. curl -I https://example.com/old-address/ shows the status code and, for a redirect, the target in the Location line.

Mistakes that undo the work

  • Redirect chains. Old address → another old address → the final page. Point every redirect straight at the final target.
  • Temporary redirects. A 302 says the move is temporary. Use 301 for anything permanent.
  • Redirects to pages that are themselves missing. A 301 to an address that answers 404 or 410 is a dead end with an extra step.
  • Mixed hosts. Decide once between http and https, with or without www, and redirect the rest site-wide. Then write every target on that one host.
  • Removing redirects too early. Keep 301s in place for at least a year; old links keep arriving long after.

Questions

Is a 410 bad for SEO?

No. A 410 only says the page is gone. The page drops out of search results, as it would with a 404. What it does not do is pass anything to another page, because there is no other page.

Should I redirect all 404 pages to the homepage?

No. Search engines treat that as a soft 404, and it hides which pages are really missing. Use 410 for pages that are gone and a normal 404 for addresses that never existed.

How long should I keep 301 redirects?

At least a year, and longer if old links still bring visitors. A redirect costs almost nothing to keep.

404 or 410: does it really matter?

Not much for search engines: both remove the page. It matters for you. A 410 with a reason in the redirect map shows the address was checked, while a 404 cannot tell a checked gap from a forgotten one.

Next step

Every restoration I deliver comes with redirects.csv: a status and a reason for every old address, and nothing sent to the homepage. The free audit shows how many addresses the archive holds for your domain.

Ask in Telegram