For most pages in a migration the honest answer is neither: use a 301 redirect. If the page has an equivalent on the new site, you should send the old URL there and keep its value, and that covers the large majority of pages in a normal move. The choice between 404 and 410 only applies to the pages that are genuinely gone with no replacement. When that is the case, both are correct and both lead to the page being removed from the index. The difference is the message they send. A 404 means not found, which can be temporary, so search engines may recheck the URL for a while before dropping it. A 410 means gone, a deliberate statement of permanent removal, so search engines tend to drop it a little sooner. Neither passes ranking value, because there is no destination, which is the whole reason to prefer a 301 whenever a real equivalent exists. WPBuildAI scans your site and returns the full URL list, so you can separate the pages that deserve a 301 from the ones that are truly gone.

Whichever code you choose, the page stops being an answer source the moment it goes: Seer Interactive’s 2026 study of 2.43 billion impressions put pages cited in an AI Overview at about 2.1 percent click-through versus 0.9 percent for uncited pages, which is a real argument for redirecting anything that still has an equivalent rather than reaching for 410.

First decide: replacement or no replacement

Before the 404 against 410 question even arises, sort each old URL into one of two buckets. Either the page has an equivalent on the new site, or it does not. If it does, the answer is a 301 to that equivalent, which keeps the page’s accumulated value, as the guides on site moves and redirects describe. Only the URLs with no real equivalent reach the 404 versus 410 decision. This order matters because most migration mistakes come from skipping it: people reach for an error code, or a blanket homepage redirect, on pages that actually had a perfectly good destination. Decide replacement first, and the rest is simple.

What a 404 says

A 404 status means the server could not find anything at that address. Importantly, 404 carries no claim about permanence; the page might be missing temporarily, might return, or might be gone forever, and the code does not say which. Because of that ambiguity, search engines treat a 404 as a not found state that they may recheck for a period before concluding the page is really gone, behavior described in Google’s reference on HTTP status codes. A 404 is the default a server returns when a page simply is not there, and it is a perfectly acceptable, honest response for a removed page. It just does not assert that the removal is permanent.

What a 410 says

A 410 status means gone: the page existed and has been intentionally and permanently removed. It is a stronger, more deliberate statement than 404, and because it asserts permanence, search engines generally take it at its word and drop the URL a little sooner than they would a 404. Functionally the two arrive at the same destination, removal from the index, but 410 takes the shorter path because it removes the ambiguity. You would use a 410 when you are certain a page is gone for good and you want to signal that clearly, such as a discontinued product or a deleted section that will never return.

They end up in the same place

The practical truth is that the choice is smaller than it sounds. Both 404 and 410 lead to the page being removed from search; 410 is just a bit more direct about it. Neither will keep your rankings, because neither has a destination to carry them to. So if you are agonizing over which to use on a page that is truly gone, relax: either is correct, and the difference is mainly the speed of removal. The agonizing is better spent earlier, on making sure the page really has no equivalent, because that is the decision that actually affects whether value is kept or lost.

Why neither passes value, and 301 does

The reason a 301 is preferred whenever possible is that it has somewhere to send both the visitor and the ranking signals. A 404 or 410 ends the journey, so any value the old page held is released rather than transferred. This is the core of post migration URL work: keep value where you can with 301s, and let it go only where the page is genuinely gone. Web Almanac 2024 (HTTP Archive) is a reminder that sites have more URLs than owners expect, so a careful inventory usually finds equivalents for pages that would otherwise have been written off as gone. The instinct should be to look for a destination first.

The mistake to avoid: faking a destination

There is a tempting wrong answer: redirect every removed page to the homepage so nothing returns an error. This backfires. Search engines read a mass redirect of unrelated pages to the homepage as a soft 404, giving you neither the value transfer of a real 301 nor the clean removal of an honest error code. For a page that truly has no equivalent, an honest 404 or 410 is better than a fake destination. Save 301s for pages with real equivalents, and let the genuinely gone pages return the error that tells the truth. Honesty in status codes is what keeps the rest of your migration legible to search engines.

Steps to handle removed pages

  1. List every old URL from before the migration.
  2. Sort each into has an equivalent or has no equivalent.
  3. 301 the ones with equivalents to their real new pages.
  4. Return 404 or 410 for the ones with no equivalent, not a homepage redirect.
  5. Use 410 when you are certain the page is permanently gone, for faster removal.
  6. Monitor the error report to confirm only the intended URLs return errors.

Worked example: sorting a migration’s old URLs

Imagine a site retiring an old structure with five hundred URLs. The team starts from a complete list and sorts it. Around four hundred URLs map cleanly to equivalents on the new site, so those get 301s. About seventy are old tag and pagination URLs that simply no longer exist as concepts, so those return 404, the honest not found. Thirty are discontinued products the company will never sell again, so those return 410, stating clearly that they are gone and letting search drop them promptly. Nothing is redirected to the homepage to hide an error. The result is legible: value preserved where equivalents existed, and clean, honest removal where they did not. Skipping the sort and blanket redirecting would have created soft 404s instead, as covered in recover traffic after forgetting redirects.

Limitation: status codes cannot save a gone page’s rankings

It is fair to be clear about the limit. Once a page is genuinely gone, no status code preserves its rankings, because there is nothing to preserve them on. The 404 versus 410 choice only affects how quickly the URL leaves the index, not whether its value survives, since neither carries value. If a page mattered and you want to keep its standing, the answer is upstream: find or build an equivalent and 301 to it, not pick a cleverer error code. Status codes describe reality honestly; they do not change it. And piling on redirects to avoid errors has its own costs, covered in how many 301 redirects are too many.

Common mistakes

  • Using 404 or 410 on pages that actually had an equivalent to 301 to.
  • Redirecting all removed pages to the homepage, creating soft 404s.
  • Agonizing over 404 versus 410 while ignoring whether a replacement exists.
  • Expecting an error code to preserve a gone page’s rankings.
  • Never checking the error report to confirm which URLs return what.

Key points

In a migration, use a 301 for any old page that has an equivalent on the new site, since that keeps its value. Choose between 404 and 410 only for pages that are genuinely gone with no replacement: 404 means not found and may be rechecked for a while, while 410 means gone for good and is dropped a little sooner. Both end at the same place, and neither passes ranking value, so the meaningful decision is replacement first, error code second. Never blanket redirect removed pages to the homepage, because that reads as a soft 404. Start from a complete URL list and sort honestly, then apply the right response to each, a process that connects to what changing a site URL does to SEO. WPBuildAI scans your site and returns the full URL list, so you can separate the pages that deserve a 301 from the ones that are truly gone. Send your web address for a free analysis.

Not affiliated with WordPress, Lovable, Webflow, Shopify, Wix, or Squarespace.