Formalisierung der Spezifikation des Protokolls zum Ausschluss von Robots

Montag, 1. Juli 2019

Das Protokoll zum Ausschluss von Robots (Robots Exclusion Protocol, REP) ist seit 25 Jahren eine der grundlegendsten und wichtigsten Komponenten des Webs. Websiteinhaber können damit automatisierte Clients wie Web-Crawler ausschließen, sodass ihre Websites für diese nur teilweise oder gar nicht zugänglich sind.

1994 erstellte Martijn Koster, ein Webmaster, den ersten Standard, nachdem Crawler seine Website überlastet hatten. Durch weitere Beiträge von anderen Webmastern wurde das REP geboren und wurde von Suchmaschinen übernommen, um Websiteinhabern die Verwaltung ihrer Serverressourcen zu erleichtern.

Das REP wurde jedoch nie zum offiziellen Internetstandard, was bedeutet, dass Entwickler das Protokoll im Laufe der Jahre etwas anders interpretiert haben. Seit der Einführung wurde der REP nicht für die heutigen Spezialfälle aktualisiert. Für Websiteinhaber ist dies ein schwieriges Problem, da der mehrdeutige De-facto-Standard das Schreiben korrekter Regeln erschwert.

Wir möchten Websiteinhaber und Entwickler bei der Erstellung erstklassiger Websites unterstützen, damit sie sich nicht Gedanken darüber machen müssen, wie sie die Crawler steuern. Zusammen mit dem ursprünglichen Autor des Protokolls, Webmastern und anderen Suchmaschinen haben wir dokumentiert, wie das REP im modernen Web verwendet wird, und dies an die IETF gesendet.

Der vorgeschlagene REP-Entwurf spiegelt die 20-jährige Realität wider, in der sowohl der Googlebot als auch andere große Crawler robots.txt-Regeln verwenden und etwa eine Milliarde Websites auf dem REP basiert. Diese präzisen Einstellungen ermöglichen es dem Publisher zu entscheiden, welche Inhalte auf seiner Website gecrawlt und interessierten Nutzern präsentiert werden sollen. Die Regeln, die 1994 erstellt wurden, ändern sich dadurch nicht. Stattdessen werden im Grunde alle nicht definierten Szenarien für das Parsen und Abgleichen von robots.txt-Dateien definiert und für das moderne Web erweitert. Dabei gilt insbesondere:

  1. Jedes URI-basierte Übertragungsprotokoll kann robots.txt-Dateien verwenden. Sie sind beispielsweise nicht mehr auf HTTP beschränkt und können auch für FTP oder CoAP verwendet werden.
  2. Entwickler müssen mindestens die ersten 500 Kibibyte einer robots.txt-Datei parsen. Durch das Festlegen einer maximalen Dateigröße wird sichergestellt, dass Verbindungen nicht zu lange offen sind, wodurch eine unnötige Belastung der Server vermieden wird.
  3. Mit einer neuen maximalen Caching-Zeit von 24 Stunden oder dem Wert einer Cache-Anweisung (sofern verfügbar) können Websiteinhaber ihre robots.txt-Datei jederzeit aktualisieren und Crawler überfordern Websites nicht mit robots.txt-Anfragen. Im Fall von HTTP können beispielsweise Cache-Control-Header zum Ermitteln der Caching-Zeit verwendet werden.
  4. In der Spezifikation ist jetzt festgelegt, dass bekanntermaßen nicht zugelassene Seiten für einen längeren Zeitraum nicht gecrawlt werden, wenn eine zuvor zugängliche robots.txt-Datei aufgrund eines Serverfehlers nicht mehr zugänglich ist.

Außerdem haben wir die angereicherte Backus-Naur-Form im Internetentwurf aktualisiert, um die Syntax der robots.txt-Datei besser zu definieren, was für Entwickler beim Parsen der Zeilen wichtig ist.

RFC steht für „Request for Comments“ und wir meinen es auch so: Wir haben den Entwurf an die IETF hochgeladen, um Feedback von Entwicklern zu erhalten, die auf die Grundbausteine des Internets achten. Wir möchten Weberstellern ermöglichen, uns mitzuteilen, wie viele Informationen sie für den Googlebot und somit für die Anzeige in der Google Suche verfügbar machen möchten. Es ist uns wichtig, es richtig zu machen.

Wenn ihr uns einen Kommentar hinterlassen, uns Fragen stellen oder einfach Hallo sagen wollt, könnt ihr uns über Twitter und über unsereWebmaster-Community (offline und online) kontaktieren.