410 Gone
Uso
Cuando se recibe el mensaje de error 410 Gone, el cliente sabe que la dirección fue válida en algún momento, pero que el recurso ya no existe. Es la respuesta que se devuelve cuando caduca un recurso, como un documento disponible dentro de una oferta por tiempo limitado. Si el servidor no espera que la eliminación sea permanente, se usa 404 en su lugar.
Este código de estado resulta útil para el mantenimiento del sitio e indica a los clientes que eliminen los enlaces al recurso. La respuesta es almacenable en caché de forma predeterminada. Los clientes y los intermediarios guardan el 410 aunque no haya directivas Cache-Control explícitas. Los clientes bien comportados no reintentan la solicitud, a diferencia del 404, donde un reintento posterior puede tener éxito.
Entre los casos de uso habituales están las promociones caducadas, los puntos de acceso de API obsoletos y el contenido archivado que se ha eliminado de forma definitiva.
Impacto en SEO
Los motores de búsqueda como Google no indexarán una URL con un estado de respuesta 410. Las URL indexadas previamente se eliminarán de los resultados de búsqueda. Las páginas que devuelven este código no desperdician presupuesto de rastreo. Google trata el 404 y el 410 de forma idéntica. Ambos retiran el contenido del índice al mismo ritmo. Devolver un 200 con contenido de error, o redirigir las URL eliminadas a la página de inicio en vez de responder con 410, genera un soft 404, lo que desperdicia presupuesto de rastreo y erosiona la confianza en las señales del servidor del sitio.
Ejemplo
El cliente solicita un recurso y el servidor responde con 410 Gone porque la promoción ha terminado y el contenido ya no está disponible.
Solicitud
GET /holiday-promotion-Jan-2021.pdf HTTP/1.1
Host: example.com
Respuesta
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>
Cómo solucionarlo
Cuando aparece un 410 de forma inesperada, revise los archivos de configuración del servidor en busca de reglas añadidas sin querer. En Apache, busque en httpd.conf y .htaccess entradas RewriteRule con la marca [G] (Gone) o directivas Redirect gone. En nginx, busque return 410 dentro de los bloques location de la configuración del servidor. Los complementos de CMS y las actualizaciones recientes a veces añaden reglas 410 sin avisar. Desactive los complementos instalados recientemente para aislar el origen.
Si la eliminación es intencionada, actualice los sitemaps para excluir la URL y elimine los enlaces internos que apunten al recurso.
En WordPress, complementos como Redirection o Yoast SEO gestionan las respuestas 410 desde la interfaz de administración, sin editar directamente los archivos del servidor.
Si la eliminación no es intencionada, restaure el recurso o su sustituto y devuelva un 200. Cuando existe una página sustituta en otra URL, una redirección 301 resulta más apropiada que un 410.
Referencias de código
.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