Crawling infrastructure

Wie Google die robots.txt-Spezifikation interpretiert

Die automatisierten
Crawler von Google unterstützen das
Robots Exclusion Protocol (REP).
Das bedeutet, dass Google-Crawler vor dem Crawlen einer Website die robots.txt-Datei der Website herunterladen und analysieren, um Informationen darüber zu extrahieren, welche Teile der Website gecrawlt werden dürfen. Das REP gilt nicht für Google-Crawler, die von Nutzern gesteuert werden (zum Beispiel Feed-Abonnements), oder Crawler, die zur Erhöhung der Nutzersicherheit verwendet werden (zum Beispiel Malware-Analyse).

Diese Seite beschreibt die Interpretation des REP durch Google. Den Originalstandard finden Sie unter
RFC 9309.

Wie Google die robots.txt-Spezifikation interpretiert

Was ist eine robots.txt-Datei

Wenn Sie nicht möchten, dass Crawler auf Bereiche Ihrer Website zugreifen, können Sie eine robots.txt-Datei mit entsprechenden Regeln erstellen. Eine robots.txt-Datei ist eine Textdatei, die Regeln darüber enthält, welche Crawler auf welche Teile einer Website zugreifen dürfen. Die robots.txt-Datei für example.com kann beispielsweise so aussehen:

Wenn Sie neu bei robots.txt sind, beginnen Sie mit unserer
Einführung in robots.txt. Sie finden auch
Tipps zum Erstellen einer robots.txt-Datei.

Dateispeicherort und Gültigkeitsbereich

Sie müssen die robots.txt-Datei im Stammverzeichnis einer Website über ein unterstütztes Protokoll platzieren. Die URL für die robots.txt-Datei unterscheidet (wie andere URLs auch) zwischen Groß- und Kleinschreibung. Bei der Google Suche sind die unterstützten Protokolle HTTP, HTTPS und FTP. Unter HTTP und HTTPS rufen Crawler die robots.txt-Datei mit einer nicht-bedingten HTTP- GET -Anfrage ab; unter FTP verwenden Crawler einen Standard- RETR (RETRIEVE) -Befehl mit anonymem Login.

Wie Google die robots.txt-Spezifikation interpretiert — 2

Die in der robots.txt-Datei aufgeführten Regeln gelten nur für den Host, das Protokoll und die Portnummer, auf denen die robots.txt-Datei gehostet wird.

Beispiele für gültige robots.txt-URLs

Die folgende Tabelle enthält Beispiele für robots.txt-URLs und die URL-Pfade, für die sie gültig sind. Spalte eins enthält die URL einer robots.txt-Datei und Spalte zwei enthält Domains, für die diese robots.txt-Datei gelten würde bzw. nicht gelten würde.

Robots.txt-URL-Beispiele
https://example.com/robots.txt

Dies ist der Regelfall. Sie ist nicht gültig für andere Subdomains, Protokolle oder Portnummern. Sie ist gültig für alle Dateien in allen Unterverzeichnissen auf demselben Host, Protokoll und derselben Portnummer.

Gültig für:

  • https://example.com/
  • https://example.com/folder/file

Nicht gültig für:

  • https://other.example.com/
  • http://example.com/
  • https://example.com:8181/
https://www.example.com/robots.txt

Eine robots.txt auf einer Subdomain ist nur für diese Subdomain gültig.

Gültig für:
https://www.example.com/

Nicht gültig für:

  • https://example.com/
  • https://shop.www.example.com/
  • https://www.shop.example.com/
https://example.com/folder/robots.txtKeine gültige robots.txt-Datei. Crawler suchen nicht in Unterverzeichnissen nach robots.txt-Dateien.
https://www.exämple.com/robots.txt

IDNs entsprechen ihren Punycode-Versionen. Siehe auch
RFC 3492.

Gültig für:

  • https://www.exämple.com/
  • https://xn--exmple-cua.com/

