HTTPQUERY
Français

410 Gone

Utilisation

Lorsque le message d’erreur 410 Gone est reçu, le client sait que l’adresse a été valide à un moment donné, mais que la ressource n’existe plus. C’est la réponse renvoyée après l’expiration d’une ressource, par exemple un document proposé dans le cadre d’une offre à durée limitée. Si le serveur n’estime pas que la suppression est permanente, un 404 est utilisé à la place.

Ce code de statut est utile pour la maintenance d’un site et signale aux clients qu’ils doivent retirer les liens vers la ressource. La réponse est par défaut cachable. Les clients et les intermédiaires stockent le 410 sans directive Cache-Control explicite. Les clients bien conçus ne réessaient pas la requête, contrairement au cas du 404 où une nouvelle tentative peut réussir plus tard.

Les cas d’usage courants incluent les promotions expirées, les points de terminaison d’API obsolètes et les contenus archivés définitivement supprimés.

Impact SEO

Les moteurs de recherche comme Google n’indexent pas une URL dont le statut de réponse est 410. Les URL précédemment indexées sont retirées des résultats de recherche. Les pages renvoyant ce code ne gaspillent pas de budget d’exploration. Google traite 404 et 410 de manière identique. Les deux retirent le contenu de l’index au même rythme. Renvoyer un 200 avec un contenu d’erreur, ou rediriger les URL supprimées vers la page d’accueil au lieu de répondre par un 410, crée un soft 404, ce qui gaspille le budget d’exploration et érode la confiance dans les signaux serveur du site.

Exemple

Le client demande une ressource et le serveur répond 410 Gone car la promotion est terminée et le contenu n’est plus disponible.

Requête

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

Réponse

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>

Comment corriger

Lorsqu’un 410 apparaît de façon inattendue, vérifiez les fichiers de configuration du serveur à la recherche de règles non voulues. Dans Apache, cherchez dans httpd.conf et .htaccess les entrées RewriteRule portant le drapeau [G] (Gone) ou les directives Redirect gone. Dans nginx, cherchez return 410 dans les blocs location de la configuration du serveur. Les extensions de CMS et les mises à jour récentes ajoutent parfois des règles 410 sans avertissement. Désactivez les extensions récemment installées pour isoler la source.

Si la suppression est intentionnelle, mettez à jour les sitemaps pour exclure l’URL et retirez les liens internes pointant vers la ressource.

Dans WordPress, des extensions comme Redirection ou Yoast SEO gèrent les réponses 410 depuis l’interface d’administration, sans modifier directement les fichiers du serveur.

Si la suppression est involontaire, restaurez la ressource ou son remplacement et renvoyez un 200. Lorsqu’une page de remplacement existe à une autre URL, une redirection 301 est plus appropriée qu’un 410.

Références de code

.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