Was ist Robots.txt? | Wie eine Robots.txt-Datei funktioniert

Eine robots.txt-Datei enthält Anweisungen für Bots, die ihnen mitteilen, auf welche Webseiten sie zugreifen können und auf welche nicht. Robots.txt-Dateien sind für Webcrawler von Suchmaschinen wie Google am relevantesten.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Was ist eine robots.txt-Datei und was macht sie
  • Wie interagieren Bots mit einer robots.txt-Datei
  • Die in einer robots.txt-Datei verwendeten Protokolle, einschließlich des Robots Exclusion Protocol und der Sitemaps

Ähnliche Inhalte


Möchten Sie noch mehr erfahren?

Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!

Lesen Sie die Cloudflare Datenschutzrichtlinie, um zu erfahren, wie wir Ihre persönlichen Daten sammeln und verarbeiten.

Link zum Artikel kopieren

Schützen Sie sich mit Cloudflare vor Bot-Angriffen wie Credential Stuffing und Content Scraping

Was ist robots.txt?

Das OSI-Modell

Eine robots.txt-Datei besteht aus einer Reihe von Anweisungen für Bots. Diese Datei ist in den Quelldateien der meisten Websites enthalten. Robots.txt-Dateien sind hauptsächlich zum Verwalten der Aktivitäten von guten Bots wie Webcrawlern gedacht, da schlechte Bots die Anweisungen wahrscheinlich nicht befolgen werden.

Stellen Sie sich eine robots.txt-Datei als einen „Verhaltenskodex“-Aushang vor, der in einem Fitnessstudio, einer Bar oder einem Gemeindezentrum an der Wand angebracht ist: Der Aushang selbst hat keine Befugnis, die aufgeführten Regeln durchzusetzen, aber „gute“ Besucher werden die Regeln befolgen, während „schlechte“ Besucher die Regeln wahrscheinlich brechen, so dass sie ausgeschlossen werden müssen.

Ein Bot ist ein automatisiertes Computerprogramm, das mit Websites und Anwendungen interagiert. Es gibt gute und schlechte Bots und eine Art von gutem Bot wird als Webcrawler-Bot bezeichnet. Diese Bots „crawlen“ Webseiten und indizieren den Inhalt, damit er in Suchmaschinenergebnissen angezeigt wird. Eine robots.txt-Datei hilft bei der Verwaltung der Aktivitäten dieser Webcrawler, damit sie den Webserver, auf dem sich die Website befindet, oder Indexseiten, die nicht für die öffentliche Ansicht bestimmt sind, nicht überfordern.

Wie funktioniert eine robots.txt-Datei?

Eine robots.txt-Datei ist nur eine Textdatei ohne HTML-Markup-Code (daher die Erweiterung .txt). Die robots.txt-Datei wird wie jede andere Datei auf der Website auf dem Webserver gehostet. Man kann sich die robots.txt-Datei für eine bestimmte Website normalerweise anzeigen lassen, indem man die vollständige URL für die Startseite eingibt und anschließend /robots.txt hinzufügt, z. B. https://www.cloudflare.com/robots.txt. Die Datei ist mit keiner anderen Stelle auf der Site verknüpft, sodass Benutzer normalerweise nicht darauf stoßen werden, aber die meisten Webcrawler-Bots suchen als erstes nach dieser Datei, bevor sie den Rest der Site crawlen.

Eine robots.txt-Datei enthält zwar Anweisungen für Bots, kann die Anweisungen jedoch nicht erzwingen. Ein guter Bot, z. B. ein Webcrawler oder ein Newsfeed-Bot, versucht vor dem Anzeigen aller anderen Seiten der Domain, die Datei robots.txt zu suchen und befolgt die Anweisungen. Ein schlechter Bot ignoriert die robots.txt-Datei entweder ganz oder verarbeitet sie, um die verbotenen Webseiten zu finden.

Ein Webcrawler-Bot folgt den spezifischsten Anweisungen in der Datei robots.txt. Wenn die Datei widersprüchliche Befehle enthält, folgt der Bot dem detaillierteren Befehl.

Wichtig ist, dass alle Subdomains eine eigene robots.txt-Datei benötigen. So verfügt beispielsweise www.cloudflare.com über eine eigene Datei, aber alle Cloudflare-Subdomains (blog.cloudflare.com, community.cloudflare.com usw.) benötigen ebenfalls eine eigene Datei.

Welche Protokolle werden in einer robots.txt-Datei verwendet?

In Networking ist ein Protokoll ein Format zum Bereitstellen von Anweisungen oder Befehlen. Robots.txt-Dateien verwenden verschiedene Protokolle. Das Hauptprotokoll heißt Robots Exclusion Protocol. Mit diesem Protokoll können Sie Bots mitteilen, welche Webseiten und Ressourcen vermieden werden sollen. Anweisungen, die für dieses Protokoll formatiert wurden, sind in der Datei robots.txt enthalten.