Nicht gültig für:
https://www.example.com/

ftp://example.com/robots.txt

Gültig für:
ftp://example.com/

Nicht gültig für:
https://example.com/

https://212.96.82.21/robots.txt

Eine robots.txt mit einer IP-Adresse als Hostname ist nur für das Crawling dieses Hostnamens mit dieser IP-Adresse gültig. Sie gilt nicht automatisch für alle Websites, die unter dieser IP-Adresse gehostet werden (obwohl die robots.txt-Datei möglicherweise gemeinsam genutzt wird, in welchem Fall sie auch unter dem gemeinsamen Hostnamen verfügbar wäre).

Gültig für:
https://212.96.82.21/

Nicht gültig für:
https://example.com/ (selbst wenn gehostet auf 212.96.82.21)

https://example.com:443/robots.txt

Standard-Portnummern (80 für HTTP, 443 für HTTPS,
21 für FTP) entsprechen ihren Standard-Hostnamen.

Gültig für:

  • https://example.com:443/
  • https://example.com/

Nicht gültig für:
https://example.com:444/

https://example.com:8181/robots.txt

Robots.txt-Dateien auf Nicht-Standard-Portnummern sind nur für Inhalte gültig, die über diese Portnummern bereitgestellt werden.

Gültig für:
https://example.com:8181/

Nicht gültig für:
https://example.com/

Fehlerbehandlung und HTTP-Statuscodes

Beim Anfordern einer robots.txt-Datei beeinflusst der HTTP-Statuscode der Serverantwort, wie die robots.txt-Datei von Googles Crawlern verwendet wird. Die folgende Tabelle fasst zusammen, wie Googlebot mit robots.txt-Dateien bei verschiedenen HTTP-Statuscodes umgeht.

Fehlerbehandlung und HTTP-Statuscodes
2xx (Erfolg)HTTP-Statuscodes, die einen Erfolg signalisieren, veranlassen die Crawler von Google, die vom Server bereitgestellte robots.txt-Datei zu verarbeiten.
3xx (Weiterleitung)

Google folgt mindestens fünf Weiterleitungssprüngen (Redirect Hops) gemäß der Definition in
RFC 1945 und stoppt dann und behandelt dies als 404 für die robots.txt-Datei. Dies gilt auch für alle unzulässigen URLs in der Weiterleitungskette, da der Crawler aufgrund der Weiterleitungen keine Regeln abrufen konnte.

Google folgt keinen logischen Weiterleitungen in robots.txt-Dateien (Frames, JavaScript oder Meta-Refresh-Weiterleitungen).

4xx (Client-Fehler)

Googles Crawler behandeln alle 4xx Fehler, ausser 429, so als gäbe es keine gültige robots.txt-Datei. Dies bedeutet, dass Google davon ausgeht, dass keine Crawl-Einschränkungen vorliegen.

5xx (Serverfehler)

Wenn Google eine robots.txt-Datei findet, diese aber nicht abrufen kann, verhält sich Google wie folgt:

  1. In den ersten 12 Stunden stoppt Google das Crawlen der Website, versucht aber weiterhin, die robots.txt-Datei abzurufen.
  2. Kann Google keine neue Version abrufen, verwendet Google in den nächsten 30 Tagen die letzte funktionierende Version und versucht weiterhin, eine neue Version abrufen. Ein 503 (Dienst nicht verfügbar)
    Fehler führt zu recht häufigen Wiederholungen. Wenn keine gecachte Version verfügbar ist,
    geht Google davon aus, dass keine Crawl-Einschränkungen vorliegen.
  3. Wenn die Fehler nach 30 Tagen immer noch nicht behoben sind:
    • Wenn die Website für Google grundsätzlich erreichbar ist, verhält sich Google so, als gäbe es keine
      robots.txt-Datei (prüft aber weiterhin auf eine neue Version).
    • Wenn die Website allgemeine Verfügbarkeitsprobleme hat, stoppt Google das Crawlen der Website,
      während weiterhin periodisch eine robots.txt-Datei angefordert wird.
