Die robots.txt ist eine wichtige Datei, wenn es darum geht ein gutes Webseitenranking zu haben. Trotzdem gibt es noch immer viele Webseiten die keine robots.txt besitzen. Oder diese falsch einsetzen. Der Artikel zeigt auf, was die robots.txt ist, wie man sie für Drupalprojekte sinnvoll einsetzt und Fehler vermeidet.
Was ist die robots.txt
Jeder Suchmaschinenbot sucht als erstes nach einer robots.txt, wenn er eine Webseite besucht. In dieser robots.txt stehen Anweisungen für den Crawler drin, welche Unterseiten er indexieren darf und welche er ignorieren soll. Existiert im Document Root-Verzeichnis des Webservers die robots.txt nicht, bekommt der Suchmaschinenbot eine 404-Fehlerseite (Datei nicht gefunden) angezeigt.
Die robots.txt ist eine einfache Textdatei ohne HTML und wird (wie bereits erwähnt) im Document Root-Verzeichnis der Webseite platziert. Beispiel:
http://www.meinedrupalseite.de/robots.txt
So erzeugt man eine robots.txt
Wie oben erwähnt handelt es sich um eine einfache Textdatei. Diese kann man mit einem einfachen Texteditor erzeugen. Der Inhalt der robots.txt besteht aus so genannten Records (Einträgen). Welche Informationen für die speziellen Suchmaschinen enthalten, die von den Suchmaschinenparsern analysiert werden. Jeder Eintrag besteht aus zwei Teilen. Der erste Teil ist die Zeile, für welchen User Agent der Eintrag gültig ist. Der zweite Teil besteht darin, dem User Agent zu sagen was er darf (oder nicht darf). Hier ein Beispiel:
User-agent: googlebot
Disallow: /node/add
Disallow: /user/
Das obige Beispiel bedeutet konkret, dass der Googlebot keine Benutzerseiten (/user) und auch keine Inhalt hinzufügen Links (/node/add) indizieren darf. Wichtig: Bei Verzeichnispfaden sollte ein abschließender Schrägstrich / hinzugefügt werden, sonst sind nämlich vom Ausschluss nicht nur das Unterverzeichnis, sondern alle Dateien, die user enthalten gesperrt. In diesem Fall wäre das nicht schlimm.
Schlecht wäre folgendes Beispiel. Weil hier nicht nur das Unterverzeichnis index gesperrt würde, sondern auch die Indexseiten, wenn diese index.html lauten würde.
User-agent: *
Disallow: /index
Wie man den Namen eines User Agents (Webcrawler) heraus findet
Die Webcrawler, welche sich auf einer Webseite aufhalten, findet man über die Logfile-Analyse heraus. Die robots.txt Anweisungen kann man im Nachhinein jederzeit um die neu gefundenen Webcrawler erweitern. Zu den bekannten User Agents gehören die folgenden:
- googlebot
- google-image
- adsbot-google
- MediaPartners-Google
- Slurp
- Lycos
- Scooter
- msnbot / bingbot
- Teoma
- ia_archiver
- exabot
Im Internet gibt es viele Datenbanken, die eine ausführliche Liste an User Agents enthalten, die auch regelmäßig aktualisiert werden.
Die wichtigsten Anweisungen für den Webcrawler
Wildcard für User-agent; gilt für alle Webcrawler.
User-agent: *
Bei einer fehlenden Angabe hinter Disallow: wird alles erlaubt! Die komplette Webseite darf inidziert werden.
Disallow:
Kein Inhalt darf indiziert werden.
Disallow: /
Nur alle 100 Sekunden darf eine neue Seite zum Auslesen aufgerufen werden.
Crawl-delay: 100
Alle PDF-Dateien werden ignoriert. Anstelle von PDF kann hier jeder Dateityp verwendet werden. Disallow: /*.pdf$
Um dem User Agent zum Beispiel die Indexierung der gesamten Webseite zu verbieten (was man im Normalfall nicht will) verwendet man folgenden Befehl:
User-agent: *
Disallow: /
Möchte man, dass keine Bilder von der Google Bildersuche indiziert werden, dann sperrt man das Verzeichnis, wo die Bilder abgelegt sind. Im folgenden Beispiel wäre das das Verzeichnis images
User-agent: Google-Image
Disallow: /images/
Duplicate Content bei Drupalseiten vermeiden
Wer das Path und / oder Pathauto Modul für Drupal verwendet, sollte in seiner robots.txt die folgende Anweisung für alle Crawler integrieren, um doppelten Inhalt zu vermeiden:
User-agent: *
Disallow: /node/
Was man in einer robots.txt nicht machen sollte
- Keine Kommentare verwenden. Diese kann man zwar integrieren, verwirren aber einige Suchmaschinenbots.
- NIE mehr als ein Verzeichnis in eine Zeile Disallow zusammenfassen. Beispiel wie man es nicht machen sollte:
User-agent: * Disallow: /support/ /images/ /node/
Die richtige Syntax würde so lauten:
User-agent: *
Disallow: /support/
Disallow: /images/
Disallow: /node/
- Groß- und Kleinschreibung beachten So wie das Verzeichnis heißt, welches man ausschließen möchte, sollte es auch in der robots.txt stehen.
- Nicht alle URLs einzeln in einem Verzeichnis ausschließen. Besser ist es das gesamte Verzeichnis auszunehmen. Beispiel wie man es nicht macht:
User-agent: * Disallow: /user/andi Disallow: /user/markus Disallow: /user/verona Disallow: /user/andrea
Besser so:
User-agent: *
Disallow: /user/
- Es gibt keine ALLOW Anweisung. In der robots.txt stehen nur Dateien die NICHT indexiert werden.
robots.txt mit Hilfe der Google Webmaster Tools erstellen
Wer einen Google Account besitzt, kann sich mit Hilfe der Google-Webmaster Tools eine robots.txt generieren, manuell erstellen oder eine bestehende Datei überprüfen lassen.
Abschließend möchte ich noch erwähnen, dass es mit einem Eintrag in der robots.txt nicht möglich ist Inhalte vor Seitenbesuchern zu schützen. Hierfür ist es nötig einen htaccess-Schutz einzurichten.