Wann eine 410 besser ist als eine 404 (und wie Sie sie wirklich einrichten)
Eine 410 ist nicht einfach eine verärgerte 404
In unserem Artikel 301 oder 404 stand die 410 nur in einer Zeile einer Entscheidungsliste, als stärkere Alternative zur 404 für einen endgültig verschwundenen Inhalt. Sie verdient eine eigene Erklärung, denn von den vier Statuscodes (301, 302, 404, 410) ist sie der einzige, der Gewissheit verlangt und nicht nur eine Feststellung. Eine 404 ist fast immer die automatische Standardantwort eines Servers oder einer Anwendung, wenn etwas nicht antwortet: Niemand „wählt“ sie Zeile für Zeile aktiv aus, sie entsteht einfach, wenn nichts passt. Eine 410 dagegen muss immer bewusst deklariert werden, durch eine Regel, die jemand beim Bau der Website absichtlich gesetzt hat, denn sie teilt etwas mit, das der Server nicht von allein wissen kann: nicht nur „Hier ist im Moment nichts“ (das sagt eine 404 schon), sondern „Hier wird nie wieder etwas sein, und das wissen wir sicher“.
Dieser Unterschied hat eine praktische Folge für das Verhalten der Suchmaschinen: Ein Crawler, der auf eine 404 stößt, hält die Möglichkeit offen, dass die URL zurückkehrt (ein vorübergehender Fehler, ein halb fertiges Deployment, ein Produkt, das wieder auf Lager kommt), und prüft diese URL in der Regel noch eine Zeit lang erneut, bevor er sie tatsächlich aus dem Index nimmt. Eine 410 ist ein bewusstes Signal für eine endgültige Löschung, und Google selbst hat mehrfach angegeben, dass es sie tendenziell schneller verarbeitet, um eine URL aus den Ergebnissen zu entfernen, auch wenn keiner der beiden Fälle sofort wirkt. Der Unterschied ist also nicht „wie schwer der Fehler ist“, sondern „wie sicher Sie sind, dass unter dieser Adresse nie wieder etwas leben wird“.

Wann eine 410 wirklich Schaden anrichtet
Gerade weil eine 410 eine Gewissheit mitteilt, ist es der teuerste Fehler der vier Codes, sie einzusetzen, wenn diese Gewissheit nicht besteht. Zwei typische Fälle, in denen sie sich gegen Sie wendet:
- Saisonale oder vorübergehend ausgesetzte Inhalte. Ein endgültig eingestelltes Produkt ist ein guter Kandidat für eine 410. Ein ausverkauftes Produkt, das in zwei Monaten zurückkommt, ist es nicht: Eine 410 hält die Suchmaschine davon ab, diese URL erneut zu prüfen, ausgerechnet dann, wenn Sie das einige Wochen später gern hätten. Das richtige Werkzeug bleibt in diesem Fall eine 404 (oder, wenn es wirklich vorübergehend ist und das Datum feststeht, eine 302 auf eine Informationsseite), keine 410.
- Zu breite Regeln. Eine 410 auf ein generisches Muster oder auf eine Bedingung für den Query-String muss mit derselben Sorgfalt geschrieben werden wie eine Firewall-Regel: Eine zu allgemeine Bedingung kann die 410 für legitime URLs auslösen, die nur einen Teil des Musters gemeinsam haben, und damit echtem Traffic endgültig die Tür schließen statt nur dem Traffic, den Sie stoppen wollten. Anders als bei einer 301, wo ein falsches Ziel den Besucher immerhin irgendwohin schickt, schließt eine fehlerhafte 410 einfach die Tür, und wenn es die falsche Tür war, merkt es nur der, der dagegenläuft.