Andere FehlerEine robots.txt-Datei, die aufgrund von DNS- oder Netzwerkproblemen (wie Zeitüberschreitungen, ungültigen Antworten, zurückgesetzten oder unterbrochenen Verbindungen und HTTP-Chunking-Fehlern) nicht abgerufen werden kann, wird wie folgt behandelt: Serverfehler.

Caching

Google zwischenspeichert (cacht) den Inhalt der robots.txt-Datei im Allgemeinen für bis zu 24 Stunden, kann ihn jedoch in Situationen, in denen eine Aktualisierung der gecachten Version nicht möglich ist (z. B. aufgrund von Zeitüberschreitungen oder 5xx Fehlern), länger zwischenspeichern. Die gecachte Antwort kann von verschiedenen Crawlern gemeinsam genutzt werden.
Google kann die Cache-Lebensdauer basierend auf
max-age Cache-Control
HTTP-Header.

Dateiformat

Die robots.txt-Datei muss eine
UTF-8 kodierte Plain-Text-Datei sein und die Zeilen müssen getrennt sein durch CR, CR/LFoder
LF.

Google ignoriert ungültige Zeilen in robots.txt-Dateien, einschließlich der Unicode
Byte Order Mark
(BOM) am Anfang der robots.txt-Datei, und verwendet nur gültige Zeilen. Wenn beispielsweise der heruntergeladene Inhalt HTML statt robots.txt-Regeln ist, versucht Google, den Inhalt zu parsen und Regeln zu extrahieren und ignoriert alles andere.

Ähnlich verhält es sich, wenn die Zeichenkodierung der robots.txt-Datei nicht UTF-8 ist: Google ignoriert möglicherweise Zeichen, die nicht zum UTF-8-Bereich gehören, wodurch robots.txt-Regeln möglicherweise ungültig werden.

Google erzwingt ein Dateigrößenlimit für robots.txt von 500
Kibibytes (KiB). Inhalt, der nach der maximalen Dateigröße kommt, wird ignoriert. Sie können die Größe der robots.txt-Datei reduzieren, indem Sie Regeln zusammenlegen, die ansonsten zu einer zu großen robots.txt-Datei führen würden. Platzieren Sie beispielsweise ausgeschlossenes Material in einem separaten Verzeichnis.

Syntax

Eine gültige robots.txt-Zeile besteht aus einem Feld, einem Doppelpunkt und einem Wert. Feldnamen sind Groß-/Kleinschreibung-unabhängig (zum Beispiel User-agent und user-agent werden gleich behandelt). Leerzeichen sind optional, werden aber zur Verbesserung der Lesbarkeit empfohlen. Leerzeichen am Anfang und am Ende der Zeile werden ignoriert. Um Kommentare einzufügen, stellen Sie Ihrem Kommentar das
# Zeichen voran. Denken Sie daran, dass alles nach dem # Zeichen ignoriert wird. Das allgemeine Format ist
<field>:<value><#optional-comment>.

Google unterstützt die folgenden Felder (andere Felder wie crawl-delay werden nicht unterstützt):

  • user-agent: identifiziert, für welchen Crawler die Regeln gelten.
  • allow: ein URL-Pfad, der gecrawlt werden darf.
  • disallow: ein URL-Pfad, der nicht gecrawlt werden darf.
  • sitemap: die vollständige URL einer Sitemap.

Die allow und disallow Felder werden auch als Regeln (auch bekannt als
Direktiven) bezeichnet. Diese Regeln sind immer in der Form von angegeben
Regel: [path] wo [path] ist optional. Standardmäßig gibt es keine Einschränkungen für das Crawling für die designierten Crawler. Crawler ignorieren Regeln ohne ein
[path].

