Website Checker - HTTP 410 Gone: The Deliberate Way to Kill a URL

HTTP 410 Gone: The Deliberate Way to Kill a URL

Aug 09, 2026 · HTTP Status Codes

Two status codes can mean "there's nothing here," and almost everyone uses the wrong one. A 404 is a shrug: the server can't find anything at that URL, no explanation offered — maybe it never existed, maybe it'll be back tomorrow. The 410 status code is a statement of intent: this resource existed, it was removed on purpose, and it is not coming back. Same blank page for the visitor. Very different message for anything automated that's deciding whether to try again.

As someone who's watched crawlers hammer long-dead URLs for months, I can tell you the distinction isn't academic. Bots respect certainty. A 410 gives them certainty; a 404 gives them a reason to keep checking.

410 vs 404: same result, different message

404 Not Found410 Gone
What it claimsNothing here right nowDeliberately removed, permanently
Might come back?Implied possibleExplicitly no
Googlebot recrawl behaviorRetries for a while before giving upBacks off sooner, retries less
Typical deindex speedSlower — days to weeks of rechecksFaster — often removed after fewer visits
Right forTypos, never-existed URLs, unknown pathsContent you chose to delete for good

Google has said both codes eventually lead to the same place — the URL drops out of the index — and that's true. The difference is the ramp. A 404 gets grace-period treatment because 404s are frequently accidents: a botched deploy, a broken rewrite rule. Google rechecks before believing it. A 410 skips much of that hesitation. If you want a URL out of the index and out of crawl rotation quickly, 410 is the sharper tool. (For the full picture of how 404s behave, see our guide to the 404 status code.)

When you should send a 410 status code

Reach for 410 when all three of these are true: the content existed, you removed it deliberately, and there's no meaningful replacement. Concrete cases:

  • Discontinued products with no successor. If there's a replacement model or a relevant category page, a 301 redirect preserves link equity and gets users somewhere useful — that beats any error code. 410 is for when there's genuinely nowhere sensible to send people.
  • Expired classifieds, job postings, event pages after their window has closed and the page has no residual value.
  • Thin or spammy content you're pruning — old tag archives, doorway pages from a previous SEO regime, auto-generated junk you want out of the index fast.
  • Content removed for legal or policy reasons, where "this is gone on purpose" is exactly the message you want on the record.
  • Hacked-page cleanup. After an injection attack leaves thousands of spam URLs in the index, returning 410 for them signals removal more decisively than 404.

The redirect-versus-410 decision comes down to one question: is there a page that genuinely serves the same intent? If yes, redirect. If you'd be redirecting to the homepage just to avoid an error code, don't — Google treats those as "soft 404s" anyway, and users find them disorienting. A clean 410 with a helpful error page is more honest and works better.

How search engines treat HTTP 410

When Googlebot receives a 410, it marks the URL as intentionally gone and deprioritizes it in the crawl queue faster than it would a 404. Fewer wasted fetches on dead URLs means more of your crawl capacity goes to pages that matter — which is the entire logic of crawl budget. On a small site this is rounding error. On a site retiring tens of thousands of URLs — a marketplace purging expired listings, a publisher pruning a decade of tag pages — it adds up to real crawl efficiency.

One caveat: a 410 removes the URL from the index, but it doesn't erase history. If the page had inbound links, that equity dies with it. That's the cost of 410 versus a 301, and it's why the "is there a real replacement?" question matters so much.

Serving a 410 in nginx, Apache, and your app

In nginx, the return directive handles it per-location: location = /old-product/ { return 410; }. For bulk removals, a map of retired paths keeps the config manageable. In Apache, mod_alias has a purpose-built directive: Redirect gone /old-product/. At the application layer, most frameworks make it one line — Django's HttpResponseGone(), Rails' head :gone, Express's res.status(410).

Verify with curl before trusting it: curl -I https://yoursite.com/old-product/ should show HTTP/2 410 on the first line. Check a handful of removed URLs, because the classic failure mode is a CMS that catches unknown routes and renders its own 404 template — swallowing your carefully configured 410 and replacing it with exactly the code you were trying to avoid.

Finding the URLs that deserve a 410

Most sites carry a tail of dead-but-still-crawled URLs without knowing it. Three places to look: Google Search Console's indexing report (filter for "Not found (404)" — many of those are removals that should be 410s), your access logs (grep for 404 responses that still get regular bot hits months after removal), and a crawl of your own site to catch internal links still pointing at removed pages. That last one matters more than people think — every internal link to a dead URL invites crawlers right back to it. The fastest way to find them is to crawl your site for error pages and fix the links at the source while you set up the 410s.

Mistakes that turn 410 into a problem

  1. 410 on a temporarily unavailable page. Out-of-stock is not gone. If the product returns in three weeks, you've told Google to deindex a page you wanted ranked. Use your judgment: temporary means keep the page up (or 503 in extreme cases), permanent means 410.
  2. Returning 200 with a "this page has been removed" message. That's a soft 404 — the page stays in the index with useless content. The status code is the signal; the body text is decoration.
  3. Mass-410ing during a migration. Moved content needs 301s. A migration that 410s everything it should have redirected torches years of accumulated link equity in an afternoon.
  4. Forgetting the sitemap. Removed URLs listed in your XML sitemap send a mixed signal — the sitemap says "index this," the response says "it's gone." Clean both.

Frequently Asked Questions

Does a 410 really deindex a page faster than a 404?

Yes, though the gap is modest — typically days rather than weeks. Google treats a 404 as possibly accidental and rechecks the URL several times before dropping it, while a 410 is taken as an explicit removal signal and gets fewer recrawl attempts. Both end at the same place; 410 just gets there with less ceremony.

Should I use a 410 or a 301 redirect for deleted pages?

It depends on whether a genuine replacement exists. If another page serves the same visitor intent, a 301 preserves the old URL's link equity and is the better choice. Redirecting to an unrelated page or the homepage just to avoid an error gets classified as a soft 404, so when there's no real substitute, a clean 410 is the right answer.

Will visitors see anything different between a 404 and a 410?

Not unless you build different error pages for them — browsers render both as an error with whatever HTML you serve. The distinction is consumed by machines: crawlers, link checkers, and monitoring tools change their retry behavior based on which code they receive.

Can I use 410 to remove hacked spam pages from Google?

It's one of the better tools for that cleanup. After removing injected pages, serve 410 for their URLs so Googlebot treats them as deliberately gone and stops requesting them sooner. Pair it with the Removals tool in Search Console for anything sensitive that needs to disappear from results immediately.

Try WebsiteChecker.Tech Free

Run a free technical SEO audit on any website. Get a client-ready report in minutes.

Start Free Scan