Robots Exclusion Standard
Nach der Übereinkunft des Robots-Exclusion-Standard-Protokolls liest ein Webcrawler (Robot) beim Auffinden einer Webseite zuerst die Datei robots.txt
(kleingeschrieben) im Stammverzeichnis („root“) einer Domain. In dieser Datei kann festgelegt werden, ob und wie die Webseite von einem Webcrawler besucht werden darf. Website-Betreiber haben so die Möglichkeit, ausgesuchte Bereiche ihrer Website für (bestimmte) Suchmaschinen zu sperren. Das Protokoll ist rein hinweisend und ist auf die Mitarbeit des Webcrawlers angewiesen. Man spricht hier auch von „freundlichen“ Webcrawlern. Ein Ausgrenzen bestimmter Teile einer Website durch das Protokoll garantiert keine Geheimhaltung, dazu sind Seiten oder Unterverzeichnisse eines Servers durch HTTP-Authentifizierung, eine Access Control List (ACL) oder einen ähnlichen Mechanismus zu schützen. Manche Suchmaschinen zeigen die vom Webcrawler gefundenen und zu sperrenden URLs trotzdem in den Suchergebnisseiten an, jedoch ohne Beschreibung der Seiten.
Das Protokoll wurde 1994 von einer unabhängigen Gruppierung entwickelt, ist inzwischen jedoch allgemein anerkannt und kann als Quasi-Standard betrachtet werden. Anfang Juni 2008 bekannten sich Google,[1] Microsoft und Yahoo zu einigen Gemeinsamkeiten.[2]
Ein zwingendes Verbot der Indizierung wird durch den Einsatz von robots.txt aber nicht erreicht, auch wenn seriöse Webcrawler die Anweisungen befolgen.[3]
Aufbau
Die Datei robots.txt ist eine Textdatei in einem einfach lesbaren Format. Jede Zeile besteht aus zwei Feldern, die durch einen Doppelpunkt getrennt werden.
User-agent: Sidewinder
Disallow: /
Die erste Zeile beschreibt den Webcrawler (hier: User-agent
), an den sich die darauf folgenden Regeln richten. Es darf beliebig viele solcher Blöcke geben. Webcrawler lesen die Datei von oben nach unten und halten an, wenn sich ein Block auf sie bezieht. Für jede URL, die ausgeschlossen ist, existiert eine eigene Zeile mit dem Disallow
-Befehl. Leerzeilen sind nur oberhalb von User-agent
-Zeilen erlaubt. Sie trennen die Blöcke voneinander. Einzeilige, mit einem Rautezeichen (#) beginnende Kommentare sind an jeder Stelle möglich. Sie dienen der Übersichtlichkeit und werden vom Webcrawler ignoriert.
Anweisung | Beschreibung | Beispiel | Funktion |
---|---|---|---|
User-agent: |
Spezifizierung des Webcrawlers | User-agent: Sidewinder |
Gilt nur für den Webcrawler namens „Sidewinder“. |
User-agent: * |
Wildcard für User-agent; gilt für alle Webcrawler. | ||
Disallow: |
Auslesen nicht gestatten | Disallow: |
Kein Ausschluss; die komplette Website darf durchsucht werden. |
Disallow: / |
Die komplette Website darf nicht durchsucht werden. | ||
Disallow: /Temp/ Disallow: /default.html |
Das Verzeichnis „Temp“ und die Datei „default.html“ dürfen nicht durchsucht werden. | ||
Disallow: /default |
Alle Dateien und Verzeichnisse, die mit „default“ beginnen, werden nicht durchsucht z. B. „default.html“, „default.php“, „default-page.html“, „defaultfolder/“, und so weiter. Ein Verbot von „default.html“ verbietet also auch z. B. „default.html.php“ oder „default.html/“, auch wenn diese Konstellation eher selten vorkommen dürfte. | ||
$ |
Zeilenende-Anker (nur Googlebot, Yahoo! Slurp, msnbot) | Disallow: /*.pdf$ |
Alle PDF-Dateien werden ignoriert. |
? |
URLs mit '?' behandeln (nur Googlebot) | Disallow: /*? |
Alle URLs, die ein '?' enthalten, werden ignoriert. |
Allow: /*?$ |
Alle URLs, die mit einem '?' enden, werden erlaubt. | ||
Allow: |
Auslesen erlauben (nur Ask.com, Googlebot, Yahoo! Slurp, msnbot) | Disallow: / Allow: /public/ |
Nur das Verzeichnis „public“ darf durchsucht werden, der Rest nicht. |
Crawl-delay: |
Auslesegeschwindigkeit (nur msnbot, Yahoo! Slurp, [bis 22. Feb. 2018 auch Yandex[4][5]]) | Crawl-delay: 42 |
Nur alle 42 Sekunden darf eine neue Seite zum Auslesen aufgerufen werden. |
Sitemap: |
URL der Sitemap (nur Googlebot, Yahoo! Slurp, msnbot, Ask.com) | Sitemap: http://example.com/sitemap.xml |
Die Sitemap gemäß dem Sitemap-Protokoll liegt unter der angegebenen Adresse. |
Beispiele
# robots.txt für example.com
# Diese Webcrawler schließe ich aus
User-agent: Sidewinder
Disallow: /
User-agent: Microsoft.URL.Control
Disallow: /
# Diese Verzeichnisse/Dateien sollen nicht
# durchsucht werden
User-agent: *
Disallow: /default.html
Disallow: /Temp/ # diese Inhalte werden von Suchmaschinen nicht neu erfasst; ob bereits zuvor erfasste Inhalte entfernt werden, ist undefiniert
Disallow: /Privat/Familie/Geburtstage.html # Nicht geheim, sollen aber nicht von Suchmaschinen gecrawlt werden.
Mit den folgenden Befehlen wird allen Webcrawlern das Abrufen der kompletten Website erlaubt.
User-agent: *
Disallow:
Mit den folgenden Befehlen wird allen Webcrawlern das Abrufen der kompletten Website verboten. Die Indexierung des Inhalts in der Suchmaschine ist dadurch ausgeschlossen, nicht jedoch die Darstellung der URL sowie von Informationen, die nicht von der Seite, sondern aus externen Quellen stammen. Dies gilt auch, wenn die Indexierung auf einzelnen Seiten selbst wieder erlaubt wird, da Webcrawler die Seite gar nicht erst aufrufen.[6]
User-agent: *
Disallow: /
Weiteres Beispiel:
Undokumentiere Anweisungen
Direktiven wie crawl-delay, nofollow, und noindex waren lange Zeit undokumentiert, wurden aber von Websites in der robots.txt verwendet und von Google berücksichtigt. Ende 2019 hat Google angekündigt, diese undokumentierten Anweisen künftig nicht mehr zu nutzen.[7]
Alternativen
Metainformationen
Das Indexieren durch Webcrawler kann man auch durch Meta-Elemente im HTML-Quelltext einer Webseite ablehnen.[8] Auch Meta-Elemente sind rein hinweisend, benötigen die Mitarbeit „freundlicher“ Webcrawler und garantieren keine Geheimhaltung. Soll der Suchroboter die Webseite nicht in den Index der Suchmaschine aufnehmen (noindex) oder den Hyperlinks der Seite nicht folgen (nofollow), kann das in einem Meta-Element wie folgt notiert werden:
<meta name="robots" content="noindex,nofollow" />
In HTML-Dokumenten, für die beides erlaubt sein soll, kann die Angabe entweder weggelassen oder explizit notiert werden:
<meta name="robots" content="all" />
Die Syntax ist kaum offiziell standardisiert, sondern gründet auf übliche Praxis und Akzeptanz durch die Crawler-Entwickler.
Ermutigung | Untersagung | Erhoffte Wirkung |
---|---|---|
all | – | Maximale Aufmerksamkeit schenken |
index | noindex | Diese Seite (nicht) aufnehmen |
follow | nofollow | In der Seite enthaltenen Verlinkungen (nicht) folgen |
archive | noarchive | Seite in die Web-Archivierung (nicht) aufnehmen oder sogar ggf. vorhandene archivierte Versionen eliminieren |
– | noopd | OPD (dmoz): Statt des OPD-Eintrags die Metadaten der aktuellen Seite verwenden.[9] Zukunft wegen vorläufiger Einstellung des Dienstes ungewiss. |
– | noydir | Yahoo (AltaVista): Statt eines vorhandene Yahoo-Eintrags die Metadaten der aktuellen Seite verwenden.[10] Obsolet, da Suchmaschine 2013 eingestellt. |
Statt allgemein an alle Bots zu adressieren:
<meta name="robots" content="noindex,nofollow" />
kann auch versucht werden, bestimmte Bots zu lenken:
<meta name="msnbot" content="nofollow" /> <!-- Microsoft -->
<meta name="GoogleBot" content="noindex" /> <!-- Google -->
<meta name="Slurp" content="noydir" /> <!-- Yahoo -->
humans.txt
Die Datei robots.txt stellt „Robotern“ (in Form von Software/Webcrawler) zusätzliche Informationen über eine Webseite zur Verfügung. In Anlehnung hieran hat Google 2011 die Datei humans.txt eingeführt, die menschlichen Besuchern der Webseite zusätzliche Hintergrundinformationen bieten soll.[11] Diese Datei wird seitdem auch von anderen Webseiten verwendet, um z. B. die Programmierer der Webseite namentlich zu nennen oder die eingesetzte Software zu beschreiben.[12] Google selbst nutzt die Datei für eine kurze Selbstdarstellung und Verweise auf Arbeitsplätze im Unternehmen.[13]
Siehe auch
Literatur
- Ian Peacock: Showing Robots the Door, What is Robots Exclusion Protocol? In: Ariadne, May 1998, Issue 15, Webversion.
Weblinks
- The Web Robots Pages (englisch)
- Robots. Erläuterungen zur Datei robots.txt im SELFHTML-Wiki
- Offizielle Robots.txt Spezifikation von Google.com (englisch)
- spezielle Googlebot Syntax-Erweiterungen – Google.com (englisch)
- A Standard for Robot Exclusion (Memento vom 17. Januar 1999 im Internet Archive) Defactostandardtext von 1999 (englisch)
- ACAP – Automated Content Access Protocol Erweiterung/Weiterentwicklung (englisch)
- Robots – Häufig gestellte Fragen (FAQs) - Hilfe für Search Console
Einzelnachweise
- Verbesserungen des Robots-Exclusion-Protokolls. Auf: Google-Blog Webmaster Zentrale, 10. Juni 2008.
- Everything You Wanted To Know About Blocking Search Engines. Auf: searchengineland.com, 12. Juni 2008.
- Informationen zur robots.txt-Datei - Hilfe für Search Console. Abgerufen am 22. August 2018.
- Using robots.txt. Yandex. Abgerufen am 19. Februar 2021.
- The Crawl-delay directive. Yandex. Abgerufen am 19. Februar 2021.
- Spezifikationen für Robots-Meta-Tags und X-Robots-Tag-HTTP-Header. Google
- A note on unsupported rules in robots.txt. In: Official Google Webmaster Central Blog. Abgerufen am 2. Oktober 2020 (englisch).
- Robots and the META element. W3C Recommendation
- xovi.de
- meta-tags.de
- Google führt die humans.txt ein. In: GWB. 7. Mai 2011, abgerufen am 2. August 2016.
- Wir sind Menschen, nicht Maschinen. In: humanstxt.org. Abgerufen am 2. August 2016.
- Google: humans.txt von google.com. Google, abgerufen am 2. August 2016.