Der [path] Wert ist, falls angegeben, relativ zum Stammverzeichnis der Website, von der die robots.txt-Datei abgerufen wurde (unter Verwendung desselben Protokolls, derselben Portnummer, desselben Hosts und derselben Domainnamen). Der Pfadwert muss beginnen mit / um das Stammverzeichnis zu bestimmen, und der Wert unterscheidet zwischen Groß- und Kleinschreibung. Erfahren Sie mehr über
URL-Abgleich basierend auf Pfadwerten.

user-agent

Die user-agent Zeile identifiziert, für welche Crawler-Regeln gelten. Siehe
Die Crawler und user-agent-Strings von Google
für eine umfassende Liste von user-agent-Strings, die Sie in Ihrer robots.txt-Datei verwenden können.

Sowohl die user-agent Feldname als auch dessen Wert unterscheiden nicht zwischen Groß- und Kleinschreibung.

disallow

Die disallow Regel gibt Pfade an, auf die von den Crawlern nicht zugegriffen werden darf, die durch die user-agent Zeile identifiziert werden, mit der die disallow Regel gruppiert ist.
Crawler ignorieren die Regel ohne Pfad.

Google kann den Inhalt von Seiten, die für das Crawling gesperrt sind, nicht indexieren, aber es kann dennoch die URL indexieren und sie ohne Snippet in den Suchergebnissen anzeigen. Erfahren Sie, wie Sie
die Indexierung blockieren.

Der Feldname (disallow) unterscheidet nicht zwischen Groß- und Kleinschreibung, aber sein Wert unterscheidet zwischen Groß- und Kleinschreibung.

Verwendung:

allow

Die allow Regel gibt Pfade an, auf die von den designierten Crawlern zugegriffen werden darf. Wenn kein Pfad angegeben ist, wird die Regel ignoriert.

Der Feldname (allow) unterscheidet nicht zwischen Groß- und Kleinschreibung, aber der Wert ist case-sensitive.

Verwendung:

sitemap

Google, Bing und andere große Suchmaschinen unterstützen das sitemap Feld in
robots.txt, wie definiert durch sitemaps.org.

Der Feldname (sitemap) unterscheidet nicht zwischen Groß- und Kleinschreibung, aber der Wert ist case-sensitive.

Verwendung:

Das [absoluteURL] Line zeigt auf den Speicherort einer Sitemap- oder Sitemap-Index-Datei. Sie muss eine voll qualifizierte URL sein, einschließlich Protokoll und Host, und muss nicht URL-codiert sein. Die URL muss sich nicht auf demselben Host befinden wie die robots.txt-Datei. Sie können mehrere sitemap Felder angeben, ohne Begrenzung der Anzahl von Sitemaps, die Sie einbinden können. Das Sitemap-Feld ist an keinen bestimmten User-Agent gebunden und kann von allen Crawlern befolgt werden, sofern es nicht für das Crawling gesperrt ist.

Zum Beispiel:

Gruppierung von Zeilen und Regeln

Sie können Regeln, die für mehrere User-Agents gelten, gruppieren, indem Sie
user-agent Zeilen für jeden Crawler wiederholen.

Zum Beispiel:

In diesem Beispiel gibt es vier verschiedene Regelgruppen:

  • Eine Gruppe für den User-Agent “a”.
  • Eine Gruppe für den User-Agent “b”.
  • Eine Gruppe für sowohl “e” als auch “f” User-Agents.
  • Eine Gruppe für den User-Agent “h”.

Für die technische Beschreibung einer Gruppe siehe
Abschnitt 2.1 des REP.

Rangfolge für User-Agents

