Ein Crawler (oder Bot, Spider) ist ein automatisch laufendes Programm zum Durchsuchen von Web-Dokumenten. Manchmal ist es notwendig, bestimmte Seiten oder Verzeichnisse für den Google-Index oder/und andere Suchmaschinen sowie für bestimmte Crawler zu sperren. Dafür wurde das Protokoll Robots Exclusion Standard festgelegt, an das sich die meisten Crawler halten -ausgenommen lieder sogenannte Bad-Bots. Notiert werden solche Anweisungen in der robots.txt-Datei.
Für den schnellen Überblick lohnt es sich das folgende Youtube-Tutorial anzuschauen:
(Video mit erweitertem Datenschutzmodus)
Was ist die robots.txt-Datei?
Bei der Robots.txt handelt es sich um eine Textdatei mit Anweisungen , wie sich Web-Crawler bezüglich deine Website verhalten sollen. Über die Steuerungsbefehle kann man eine ganze Domain oder einzelne Verzeichnisse und URLs für alle oder bestimmte Crawler sperren. Das heißt, diese Bereiche können nicht besucht und für den Index ausgelesen werden. Andersherum kann man auch spezielle URLs explizit freigeben. Wichtig zu wissen ist:
- Damit die Spider auf direktem Weg zur Robots-Datei finden, muss diese im Root-Verzeichnis abgelegt sein
- Es darf nur eine Robots.txt existieren
Aufgerufen kann die Datei immer so:
- Domain: https://beispiel-domain.de/robots.txt
- Sub-Domain: https://shop.beispiel-domain.de/robots.txt
Struktur und Syntax von Anweisungen
Jede Zeile wird in zwei Bereiche aufgeteilt, die man einen Doppelpunkt trennt. Die erste Zeile beschreibt den User-Agent (Webcrawler), für den die darauf folgenden Regeln gelten sollen. Es können beliebig viele solcher Anweisungsblöcke geschrieben werden. Dazu ein paar Beispiel-Anweisungen mit Erläuterungen:
Web-Crawler definieren: User-agent
User-agent: * # alle Crawler User-agent: Googlebot # Google User-agent: Googlebot-Image # Bilder-Crawler von Google User-agent: webcopy #nur der hier genannte Massen-Downloader ist angesprochen
Crawler abweisen: Disallow
Disallow: / # die gesamte Website ist gesperrt Disallow: /test/geheim.html #im Verzeichnis „test“ ist nur die Datei „geheim.html“ gesperrt
Crawler einladen: Allow
Es gibt auch die Möglichkeit, innerhalb eines gesperrten Verzeichnisses, einzelne URL per Allow freizugeben. Wie bereits erwähnt, scannt der Crawler von oben nach unten. Wenn du also in einem gesperrten Verzeichnis einzelne Dateien freigegeben willst, muss die Allow-Anweisung zuvor notiert werden
Allow: /test/nicht-geheim.html # die Datei nicht-geheim.html darf gelesen werden Disallow: /test/ #das Verzeichnis „test“ ist komplett gesperrt
XML-Sitemap hinterlegen
Am Ende der Robots-Datei, d.h. unterhalb der oben genannten Anweisungen kannst du Suchmaschinen gezielt auf die Bereiche deiner Website leiten, die gecrawlt und indexiert werde sollen. Dort gibst du die URL deiner XML-Sitemap an. Du kannst auch – pro Zeile – mehrere Sitemaps untereinander listen.
Im Gegensatz zur Robots-Datei kannst du eine oder mehrere Sitemaps (Html, Images, News, unterschiedliche Sprachen) im Wurzel- oder einem anderen beliebigen Verzeichnis hinterlegen. Ebenfalls können Sitemaps beliebig benannt werden, sie müssen nur mit .xml enden.
Sitemap: https://www.beispiel-domain.de/sitemap.xml
oder/und
Sitemap: https://www.beispiel-domain.de/sitemaps/sitemap.xml
Weitere Infos findest du hier:
Doch nicht alles geht mit einer robots.txt
1) Sicherer Schutz vor Indexierung und Entfernung aus dem Google-Index
Mit der Robots.txt lassen sich auch keine URLs aus dem Google-Index entfernen, dafür verwendet man besser folgende Methode – die übrigens auch explizit von Google empfohlen wird.
Lösung: Sperren per Meta-Tag Robots
Gezielt kann man einzelne HTML-Dokumente über den „Robots-Meta-Tag“ (im Quelltext in der HTML-Datei) sperren.
In WordPress geht das ganz einfach mit den gängigen SEO-Plugins. Ich verwende dafür die Extension SEO Pack in der kostenlosen Version.
Im Quelltext würde das Ergebnis folgendermaßen aussehen:
<html><head> <meta name="robots" content="noindex, follow" /> (…) </head> <body>(…)</body> </html>
Tipp: Wenn du eine URL schnell aus dem Index entfernen willst, schreibe die Zeile in den Header und lasse die URL anschließend in der Search Console crawlen.
2) Kein sicherer Schutz vor Crawler-Zugriffen
Wenn ein 100%iger Schutz gewollt ist, sollte man immer einen Passwortschutz einrichten. Das geht im Adminbereich deines Hosters oder per htaccess/htpasswd-Dateien.
Lösung: Serverseitiger Passwortschutz
Orientiere dich bitte am folgenden Beispielcode für die htaccess-Datei…
AuthName "/geheimes-verzeichnis" AuthType Basic AuthUserFile /.htpasswd require valid-user
…und das verschlüsselte Passwort in der htpasswd
mein-name:vWJXU5tFEN0dQ
Den Code kannst du online kostenlos generieren auf homepage-kosten.de.