LW IT Solutions logo LW IT Solutions logo LW IT Solutions
« Blog-Übersicht /Cloud & AI/Tutorials / 410 Gone auf die robots.txt: Wie eine...
Diesen Artikel in anderen Sprachen lesen:

410 Gone auf die robots.txt: Wie eine 4xx-Antwort auf die Regeldatei das Crawler-Verhalten verändert

410 Gone auf die robots.txt: Wie eine 4xx-Antwort auf die Regeldatei das Crawler-Verhalten verändert
Inhalt
  1. Was ein 410 wirklich sagt
  2. Die Regel traf die eine Datei, die es hätte beenden können
  3. Warum eine 4xx-Antwort keine Einschränkung bedeutet
  4. Ein Adressraum ohne Boden
  5. Was eine einzelne Absage wiegt
  6. Was daraus folgt
  7. Fragen und Antworten
  8. Quellen

Eine Absage soll ein Gespräch beenden. Die deutlichste, die das Web kennt, ist 410 Gone: nicht „später noch einmal”, nicht „umgezogen”, sondern „das gab es, und es gibt es nicht mehr”.

Ein kleiner Server hat diese Absage an einem einzigen Tag 732.498-mal geschickt. Der Crawler, der die meisten davon bekam, wurde nicht langsamer – und war es seit elf Tagen nicht geworden.

Vier Schritte von einer richtigen Absage zu einem endlosen Durchlauf, die gemessenen Anfragezahlen und ein maßstabsgetreuer Vergleich, was eine Absage vorher und nachher wiegt
Vier Schritte, jeder für sich richtig, und zusammen haben sie einen Crawler elf Tage beschäftigt.

Was ein 410 wirklich sagt

Mehrere Antworten decken ab, auf welche Weise eine Seite nicht verfügbar ist, und sie sagen recht Verschiedenes.

404 Not Found heißt: Hier ist nichts. Ob hier früher etwas war oder morgen etwas sein wird, bleibt offen. Ein Crawler behandelt das als vorläufig und kommt wieder.

410 Gone heißt: Hier war etwas, es wurde absichtlich entfernt, und es gibt keine neue Adresse. Das ist die stärkste Art zu sagen, dass eine Seite erledigt ist, und Suchmaschinen lassen solche Adressen schneller fallen als ein 404.

Tausende tote Adressen mit 410 zu beantworten, ist also die richtige Wahl. Der Fehler lag an ganz anderer Stelle.

Die Regel traf die eine Datei, die es hätte beenden können

Die Absage steckte in einer einzigen Regel: Jede Adresse unter den stillgelegten Hostnamen antwortet mit 410. Zwei Ausnahmen waren herausgeschnitten, beide bewusst und beide eng.

Die robots.txt war keine davon.

Das lässt sich leicht übersehen: Die robots.txt enthält Regeln für Crawler, ist aber selbst keine Inhaltsseite. Eine Regel nach dem Muster „hier ist alles weg“ erfasst trotzdem auch ihre Adresse. Deshalb antwortete sie ebenso wie alle anderen Adressen mit 410.

Warum eine 4xx-Antwort keine Einschränkung bedeutet

Hier wird aus einem Versehen eine Einladung.

Der Standard ist eindeutig, was gilt, wenn die robots.txt nicht abrufbar ist. Eine 5xx-Antwort – der Server ist kaputt – bedeutet: Die ganze Seite gilt als gesperrt, später noch einmal versuchen. Eine 4xx-Antwort bedeutet das Gegenteil: Auf diesem Host gibt es keine Regeln, alles darf geholt werden.

Die Überlegung dahinter trägt. Eine fehlende robots.txt hieß immer schon „keine Einschränkung”, und nichts unterscheidet „dieser Host hatte nie Regeln” von „dieser Host hat sie entfernt”. 404 und 410 landen in derselben Schublade.

Die Absage kam also genau verkehrt herum an. Statt eines klaren Wegbleibens sagte sie in dem einen Satz, den ein Crawler liest, bevor er irgendetwas entscheidet, dass hier nichts gesperrt sei.

Eine geschlossene Schranke, deren Schild verkehrt herum am Boden liegt, und dahinter ein Weg, der sich endlos verzweigt

Ein Adressraum ohne Boden

Eine falsche Antwort wird erst teuer, wenn es etwas gibt, wofür sie sich ausgeben lässt.

Die angefragten Adressen trugen einen Parameter, der festhielt, woher der Crawler gekommen war. Jede Seite verwies damit auf Adressen, die es vorher nie gegeben hatte, und die verwiesen weiter. Der Nachschub ging nie aus.