Nur eine Gruppe ist für einen bestimmten Crawler gültig. Die Crawler von Google bestimmen die richtige Regelgruppe, indem sie in der robots.txt-Datei die Gruppe mit dem spezifischsten User-Agent finden, der zum User-Agent des Crawlers passt. Andere Gruppen werden ignoriert. Sämtlicher nicht übereinstimmender Text wird ignoriert (zum Beispiel sind sowohl googlebot/1.2 als auch googlebot* äquivalent zu googlebot). Die Reihenfolge der Gruppen in der robots.txt-Datei ist unerheblich.

Wenn mehr als eine spezifische Gruppe für einen User-Agent deklariert ist, werden alle Regeln aus den Gruppen, die für den spezifischen User-Agent gelten, intern zu einer einzigen Gruppe zusammengefasst. User-Agent-spezifische Gruppen und globale Gruppen (*) werden nicht kombiniert.

Beispiele

Abgleich von User-Agent Feldern

So würden die Crawler die relevante Gruppe auswählen:

Gefolgte Gruppe pro Crawler
Googlebot Newsgooglebot-news folgt Gruppe 1, da Gruppe 1 die spezifischste Gruppe ist.
Googlebot (Web)googlebot folgt Gruppe 3.
Googlebot StorebotStorebot-Google folgt Gruppe 2, da es keine spezifische
Storebot-Google Gruppe gibt.
Googlebot News (beim Crawlen von Bildern)Beim Crawlen von Bildern googlebot-news folgt Gruppe 1.
googlebot-news crawlt die Bilder nicht für Google Images, folgt daher also nur
Gruppe 1.
Otherbot (Web)Andere Google Crawler folgen Gruppe 2.
Otherbot (Nachrichten)Andere Google Crawler, die Nachrichteninhalte crawlen, sich aber nicht als
googlebot-news identifizieren, folgen Gruppe 2. Selbst wenn es einen Eintrag für einen verwandten
Crawler gibt, ist dieser nur gültig, wenn er spezifisch übereinstimmt.

Gruppierung von Regeln

Wenn es in einer robots.txt-Datei mehrere Gruppen gibt, die für einen bestimmten User-Agent relevant sind,
führen die Crawler von Google die Gruppen intern zusammen. Zum Beispiel:

Die Crawler gruppieren die Regeln intern basierend auf dem User-Agent, zum Beispiel:

Andere Regeln als allow, disallowund user-agent werden
vom robots.txt-Parser ignoriert. Das bedeutet, dass der folgende robots.txt-Snippet als
eine Gruppe behandelt wird und somit sowohl user-agent a als auch b betroffen sind von disallow: / rule:

Wenn die Crawler die robots.txt-Regeln verarbeiten, ignorieren sie die sitemap Zeile.
So würden Crawler beispielsweise den vorherigen robots.txt-Ausschnitt verstehen:

URL-Abgleich basierend auf Pfadwerten

Google verwendet den Pfadwert in den allow und disallow Regeln als Grundlage, um zu bestimmen, ob eine Regel auf eine bestimmte URL auf einer Website angewendet wird oder nicht. Dies funktioniert, indem die Regel mit der Pfadkomponente der URL verglichen wird, die der Crawler abzurufen versucht.
Der Pfad in den Regeln kann entweder aus rohen UTF-8-Zeichen oder prozentual codierten UTF-8-Zeichenketten bestehen
(gemäß RFC 3986).
Wie definiert in RFC 9309 Section 2.2.2,
vergleichen die Crawler von Google Regeln mit URLs anhand ihrer prozentual codierten Formen und wandeln rohe UTF-8-Regelpfade automatisch in prozentual codierte Formen um. Das bedeutet zum Beispiel, dass
Disallow: /foo/bar/ツ und Disallow: /foo/bar/%E3%83%84 vom Parser identisch behandelt werden.

Google, Bing und andere große Suchmaschinen unterstützen eine eingeschränkte Form von wildcards für Pfadwerte. Diese Platzhalterzeichen sind:

  • * bezeichnet 0 oder mehr Instanzen eines gültigen Zeichens.
  • $ bezeichnet das Ende der URL.