Wie eine gut eingerichtete 410 tatsächlich aussieht
In unserem eigenen Weiterleitungsmodul wählt man die 410 im Menü für den Regeltyp, neben der 301 und der 302, und für diesen Regeltyp wird die Zieladresse nicht benötigt und ignoriert: Es gibt kein „wohin schicken“ für den Besucher, nur ein „hier ist nichts mehr, endgültig“. Technisch interessant ist die Stelle, an der die Antwort erzeugt wird: Sie muss so früh wie möglich im Lebenszyklus der Anfrage ausgehen, bevor die Anwendung das Theme aufbaut, das Produkt aus der Datenbank holt oder das Rendering der Seite vorbereitet, sonst haben Sie trotzdem die ganze Arbeit verschwendet, die eine 410 vermeiden soll. Eine korrekte Antwort enthält drei Elemente, die oft vergessen werden, wenn eine 410 von Hand in eine Konfigurationsdatei geschrieben wird:
- Einen echten HTTP-Status
410 Goneund keine 200 mit dem Text „Produkt nicht verfügbar“ (derselbe Soft-404-Fehler, der im vorigen Artikel schon behandelt wurde und hier genauso gilt). - Einen Header
X-Robots-Tag: noindex, der das Signal für Crawler verstärkt, die diesen Header unabhängig vom Statuscode lesen. - Einen minimalen Seiteninhalt, in der Sprache des Besuchers, statt einer weißen Seite: Auf eine 410 kann auch ein echter Mensch stoßen, der einem alten Link folgt, nicht nur ein Crawler.

Ein realer Fall: ein Crawler, der an einem vergifteten Parameter im Kreis lief
In unserem eigenen Shop lief ein Crawler (der von Meta) im Kreis an URLs der Form /login?back=..., die im Wert des Parameters noch die alte Domain des Shops aus der Zeit vor einem Adresswechsel enthielten: mehr als 36.000 Anfragen in einer einzigen Nacht, mehr als 90 % des gesamten Traffics, den der Server erhielt, jede mit einer 200-Antwort und vollständigem Rendering der Seite beantwortet, also mit denselben CPU-Kosten wie eine echte Anfrage. Das Problem war nicht die URL selbst (/login ist eine völlig legitime Adresse), sondern die Kombination mit genau diesem Parameterwert, den kein echter Besucher je erzeugen würde.
Wir haben geprüft, dass eine einzige 410-Regel mit einer Bedingung für den Query-String genau diesen Fall löst, ohne den Webserver anzufassen und ohne den legitimen Traffic zu berühren: Die Regel greift nur, wenn der Parameter back die alte Domain enthält, nicht bei jeder Anfrage an /login. Testergebnisse, auf drei verschiedenen PrestaShop-Versionen:
/login?back=http%3A%2F%2Fold-domain.example%2Fxliefert 410/login?back=https%3A%2F%2Fold-domain.example%2Floginliefert 410/login?back=/my-account(legitimer Traffic) liefert weiterhin 200, unverändert

Das ist das klarste Beispiel dafür, was eine gut gebaute 410 von einer hastig gemachten 410 unterscheidet: Die Regel sagt nicht „/login sperren“, sondern „nur genau die Kombination sperren, von der wir wissen, dass sie das Problem verursacht“, und sie prüft diese Bedingung, bevor sie auch nur eine Zeile der Seite aufbaut.

Kurz gesagt
Die 404 ist fast immer ein Standardwert, die 410 ist immer eine bewusste Entscheidung, und sie sollte nur eingesetzt werden, wenn wirklich sicher ist, dass die URL nie wiederkommt. Gut gemacht, ist sie ein echter HTTP-Status, der so früh wie möglich im Lebenszyklus der Anfrage erzeugt wird, mit dem passenden Robots-Header und ohne die Arbeit zu verschwenden, die sie vermeiden soll; mit einer zu breiten Regel kann sie dagegen einem Traffic, der legitim war, endgültig die Tür schließen. Wer diese Regeln verwalten möchte, ohne die Serverkonfiguration anzufassen, findet in einem Modul wie cll_seoredirect eine Möglichkeit, aber das Kriterium, wann eine 410 die richtige Wahl ist, bleibt unabhängig vom Werkzeug dasselbe.
Installations- und Konfigurationsanleitung
SEO-Weiterleitungen - Verwaltung von 301/302/404 (SEO Redirects)Verwalten Sie 301/302-Weiterleitungen (einfach, Wildcard oder sichere Regex), überwachen Sie 404er und…49,99 €Produkt ansehen