410 Gone

The HTTP 410 Gone status code is a client error returned by the server to indicate the requested resource is permanently unavailable. This is similar to 404, though 410 more specifically indicates the resource did exist but has been intentionally removed, and the removal is expected to be permanent.

Usage

When the 410 Gone error message is received, the client knows the address was valid at one point, but the resource no longer exists. This is the response returned after a resource, such as a document available as part of a limited-time offer, expires. If the server does not expect the removal to be permanent, 404 is used instead.

This status code is helpful for web maintenance and signals to clients to remove links to the resource. The response is cacheable by default. Clients and intermediaries store the 410 without explicit Cache-Control directives. Well-behaved clients do not retry the request, unlike 404 where a retry succeeds later.

Common use cases include expired promotions, deprecated API endpoints, and archived content permanently removed.

SEO impact

Search engines like Google will not index a URL with a 410 response status. URLs previously indexed will be removed from search results. Pages returning this code do not waste crawl budget. Google treats 404 and 410 identically. Both remove content from the index at the same rate. Returning 200 with error content or redirecting deleted URLs to the homepage instead of responding with 410 creates a soft 404, which wastes crawl budget and erodes trust in the site's server signals.

Example

The client requests a resource and the server responds with 410 Gone because the promotion has ended and the content is no longer available.

Request

GET /holiday-promotion-Jan-2021.pdf HTTP/1.1
Host: www.example.re

Response

HTTP/1.1 410 Gone
Content-Type: text/html
Content-Length: 133

<html>
  <head>
    <title>Promotion Expired</title>
  </head>
  <body>
   <p>The promotional period has ended.</p>
  </body>
</html>

How to fix

When a 410 appears unexpectedly, check the server configuration files for unintended rules. In Apache, search httpd.conf and .htaccess for RewriteRule entries with the [G] (Gone) flag or Redirect gone directives. In nginx, look for return 410 inside location blocks in the server config. CMS plugins and recent upgrades sometimes add 410 rules without warning. Disable recently installed plugins to isolate the source.

If the removal is intentional, update sitemaps to exclude the URL and remove internal links pointing to the resource.

In WordPress, plugins like Redirection or Yoast SEO manage 410 responses through the admin interface without editing server files directly.

If the removal is unintentional, restore the resource or its replacement and return 200. When a replacement page exists at a different URL, a 301 redirect is more appropriate than a 410.

Code references

.NET

HttpStatusCode.Gone

Rust

http::StatusCode::GONE

Rails

:gone

Go

http.StatusGone

Symfony

Response::HTTP_GONE

Python3.5+

http.HTTPStatus.GONE

Java

java.net.HttpURLConnection.HTTP_GONE

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_GONE

Angular

@angular/common/http/HttpStatusCode.Gone

Takeaway

The 410 Gone status code is a client error indicating the requested resource has been permanently removed. Clients are expected to remove existing links to the resource.

See also

Last updated: March 5, 2026