Das andere Protokoll, das für robots.txt-Dateien verwendet wird, ist das Sitemaps-Protokoll. Man kann es als Robotereinschlussprotokoll betrachten. Sitemaps zeigen einem Webcrawler, welche Seiten gecrawlt werden können. Dadurch stellen sie sicher, dass ein Crawler-Bot keine wichtigen Seiten übersieht.

Beispiel einer robots.txt-Datei

Hier ist die robots.txt-Datei für www.cloudflare.com:

Das OSI-Modell

Nachfolgend erklären wir, was die einzelnen Elemente bedeuten.

Was ist ein User Agent? Was bedeutet „User-Agent: *“?

Alle Personen oder Programme, die im Internet aktiv sind haben einen „User Agent“ oder einen zugewiesenen Namen. Für menschliche Benutzer umfasst dies Informationen wie den Browsertyp und die Betriebssystemversion, jedoch keine personenbezogenen Informationen. Es hilft Websites dabei, Inhalte anzuzeigen, die mit dem System des Benutzers kompatibel sind. Bei Bots hilft der User Agent den Website-Administratoren (theoretisch), zu erkennen, welche Art von Bots die Website crawlen.

In einer robots.txt-Datei können Website-Administratoren bestimmte Anweisungen für bestimmte Bots bereitstellen, indem sie unterschiedliche Anweisungen für Bot-User-Agents schreiben. Wenn ein Administrator beispielsweise möchte, dass eine bestimmte Seite in den Google-Suchergebnissen angezeigt wird, jedoch nicht in der Bing-Suche, kann er zwei Befehlssätze in die robots.txt-Datei aufnehmen: einen Satz beginnend mit „User-agent: Bingbot“ und einen Satz beginnend mit „User-agent: Googlebot“.

Im obigen Beispiel hat Cloudflare „User-Agent: *“ in die robots.txt-Datei aufgenommen. Das Sternchen steht für einen „Platzhalter-“-User-Agent. Das heißt, dass die Anweisungen für jeden Bot gelten, nicht nur für einen bestimmten Bot.

Häufige Namen von Suchmaschinen-Bot-User-Agents sind:

Google:

  • Googlebot
  • Googlebot-Image (für Bilder)
  • Googlebot-News (für Nachrichten)
  • Googlebot-Video (für Videos)

Bing

  • Bingbot
  • MSNBot-Media (für Bilder und Videos)

Baidu

  • Baiduspider

Wie funktionieren „Disallow“-Befehle in einer robots.txt-Datei?

Der „Disallow“-Befehl tritt im Robots Exclusion Protocol am häufigsten auf. Er weist Bots an, nicht auf die Webseite oder eine Reihe von Webseiten zuzugreifen, die nach dem Befehl aufgezählt sind. Als „disallowed“ markierte Seiten sind nicht unbedingt „versteckt“ – sie sind nur für den durchschnittlichen Google- oder Bing-Nutzer nicht nützlich und werden ihnen daher nicht angezeigt. Wenn ein Benutzer weiß, wo man diese Seiten findet, kann er meistens immer noch zu diesen Seiten navigieren.

Der „Disallow“-Befehl kann auf verschiedene Arten verwendet werden. Oben werden einige davon angezeigt.

Eine Datei blockieren (mit anderen Worten eine bestimmte Webseite)

Würde Cloudflare beispielsweise verhindern wollen, dass Bots unseren „Was ist ein Bot?“-Artikel crawlen, würde der Befehl wie folgt aussehen:

Disallow: /learning/bots/what-is-a-bot/

Nach dem „Disallow“-Befehl steht der Teil der Webseiten-URL, der nach der Homepage folgt – in diesem Fall „www.cloudflare.com“. Mit diesem Befehl greifen gute Bots nicht auf https://www.cloudflare.com/learning/bots/what-is-a-bot/ zu und die Seite wird nicht in den Suchmaschinenergebnissen angezeigt.

Ein Verzeichnis blockieren

Manchmal ist es effizienter, mehrere Seiten gleichzeitig zu blockieren, anstatt sie alle einzeln aufzulisten. Wenn sich alle im selben Bereich der Website befinden, kann eine robots.txt-Datei einfach das Verzeichnis blockieren, in dem sie enthalten sind.

Ein Beispiel von oben ist:

Disallow: /__mesa/

Das bedeutet, dass alle im __mesa-Verzeichnis enthaltenen Seiten nicht gecrawlt werden sollten.

Vollzugriff zulassen

Ein solcher Befehl würde wie folgt aussehen:

Disallow:

