Wer sich mit der Erstellung von Webseiten beschäftigt, wird zwangsläufig irgendwann auf die Datei robots.txt stoßen. Was ihr mit dieser Datei machen könnt und was unbedingt darin stehen sollte, erfahrt ihr bei GIGA.
robots.txt – seltsamer Name… Offensichtlich geht es dabei um irgendwelche Roboter. Doch warum braucht man diese Datei überhaupt und was kann sie. Wir erklären euch an ein paar Beispielen, wie ihr damit die „Internet-Roboter“ steuern könnt – zumindest die seriösen. Wir erklären euch auch, was ihr mit den Bots machen könnt, die robots.txt ignorieren.
In HTML5 kann man sogar Browser-Games programmieren:
Was ist robots.txt und was bewirkt die Datei?
Im „Root“, also im Hauptverzeichnis fast jedes Web-Auftritts findet man eine Datei mit dem Namen robots.txt. Sie wurde in der Regel vom Administrator der Web-Seite erstellt und dort abgelegt. Tatsächlich soll sie „Bots“ steuern, die automatischen Crawler verschiedener Suchmaschinen.
Dabei geht es darum, diesen Bots Regeln mitzuteilen, was sie durchsuchen dürfen und was nicht. Welche Dateien sie ansehen dürfen, welche verboten sind und vor allem auch welche Bots erlaubt sind und welche man nicht auf seiner Seite haben will. Außerdem kann man damit auch Anweisungen geben, wieviel Zeit zwischen dem Lesen der einzelnen Dateien vergehen muss, damit schwache Server nicht überlastet werden.
- robots.txt ist eine Datei im Nur-Text-Format.
- Die Datei robots.txt muss im obersten Verzeichnis einer Web-Seite liegen, also etwa unter www.domain.de/robots.txt.
- Seriöse Bots suchen dort danach, lesen sie und befolgen Befehle, die sich speziell an sie richten.
- robots.txt kann den Zugriff auf die Seiten generell erlauben, verbieten oder nur bestimmten Bots den Zugriff genehmigen oder untersagen.
- Wenn ein Bot die Seite gelesen und dort keine speziellen Anweisungen für sich gefunden hat, geht er davon aus, die Seite frei durchsuchen („spidern“) zu dürfen.
Um einen Bot gezielt ansprechen zu können, muss man seinen Namen kennen. Das funktioniert aber nur, wenn dieser Bot robots.txt-Anweisungen überhaupt beachtet. Die Bots der großen Suchmaschinen wie Google (Googlebot), Bing (bingbot) oder Apple (Applebot) tun das. Andere übergeben zwar ihrer Namen und sogar die Adresse einer Infoseite, missachten aber Verbote und Regeln.
Was bewirken die Regeln in robots.txt?
Die Datei robots.txt kennt nur ein paar Regeln. Im offiziellen Standard gibt es nur folgende Befehle:
Befehl | Beispiel | Wirkung |
user-agent | User-agent: googlebot | Der Name eines Crawlers, für den die Regeln gelten sollen. |
allow | allow: / | Kennzeichnet Verzeichnisse, die der Crawler besuchen darf. |
disallow | Disallow: * | Kennzeichnet Verzeichnisse, die der Crawler nicht besuchen darf. |
crawl-delay | crawl-delay: 10 | Der Zeitraum (in Sekunden) den der Crawler zwischen den einzelnen Seiten warten muss. |
sitemap | sitemap: https://domain.de/sitemap.xml | Exakter Ort und Name einer Sitemap. Wenn diese Direktive fehlt, werden Sitemaps im Hauptverzeichnis gesucht. |
Bei den Anweisungen und den Bot-Namen (user-agent) ist es egal, ob ihr sie groß (Disallow) oder klein (disallow) schreibt. Pfad- und Dateinamen müssen allerdings eine eindeutige Schreibweise haben, weil eine Regel
disallow: /fotos/
dem Crawler immer noch den Zugriff auf das Verzeichnis /Fotos/ erlaubt.
User-Agent herausfinden
Wenn ihr die Suchmaschinen-Crawler direkt ansprechen wollt, müsst ihr den Namen herausfinden, auf den sie in robots.txt hören – den „user-agent“.
Diese Kennungen findet ihr in den Logfiles eurer Server, sie lauten zum Beispiel:
Mozilla/5.0 (compatible; <strong>bingbot</strong>/2.0; +http://www.bing.com/bingbot.htm)
Der wichtige Teil in dieser Kennung ist „bingbot“, darauf „hört“ der Crawler, wenn ihr ihn in robots.txt ansprecht.
Hier ein paar alphabetisch geordnete Suchmaschinen und ihre Crawler, die robots.txt beachten:
Suchmaschine | Crawler-Name |
Ahrefs | AhrefsBot |
Apple | Applebot |
Bing |
|
Googlebot | |
Yahoo! | Slurp |
Beispiele für robots.txt-Anweisungen
Ihr müsst immer daran denken: Wenn ein Crawler die Anweisungen ignoriert, haben die besten robots.txt-Regeln keinen Sinn. Falls ihr sie abwehren wollt, müsst ihr sie notfalls in der Datei „.htaccess“ sperren. Außerdem gibt es Bots, die sich als normale Browser ausgeben und solche, die sich als seriöse Bots ausgeben.
Beispiel 1: Zugriff für jeden Bot außer den Googlebot sperren:
User-agent: * | Platzhalter * spricht alle Crawler an |
Disallow: / | Verbietet alles ab dem Hauptverzeichnis |
User-agent: Googlebot | Spricht explizit den Googlebot an |
Allow: / | Erlaubt diesem alle Pfade |
Beispiel 2: Bestimmte Pfade für alle Crawler verbieten:
User-agent: *
Disallow: /fotos/
Disallow: /admin/
Disallow: /stats/
Disallow: /archiv/
Disallow: /plugins/
Beispiel 3: Der Crawler darf nur alle 5 Sekunden auf eine Datei zugreifen:
User-agent: Googlebot
crawl-delay: 5
Beispiel 4: die Sitemap hat einen speziellen Namen und liegt in einem eigenen Verzeichnis:
Sitemap: https://domain.de/pfad/unsere-sitemap.xml
robots.txt-Tricks & -Ratschläge
Zuerst einmal sollte man sich nicht (nur) auf robots.txt verlassen, um zu verhindern, dass bestimmte Inhalte einer Web-Seite in Suchmaschinen auftauchen. Nicht alle Crawler halten sich an die Anweisungen und wenn zum Beispiel eine Web-Seite direkt auf euer Kontaktformular verlinkt, das ihr in robots.txt gesperrt habt, wird es trotzdem indexiert. In so einem Fall nutzt ihr dann besser für solche Seiten einen Meta-Tag im HTML-Code:
<meta name="robots" content="noindex, nofollow ">
In robots.txt kann auch mit „Wildcards“ gearbeitet werden. Den Platzhalter * (für „alles“) haben wir bereits erwähnt. Ihr könnt aber beispielsweise auch den Zugriff auf bestimmte Dateitypen verbieten.
So verbietet ihr das Einlesen aller PDF-Dateien:
Disallow: /*.pdf$
So könnt ihr die Indexierung von URLs verbieten, die einen Parameter haben:
Disallow: /*?
Wenn ihr mehrere Pfade habet, die mit demselben Wort anfangen, könnt ihr auch hier Platzhalter einsetzen. Blockiert etwa /fotos-italien/, /fotos-spanien/ und /fotos-schweden/ mit der Regel:
Disallow: /fotos*/
Wenn ihr übrigens einen Kommentar in robots.txt einfügen wollt, dann schreibt ihn hinter die Raute:
#Hier steht ein Kommentar
Und wenn sich Crawler nicht an die Regeln halten, obwohl sie es behaupten, dann müsst ihr sie anderweitig blockieren. Dazu solltet ihr euch die IP beziehungsweise IP-Range des „BadBots“ heraussuchen und diese dann in .htaccess sperren. Aber das ist ein anderes Kapitel.