Die folgende Tabelle zeigt, wie sich die verschiedenen Platzhalterzeichen auf das Parsing auswirken:

Beispielhafte Pfadübereinstimmungen
/Passt zur Root und jeder URL auf niedrigerer Ebene.
/*Äquivalent zu /. Das abschließende Platzhalterzeichen wird ignoriert.
/$Passt nur zur Root. Jede URL auf niedrigerer Ebene ist für das Crawling zulässig.
/fish

Passt zu jedem Pfad, der beginnt mit /fish. Beachten Sie, dass beim Abgleich Groß- und Kleinschreibung berücksichtigt wird.

Passt zu:

  • /fish
  • /fish.html
  • /fish/salmon.html
  • /fishheads
  • /fishheads/yummy.html
  • /fish.php?id=anything

Passt nicht:

  • /Fish.asp
  • /catfish
  • /?id=fish
  • /desert/fish
/fish*

Entspricht: /fish. Das nachgestellte Wildcard-Zeichen wird ignoriert.

Passt:

  • /fish
  • /fish.html
  • /fish/salmon.html
  • /fishheads
  • /fishheads/yummy.html
  • /fish.php?id=anything

Passt nicht:

  • /Fish.asp
  • /catfish
  • /?id=fish
  • /desert/fish
/fish/

Passt zu allem im /fish/ Ordner.

Passt:

  • /fish/
  • /fish/?id=anything
  • /fish/salmon.htm

Passt nicht:

  • /fish
  • /fish.html
  • /animals/fish/
  • /Fish/Salmon.asp
/*.php

Passt auf jeden Pfad, der .php.

enthält.

  • /index.php
  • /filename.php
  • /folder/filename.php
  • /folder/filename.php?parameters
  • /folder/any.php.file.html
  • /filename.php/

Passt nicht:

  • / (selbst wenn es auf /index.php verweist)
  • /windows.PHP
/*.php$

Passt auf jeden Pfad, der endet mit .php.

Passt:

  • /filename.php
  • /folder/filename.php

Passt nicht:

  • /filename.php?parameters
  • /filename.php/
  • /filename.php5
  • /windows.PHP
/fish*.php

Passt auf jeden Pfad, der enthält /fish und .php, in dieser Reihenfolge.

Passt:

  • /fish.php
  • /fishheads/catfish.php?parameters

Passt nicht:

/Fish.PHP

Rangfolge für Regeln

Beim Abgleichen von robots.txt-Regeln mit URLs verwenden Crawler die spezifischste Regel basierend auf der Länge des Regelpfads. Bei widersprüchlichen Regeln, einschließlich solcher mit Platzhaltern, verwendet Google die am wenigsten restriktive Regel.

Die folgenden Beispiele zeigen, welche Regel die Crawler von Google auf eine bestimmte URL anwenden.

Beispielsituationen
https://example.com/page

Anwendbare Regel: allow: /p, da sie spezifischer ist.

https://example.com/folder/page

Anwendbare Regel: allow: /folder, weil Google bei widersprüchlichen Regeln die weniger restriktive Regel verwendet.

https://example.com/page.htm

Anwendbare Regel: disallow: /*.htm, weil der Regelpfad länger ist und mehr Zeichen in der URL abgleicht, wodurch er spezifischer ist.

https://example.com/page.php5

Anwendbare Regel: allow: /page, weil Google bei widersprüchlichen Regeln die weniger restriktive Regel verwendet.

https://example.com/

Anwendbare Regel: allow: /$, weil sie spezifischer ist.

https://example.com/page.htm

Anwendbare Regel: disallow: /, weil die
allow Regel nur für die Root-URL gilt.

Alien Road

So setzen wir das um

The formal specification resolves the arguments that the introductory guide leaves open, particularly around precedence and wildcards. We cite it directly when a developer and an SEO disagree about whether a rule applies.

Verwandte Leistungen

Teilen