410 Gone: page permanently deleted

What HTTP 410 is, how it differs from 404, when to choose 410 over 301, whether you need a custom page, and how to configure it on any server.

In brief

410 Gone is an HTTP response code returned when the server knows the route but the resource has been intentionally and permanently deleted. Unlike 404, 410 sends an explicit signal: the server is aware of this URL and confirms the content was deliberately removed and will never return. Search engines remove such pages from the index significantly faster.

What is 410 Gone

410 Gone is an HTTP status from the 4xx group (client errors) that the server returns when a requested resource has been intentionally and permanently deleted. The key point: the server knows about this route. This is not 'page not found' — it is 'the page existed, was deliberately removed, and will not come back'. That is exactly what distinguishes 410 from 404.

According to RFC 9110, 410 indicates that the resource is no longer available and that this condition is likely permanent. Search engines treat 410 as an unambiguous signal to deindex the page — without repeated checks or waiting.

Google removes pages with a 410 status from the index faster than pages with 404. With 404, the crawler periodically rechecks the URL (in case the page comes back). With 410, it immediately understands the page is permanently gone and stops crawling it.

410 vs 404: the difference

Both codes mean there is no page at the requested URL. The difference lies in what the server communicates about the reason:

  • 404 Not Found: resource not found. The server does not know whether it existed before or will return. The crawler will periodically recheck the URL — just in case.
  • 410 Gone: the server explicitly confirms — the resource existed, was intentionally deleted, and this is permanent. The crawler stops rechecking and deindexes the page faster.

In practice, 404 most often also means deletion, but the search engine does not know that. 410 removes the ambiguity: the server explicitly communicates the fact and reason for the missing content.

Do not use 410 for pages that may return (e.g., temporarily unpublished products or articles under editing). Use 404 or 503 for temporary unavailability. 410 is only for permanent deletion.

410 or 301: what to choose

This is the most common question when deleting pages. The choice depends on whether a suitable alternative exists for a redirect:

  • Use 301 if the page has moved or a topically relevant alternative exists. A 301 passes the accumulated link equity to the new URL — preserving rankings and traffic.
  • Use 410 if the page is permanently deleted and no suitable alternative exists. Redirecting to an irrelevant URL (e.g., the homepage) just to preserve link equity is bad practice. Google understands this and does not credit such equity.
  • Use 404 if you are uncertain about the intent or the page might theoretically return.
Mass 301 redirects to the homepage instead of 410 is a common mistake. Google calls this a 'soft 404' and eventually stops crediting such redirects — the signal is still treated as deletion. It is better to return an honest 410 from the start.

When to use 410

410 is the right choice in the following situations:

  • Deleting catalog products that have no alternatives and will not return to stock.
  • Unpublishing articles, news, or promo pages with an expired shelf life.
  • Removing user-generated content (profiles, posts) by user request or under GDPR.
  • Cleaning up spam pages or duplicates that should no longer be indexed.
  • Deleting sections during site restructuring when pages have no topically close alternative.
  • Deactivating API endpoints for old versions that are no longer supported.

Do you need a custom page for 410

410 is primarily a signal for search crawlers, not for users. But if a real user lands on such a URL (e.g., from an old bookmark or an external link), they will see an empty response or a plain browser error without your branding.

Recommendations for a 410 page template:

  • For technical resources (APIs, internal endpoints) — no template needed, the status code is sufficient.
  • For user-facing pages — add a minimal template: explain that the page was deleted and provide a link to the homepage or site search. You can reuse the 404 page template.
  • Do not redirect from 410 to 404. Return 410 with your own HTML — this is semantically correct.
In most cases a single 'page does not exist' template is enough — it can serve both 404 and 410. The only difference is the HTTP status code returned to the crawler.

How to configure 410

Examples for popular platforms:

APACHE
# Apache — .htaccess
# Single specific URL:
Redirect 410 /old-promo

# Multiple URLs at once:
Redirect 410 /news/2021/event
Redirect 410 /sale/black-friday-2022

# All pages in a section:
RewriteEngine On
RewriteRule ^old-blog/.*$ - [G,L]
NGINX
# Nginx
server {
    # Single URL:
    location = /old-promo {
        return 410;
    }

    # All pages in a section:
    location ^~ /old-blog/ {
        return 410;
    }
}
TYPESCRIPT
// Next.js — middleware.ts (precise 410 for specific URLs)
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';

const GONE_PATHS = new Set([
  '/old-promo',
  '/news/2021/event',
  '/sale/black-friday-2022',
]);

export function middleware(request: NextRequest) {
  const pathname = request.nextUrl.pathname;
  if (GONE_PATHS.has(pathname)) {
    return new NextResponse('Gone', { status: 410 });
  }
}

export const config = {
  matcher: ['/old-promo', '/news/:path*', '/sale/:path*'],
};
PHP
<?php
// PHP — explicit 410 with page body
http_response_code(410);
header('Content-Type: text/html; charset=UTF-8');
?>
<!DOCTYPE html>
<html lang="en">
<head><title>Page Gone</title></head>
<body>
  <h1>410 Gone</h1>
  <p>This page has been permanently deleted and no longer exists.</p>
  <a href="/">Back to homepage</a>
</body>
</html>

After configuration, verify the status via Google Search Console (URL Inspection) or with curl:

BASH
curl -o /dev/null -s -w "%{http_code}\n" https://example.com/old-promo
# Expected output: 410

Common questions

410 explicitly tells the search engine the page was intentionally and permanently deleted. Google deindexes it faster than with 404 and does not waste crawl budget on repeated checks. 404 leaves ambiguity — the crawler periodically returns, expecting the page might reappear.
Yes, remove URLs returning 410 from the sitemap. The sitemap should contain only current, indexable pages. Leaving deleted URLs in the sitemap signals poor site maintenance.
If the links are valuable (high-authority donors), set up a 301 to the most relevant alternative. If no alternative exists or the links are low-value, an honest 410 is preferable to a junk 301 redirect to the homepage.
Yes, this is perfectly valid. Google will process the 410 on the next crawl and accelerate deindexing. Upgrading from 404 to 410 is an improvement, not a mistake.
No. Retry-After makes sense with 503 (temporary unavailability). 410 is a final answer — 'this resource is gone and will not return' — so suggesting a retry time is meaningless.
Direct contacts

Discuss your project?

Share your goals and website context — I will suggest a practical next step.

410 Gone: page permanently deleted — What is it?