Dies teilt Bots mit, dass sie die gesamte Website durchsuchen können, da kein Teil davon unzulässig ist.

Die gesamte Website vor Bots verstecken

Disallow: /

Die „ / “ stellt hier die „Wurzel“ in einer Hierarchie der Website oder die Seite dar. Von ihr aus verzweigen alle anderen Seiten, sodass sie die Homepage und alle von ihr aus verknüpften Seiten enthält. Mit diesem Befehl können Suchmaschinen-Bots die Website überhaupt nicht crawlen.

Mit anderen Worten, ein einzelner Schrägstrich kann eine ganze Website aus dem durchsuchbaren Internet entfernen!

Welche anderen Befehle gehören zum Robots Exclusion Protocol?

Allow: Wie zu erwarten, teilt der Befehl „Allow“ Bots mit, dass sie auf eine bestimmte Webseite oder ein bestimmtes Verzeichnis zugreifen dürfen. Dieser Befehl ermöglicht es Bots, eine bestimmte Webseite zu erreichen, während der Rest der Webseiten in der Datei nicht zugelassen wird. Nicht alle Suchmaschinen erkennen diesen Befehl.

Crawling-Verzögerung: Der Crawling-Verzögerungsbefehl soll verhindern, dass Suchmaschinen-Spider-Bots einen Server überfordern. Hier können Administratoren angeben, wie viele Millisekunden der Bot zwischen den einzelnen Anfragen warten soll. Hier ist ein Beispiel für einen Crawling-Verzögerungsbefehl zum Warten von acht Millisekunden:

Crawl-delay: 8

Google erkennt diesen Befehl nicht an, andere Suchmaschinen jedoch schon. Für Google können Administratoren die Crawling-Häufigkeit für ihre Website in der Google Search Console ändern.

Was ist das Sitemaps-Protokoll? Warum ist es in robots.txt enthalten?

Das Sitemaps-Protokoll hilft Bots zu wissen, was sie beim Crawlen einer Website berücksichtigen sollen.

Eine Sitemap ist eine XML-Datei, die folgendermaßen aussieht:

Beispiel für eine Sitemap

Es ist eine maschinenlesbare Liste aller Seiten einer Website. Über das Sitemaps-Protokoll können Links zu diesen Sitemaps in die Datei robots.txt aufgenommen werden. Das Format lautet: „Sitemaps:“ gefolgt von der Webadresse der XML-Datei. In der obigen Datei Cloudflare robots.txt sehen Sie mehrere Beispiele.

Während das Sitemaps-Protokoll sicherstellt, dass Web-Spider-Bots beim Crawlen einer Website nichts verpassen, folgen die Bots dennoch ihrem typischen Crawling-Prozess. Sitemaps zwingen Crawler-Bots nicht dazu, Webseiten anders zu priorisieren.

In welcher Beziehung steht robots.txt zum Bot-Management?

Bots-Management ist wichtig, um eine Website oder Anwendung am Laufen zu halten. Denn selbst eine gute Bot-Aktivität kann einen Ursprungsserver überfordern und eine Website verlangsamen oder zum Abstürzen bringen. Eine gut aufgebaute robots.txt-Datei sorgt dafür, dass eine Website für SEO optimiert bleibt und behält gute Bot-Aktivität unter Kontrolle.

Wenn es um das Managen böswilligen Bot-Traffics geht, kann eine robots.txt-Datei jedoch nicht viel ausrichten. Eine Bot-Management-Lösung wie Cloudflare Bot Management oder der Super Bot Fight Mode kann dabei helfen, böswillige Bot-Aktivitäten einzudämmen, ohne dabei wichtige Bots wie Webcrawler zu beeinträchtigen.

Robots.txt Easter Eggs

Gelegentlich enthält eine robots.txt-Datei auch ein Easter Egg – witzige Nachrichten, die die Entwickler aufgenommen haben, weil sie wissen, dass Benutzer diese Dateien selten zu sehen kriegen. Zum Beispiel steht in der YouTube robots.txt-Datei: „Created in the distant future (the year 2000) after the robotic uprising of the mid 90's which wiped out all humans.“ Die Cloudflare robots.txt-Datei bittet: „Dear robot, be nice.“


#    .__________________________.
#    | .___________________. |==|
#    | | ................. | |  |
#    | | ::[ Dear robot ]: | |  |
#    | | ::::[ be nice ]:: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | | ,|
#    | !___________________! |(c|
#    !_______________________!__!
#   /                            \
#  /  [][][][][][][][][][][][][]  \
# /  [][][][][][][][][][][][][][]  \
#(  [][][][][____________][][][][]  )
# \ ------------------------------ /
#  \______________________________/

Google hat übrigens eine „humans.txt“-Datei unter: https://www.google.com/humans.txt