Die Zahlen zeigen es deutlich: Von 698.400 Anfragen an einem Tag galten 696.907 verschiedenen Adressen – zwei von tausend waren Wiederholungen. Ein Crawler, der einen solchen Raum abarbeitet, macht nichts falsch; er folgt Verweisen, und das ist seine ganze Aufgabe. Fertig wird er nie.

Was eine einzelne Absage wiegt

Die letzte Überraschung steckte in der Größe.

Die Nachricht selbst ist klein: 415 Byte schlichter Text, der mitteilt, dass die Ressource fort ist. Die Header darum kamen auf 1.949 Byte, und rund 1.700 davon waren eine Sicherheitsrichtlinie für Inhalte.

Diese Richtlinie regelt, was eine Seite laden darf. Bei einer Absage gibt es keine Seite – nichts zu laden, nichts zu regeln, nichts, was der Header schützen könnte. Angehängt war sie trotzdem an jede der 732.498 Antworten, weil sie auf „immer” gestellt war, was für echte Seiten genau richtig ist.

Das Ergebnis: 2.364 Byte fürs Neinsagen, und 1,65 GB an einem Tag dafür.

Was daraus folgt

Drei Dinge, nach Wirkung geordnet.

Eine Regel, die einen Host verschwinden lässt, braucht eine Ausnahme für die Datei, die den Host beschreibt. Die robots.txt und alles andere, was ein Crawler liest, um zu entscheiden, muss lesbar bleiben, auch wenn alles Beschriebene fort ist. Eine erreichbare robots.txt mit einem einzigen Disallow: / beendet den Verkehr an der Quelle, statt ihn aufzufangen.

Header für Seiten gehören nicht auf Absagen. Auf die Hosts beschränkt, die tatsächlich Seiten ausliefern, sank jede Antwort von 2.364 auf 850 Byte – dieselbe Absage bei ungefähr einem Drittel des Gewichts.

Und ein Parameter, der neue Adressen erzeugt, macht aus jedem Durchlauf einen endlosen. Wo hinter entfernten Inhalten ein solcher Raum liegt, ist das Entfernen nicht das Ende der Arbeit.

Fragen und Antworten

Nimmt ein Disallow: / die alten Adressen auch aus dem Suchindex?

Nicht unmittelbar. Ein Disallow verbietet das Abrufen, nicht die Aufnahme in den Index. Eine gesperrte Adresse wird nicht mehr geholt, und damit sieht der Crawler auch ihr 410 nicht mehr. Adressen, die bereits bekannt sind oder von anderswo verlinkt werden, können deshalb als bloße Adresse ohne Inhalt im Index bleiben. Ein noindex hilft hier ebenso wenig, denn auch das stünde auf einer Seite, die nicht mehr abgerufen wird.

Wer beides will, muss sich für eine Reihenfolge entscheiden: Zuerst müssen die wichtigen Adressen ihr 410 ausliefern können, danach beendet die Sperre den Verkehr. Bei einem Adressraum ohne Boden wie dem im Artikel geht diese Rechnung allerdings nicht auf, denn die Absagen würden nie fertig. Dort ist die Sperre die bessere Wahl, auch wenn einzelne Adressen noch eine Weile im Index stehen.

Warum nicht die robots.txt mit 503 beantworten, damit die ganze Seite als gesperrt gilt?

Weil diese Sperre nur auf Zeit gilt. RFC 9309 behandelt einen Serverfehler bei der robots.txt zunächst als vollständiges Verbot, erlaubt einem Crawler aber, nach längerer Zeit ohne erreichbare Datei (der Standard nennt 30 Tage als Beispiel) so zu verfahren, als gäbe es keine robots.txt, oder eine zwischengespeicherte Fassung weiterzuverwenden. Im ersten Fall stünde der Host wieder ohne Regeln da, genau wie mit dem 410. Eine erreichbare Datei mit Disallow: / ist die Form, die dauerhaft gilt.

Wie schnell wirkt eine korrigierte robots.txt?

Mit bis zu einem Tag Verzögerung. RFC 9309 sieht vor, dass ein Crawler eine zwischengespeicherte robots.txt nicht länger als 24 Stunden verwenden soll; bis dahin kann er noch nach der alten Antwort arbeiten, hier also so, als gäbe es keine Regeln. Ob die Korrektur greift, zeigt sich deshalb erst im Verkehr des folgenden Tages, nicht in der ersten Stunde.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Kontakt

Eine Frage oder eine Idee für ein Webprojekt? Schreib mir kurz, worum es geht. Das Formular nutzt reCAPTCHA zum Schutz vor Spam.

Kommentar schreiben

Erfahrungen mit anderen Modellen oder Anbietern und Rückfragen zur Umsetzung sind hier willkommen.

Die E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem Stern versehen.