← Retour au lexique
⚙️ SEO Technique

410 Gone (Code 410)

Code de statut HTTP indiquant qu'une ressource a été définitivement supprimée et ne sera plus accessible.

Définition

Le code HTTP 410 “Gone” indique qu’une ressource demandée était disponible auparavant mais a été intentionnellement et définitivement supprimée du serveur. Contrairement au 404, le 410 précise que la suppression est volontaire et permanente, accélérant la désindexation par les moteurs de recherche.

Différence 404 vs 410

Code 404 “Not Found”

HTTP/1.1 404 Not Found
Content-Type: text/html

<!-- Signifie : "Introuvable actuellement" -->
<!-- Peut être temporaire ou permanent -->

Code 410 “Gone”

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

<!-- Signifie : "Supprimé définitivement" -->
<!-- Ne reviendra jamais -->

Impact SEO différent

Googlebot face aux codes :
├── 404 : Continue crawl pendant ~3 mois
├── 410 : Arrêt crawl immédiat
└── Désindexation : 410 plus rapide

Quand utiliser le 410

Cas d’usage appropriés

Contenus définitivement supprimés :
├── Produits discontinués
├── Événements passés
├── Offres expirées
├── Articles obsolètes
├── Pages de campagne terminée
└── Contenu légalement retiré

Exemples concrets

E-commerce :
├── Produit arrêté : 410
├── Rupture stock : 200 + "indisponible"
├── Fin de gamme : 410
└── Erreur référence : 404

Blog :
├── Article retiré : 410
├── URL changée : 301
├── Contenu temporaire : 404
└── Archive voulue : 410

Implémentation technique

Apache .htaccess

# Retourner 410 pour pages spécifiques
<Files "page-supprimee.html">
    Header set Status "410 Gone"
    Deny from all
</Files>

# Via mod_rewrite
RewriteEngine On
RewriteRule ^ancien-produit\.html$ - [G]

Nginx

location = /page-supprimee {
    return 410;
}

location ~ ^/old-campaign/ {
    return 410;
}

PHP/Programmation

<?php
// Page produit supprimé
if ($product->status === 'discontinued') {
    http_response_code(410);
    include 'templates/410.php';
    exit;
}
?>

Page d’erreur 410 optimisée

Template utilisateur

<!DOCTYPE html>
<html>
<head>
    <title>Contenu supprimé définitivement</title>
    <meta name="robots" content="noindex, nofollow">
</head>
<body>
    <h1>Ce contenu n'est plus disponible</h1>
    <p>La page que vous recherchez a été 
       définitivement supprimée.</p>
    
    <!-- Alternatives utiles -->
    <h2>Suggestions :</h2>
    <ul>
        <li><a href="/nouveaux-produits">Nouveaux produits</a></li>
        <li><a href="/categories">Toutes les catégories</a></li>
        <li><a href="/recherche">Rechercher</a></li>
    </ul>
</body>
</html>

Monitoring et analysis

Logs serveur

# Identifier pages 410
grep " 410 " /var/log/nginx/access.log | 
awk '{print $7}' | sort | uniq -c | sort -nr

# Top pages 410
awk '$9 == 410 {freq[$7]++} 
    END {for (page in freq) 
         print freq[page], page}' access.log | 
    sort -nr | head -10

Google Search Console

Monitoring 410 :
├── Coverage → Excluded → "Submitted URL not found"
├── Diminution erreurs crawl
├── URLs supprimées plus vite
└── Index cleaning automatique

Stratégie migration/nettoyage

Process de mise en 410

1. Identifier contenu à supprimer
2. Sauvegarder si besoin archive
3. Configurer redirections 410
4. Tester codes retour
5. Monitoring désindexation
6. Cleanup sitemap XML

Nettoyage périodique

# Script audit 410
import requests

old_urls = [
    '/campaign-2023/',
    '/promo-expired/',
    '/event-past/'
]

for url in old_urls:
    response = requests.head(f'https://site.com{url}')
    if response.status_code != 410:
        print(f'TODO: Set 410 for {url}')

Bonnes pratiques

SEO technique

  1. Sitemap cleanup : Retirer URLs 410
  2. Internal links : Supprimer liens internes
  3. Redirections : Pas de 301 vers 410
  4. Robots.txt : Optionnel, 410 suffit

UX considerations

<!-- Message informatif -->
<div class="alert-410">
    <h2>Contenu retiré</h2>
    <p>Cette page était consacrée à [SUJET] 
       mais n'est plus d'actualité.</p>
    <a href="/alternative" class="btn">
        Voir le contenu similaire
    </a>
</div>

Cas spéciaux

E-commerce saisonnier

Gestion produits saisonniers :
├── Fin saison : 410 (définitif)
├── Rupture temporaire : 200 + stock:0
├── Pre-order : 200 + "bientôt disponible"
└── Variante supprimée : 410

Le code 410 est un outil puissant pour signaler définitivement la suppression de contenu et accélérer le nettoyage de l’index des moteurs de recherche.