Google recrawls your 404s far more than your 410s, and at scale that is real budget.

The popular version of this topic is wrong in a useful way. You will read that a 410 Gone deindexes in days while a 404 Not Found lingers in the index for months, so you should rush to convert your dead pages. The deindex-speed part of that is overstated. The crawl part is real, measurable, and the actual reason 410 is worth your attention on a large site.
Start with what Google actually says, because it is more modest than the blog posts. John Mueller has stated plainly that a 410 will sometimes fall out a little bit faster than a 404, but usually on the order of a couple of days, and that over the mid to long term a 404 and a 410 are treated the same, with both URLs dropped from the index. So if your goal is purely to get a page deindexed, the choice barely matters. Both get there. The interesting difference is not how fast the page leaves the index. It is how often Google keeps coming back to check.
What the two codes actually signal
A 404 means the server could not find the resource. It does not say anything about whether that is permanent. It could be a typo, a deploy glitch, a page that will be back tomorrow. A 410 means the resource is gone, deliberately and permanently, with no forwarding address. That difference in certainty is the whole game, because Google treats the two as different levels of commitment.
The cleanest way to think about it comes from Kevin Indig, who framed it while reviewing a controlled experiment on this. 410 are treated like 301s and 404 like 302s, he said, which makes sense because Google expects a 404 might turn back into a 200 at any point. A 404 is provisional in Google's eyes, so it keeps the URL on a return schedule to check whether you fixed it. A 410 is definitive, so it stops expecting a comeback and winds down its interest faster.
The number that actually matters
This is where the topic gets concrete. The SEO agency Reboot ran a controlled experiment to measure the difference, splitting a sample of indexed URLs with no external links and matched internal links, setting half to 404 and half to 410, then watching Googlebot for more than three months across 350,000 rows of log and Search Console data. The result was clean. 404 URLs were crawled 49.6% more often than 410 URLs, a difference their analysis confirmed as statistically significant to 95% confidence.
Read that as a crawl-budget figure, because that is what it is. Tell Google a dead page is permanently gone with a 410, and it comes back to recheck that page roughly half as often as it would a 404. On a handful of dead pages, who cares. On a large site retiring thousands of URLs, halving the recrawl rate on all of them frees a meaningful share of crawl budget that Googlebot was spending to confirm pages you already knew were dead. That budget goes back to your live, revenue-earning pages.
So when do you actually use each
The honest answer is that for most sites this is a low priority, and Google has said as much. But when it matters, the decision is not 410 versus 404 in isolation. It is a four-way choice, and picking the right one per situation is the skill.
| Status | Use when | Why |
|---|---|---|
301 | There is a genuine equivalent page | Redirect and keep the link equity, never throw it away with a 404 or 410 |
410 | Permanently gone, no equivalent, and you are certain | Retired content, dead SKUs, hacked spam URLs. Halves the recrawl rate |
404 | Gone, but you are unsure or it may return | Google is fine with 404 and keeps a return schedule in case it comes back |
503 | Temporarily unavailable, not deleted | Maintenance or outage, tells Google to come back, not to deindex |
Two traps sit around this table. The first is the redirect reflex in reverse, slapping a 410 on a page that has a perfectly good replacement, when a 301 would have carried the equity forward. The second, and worse, is the soft 404, where a dead page returns a 200 OK with some "sorry, not found" content. That is the worst option of all, because Google cannot tell the page is dead, keeps it eligible, and wastes crawl on it indefinitely. If you fix nothing else, find your soft 404s.
Deploying 410 at scale
The reason 410 gets ignored is that returning it in bulk is more awkward than returning a 404, which most platforms do by default. Here is how it actually goes per stack.
On Apache, a pattern of dead URLs can be sent to 410 with a rewrite rule or a Redirect gone directive.
# .htaccess
Redirect gone /retired-product-page
RewriteRule ^category/discontinued/ - [G]
On nginx, you return it directly in a location block.
location /retired/ { return 410; }
On a headless or edge setup, the cleanest path for a list of dead URLs is a CDN worker that checks the request path against a gone-list and returns 410 before the request ever hits your origin.
// Cloudflare Worker
const GONE = new Set(["/old-sku-123", "/retired/guide"]);
export default {
fetch(req) {
const path = new URL(req.url).pathname;
if (GONE.has(path)) return new Response("Gone", { status: 410 });
return fetch(req);
}
}
Two platform caveats worth knowing before you promise a client this. WordPress does not emit 410 on its own, but the Redirection plugin and most redirect managers support setting a 410 per URL or pattern, and you can do it in .htaccess as above. Shopify is the hard one, because it does not let you return a native 410, it serves 404 for removed products and pages, and there is no clean setting to change that. On Shopify you are mostly stuck with 404, which, given how small the deindex-speed difference is, is genuinely fine. Save the 410 effort for the platforms where it is cheap to do at scale.
The audit that finds the candidates
You do not guess which URLs to upgrade, you pull them from Search Console. In the Page indexing report, the "Not found (404)" group is your candidate pool, every URL Google currently knows is missing. Work through it for patterns that are permanently dead, retired sections, discontinued product paths, an old URL structure from a migration, and route those patterns to 410 in bulk rather than one URL at a time. While you are in there, open the "Soft 404" group and fix those first, because a soft 404 is actively lying to Google and costing you more than any 404-versus-410 choice ever will.
For most sites, leave the 404s alone and move on. For a large site shedding thousands of URLs, send the permanently dead ones to 410, watch the recrawl rate on those patterns fall in your crawl stats, and take the budget back. The deindex-speed myth was never the point. The recrawl rate always was.
See where your brand stands in AI answers today, benchmarked against your competitors, no pitch required.

Google ignores IndexNow, which is exactly why it is worth setting up
IndexNow gets dismissed because Google won't use it, but Bing, Yandex, Naver, Seznam and Yep do, and Bing's index feeds Copilot, DuckDuckGo and ChatGPT search. A full implementation guide across WordPress, Shopify, Cloudflare and headless, plus measurement.
read_post →
Updating your page does nothing until the freshness signals move with it
You can rewrite half an article and to a machine the page looks untouched. Freshness is a technical claim carried by dateModified, sitemap lastmod, and the visible date. How to signal real updates without faking the dates.
read_post →
Blocking every AI bot with one line costs you the citations you actually want
AI crawlers do three different jobs, training, retrieval for citation, and user-triggered fetches. A blanket Disallow blocks them all and can delete you from ChatGPT and Perplexity answers. Here is how to segment robots.txt instead.
read_post →