Hast du dich jemals gefragt, wie Suchmaschinen wie Google und Bing wissen, welche Seiten deiner Website sie indexieren sollen – und welche Seiten von der Suche ausgeschlossen werden? Mit der robots.txt -Datei kannst du Suchmaschinen-Crawlern mitteilen, auf welche URLs deiner Website sie zugreifen können und auf welche nicht.
Täglich greifen neben menschliche Nutzer auch automatisierte Clients – sogenannte Webcrawler oder Bots auf deine Web-Inhalte zu. Diese Bots, darunter prominente Vertreter wie der Googlebot oder Bingbot, analysieren systematisch deine Website. Sie rufen Webseiten ab, folgen internen Links, bewerten Meta-Informationen und erfassen die Seiten-Struktur deiner Webseite, um daraus ein indexierbares Abbild für Suchmaschinen zu erzeugen.
Doch nicht alle Bereiche einer Website sind für die Öffentlichkeit oder Suchmaschinen bestimmt – sei es ein staging-Verzeichnis, interne API-Dokumentationen oder nicht veröffentlichte Inhalte. Hier kommt die Datei robots.txt
ins Spiel und fungiert als regelbasierte Zugriffskontrolle auf der Root-Ebene des Webservers.
Durch gezielte Direktiven wie Disallow
, Allow
oder User-agent
wird definiert, welche User-Agents auf welche Ressourcen zugreifen dürfen und welche nicht. Die robots.txt
ist dabei kein Sicherheitsmechanismus, sondern eine Konvention, die von gutartigen Bots respektiert wird. Sie stellt sicher, dass Suchmaschinen-Crawler die für sie vorgesehenen Inhalte effizient indexieren – und andere bewusst auslassen.
Was genau ist die robots.txt-Datei?
Die robots.txt ist eine einfache Textdatei (.txt), die sich im Root-Verzeichnis deiner Website befinden muss. Wenn deine Domain www.meine-webseite.ch lautet, muss die Datei unter www.meine-webseite.ch/robots.txt erreichbar sein. Ihr Zweck ist es, den Richtlinien des «Robots Exclusion Protocol» (REP) zu folgen und Webcrawlern Anweisungen zu geben, welche Teile deiner Website sie crawlen (durchsuchen) dürfen und welche nicht.
Wie funktioniert die robots.txt?
Die Datei verwendet eine Reihe einfacher Direktiven (Befehle), um Regeln festzulegen:
User-agent:
Dieser Befehl gibt an, für welchen spezifischen Bot (User-Agent) die nachfolgenden Regeln gelten. Du kannst mehrere User-agent-Blöcke für verschiedene Bots definieren.
User-agent: *
bedeutet, die Regeln gelten für alle Bots, die die robots.txt respektieren.User-agent: Googlebot
bedeutet, die Regeln gelten nur für den Hauptcrawler von Google.User-agent: Bingbot
bedeutet, die Regeln gelten nur für den Crawler von Bing.
Disallow:
Dieser Befehl weist den unter User-agent: genannten Bot an, einen bestimmten Pfad, Ordner oder eine Datei nicht zu crawlen.
Disallow: /privat/
verbietet den Zugriff auf alles innerhalb des Ordners/privat/
.Disallow: /login.php
verbietet das Crawlen der spezifischen Dateilogin.php
.Disallow: /
würde theoretisch den Zugriff auf die gesamte Website verbieten.
Wichtig: Disallow:
arbeitet mit Pfad-Präfixen. Disallow: /ordner
blockiert /ordner.html
, /ordner/datei.jpg
und /ordnerABC/
.
Allow:
Dieser Befehl wird oft in Kombination mit Disallow: verwendet, um Ausnahmen zu definieren. Er erlaubt explizit den Zugriff auf eine Unterdatei oder einen Unterordner innerhalb eines eigentlich gesperrten Bereichs.
Beispiel:
Dies würde allen Bots verbieten, den Ordner /bilder/ zu crawlen, außer der Datei logo.png.
User-agent:*
Disallow: /bilder/
Allow: /bilder/logo.png
Sitemap:
Obwohl technisch nicht Teil des ursprünglichen REP, wird dieser Befehl von großen Suchmaschinen wie Google, Bing & Co. unterstützt. Er gibt den Speicherort deiner XML-Sitemap(s) an.
- Sitemap:
https://meine-webseite.ch /sitemap.xml
- Dies hilft Suchmaschinen, alle wichtigen URLs deiner Website leichter zu finden, auch wenn sie nicht direkt durch das Crawlen entdeckt werden. Es ist eine sehr empfohlene Ergänzung für jede
robots.txt
.
Warum ist eine robots.txt-Datei so wichtig?
Eine gut konfigurierte robots.txt bietet mehrere Vorteile:
Kontrolle über das Crawl-Budget:
Suchmaschinen weisen jeder Website ein sogenanntes «Crawl-Budget» zu – eine begrenzte Menge an Ressourcen (Zeit und Anfragen), die sie für das Crawlen deiner Website aufwenden. Indem du unwichtige Bereiche z.B. interne Suchergebnisseiten, Admin-Logins, Danke-Seiten nach Formularen, etc. per Disallow:
sperrst, stellst du sicher, dass die Bots ihre Zeit auf deine bevorzugten, indexierbaren Inhalte konzentrieren.
Schutz der Server-Ressourcen:
Jeder Besuch eines Crawlers verbraucht Bandbreite und Serverleistung. Bei großen Websites oder sehr aktiven Crawlern kann dies spürbar werden. Das Blockieren unnötiger Bereiche reduziert somit die Serverlast.
Vermeidung von Duplicate Content:
Manchmal gibt es mehrere URLs, die zum selben oder sehr ähnlichem Inhalt führen, z.B. Druckversionen von Seiten, URLs mit Session-IDs, URLs mit Tracking-Parametern. Mit robots.txt
kannst Du verhindern, dass Crawler diese doppelten Versionen aufnehmen und potenziell Verwirrung bei der Indexierung stiften.
Verhindern der Indexierung von nicht-öffentlichen Bereichen:
Du kannst Bereiche wie Staging- oder Entwicklungsversionen Deiner Website blockieren, um zu verhindern, dass diese versehentlich in den Suchindex gelangen.
Wichtige Einschränkungen und Missverständnisse:
Es ist entscheidend zu verstehen, was die robots.txt nicht leisten kann:
Keine Sicherheitsmaßnahme:
Die robots.txt
ist eine Richtlinie, keine undurchdringliche Mauer. Seriöse Bots halten sich daran, aber bösartige Bots, E-Mail-Harvester oder einfache Skripte werden sie wahrscheinlich ignorieren. Verlass dich niemals auf robots.txt
, um sensible oder private Daten zu schützen. Dafür brauchst du echte Sicherheitsmaßnahmen wie Passwortschutz (.htaccess) oder Serverseitige-Authentifizierung.
Disallow verhindert nicht zwingend die Indexierung:
Wenn eine per Disallow: gesperrte Seite von einer anderen Stelle im Web, oder von einer anderen Seite deiner eigenen Website verlinkt wird, kann Google die URL trotzdem indexieren, auch ohne den Inhalt gecrawlt zu haben. In den Suchergebnissen erscheint dann oft nur die URL mit einem Hinweis wie «Aufgrund der robots.txt-Datei dieser Website ist keine Beschreibung für dieses Ergebnis verfügbar.» Wenn Du eine Seite zuverlässig aus dem Index heraushalten willst, verwende den Meta-Tag <meta name="robots" content="noindex">
direkt im HTML-Code der betreffenden Seite oder den X-Robots-Tag-HTTP-Header.
Compliance ist freiwillig:
Nicht alle Bots halten sich an die robots.txt
.
Best Practices für Deine robots.txt:
Platzierung:
Die Datei muss im Root-Verzeichnis deiner Domain liegen und robots.txt (alles klein geschrieben) heißen.
Format:
Es muss eine reine Textdatei sein, üblicherweise in UTF-8-Kodierung.
Syntax:
Eine Direktive pro Zeile. Leere Zeilen und Kommentare beginnend mit «#» sind erlaubt und können zur Strukturierung genutzt werden.
User-agent:
Disallow:
Allow:
Sitemap:
Testen:
Nutze Tools wie den robots.txt-Tester in der Google Search Console, um sicherzustellen, dass deine Datei korrekt formatiert ist und die gewünschten URLs blockiert (oder eben nicht blockiert).
Spezifität:
Sei so spezifisch wie nötig, aber nicht zu restriktiv. Ein versehentliches Disallow: /assets/ könnte z.B. das Crawlen wichtiger CSS- oder JavaScript-Dateien verhindern, was dazu führt, dass Google deine Seite nicht korrekt rendern kann.
Sitemap einbinden:
Füge immer einen Sitemap:-Eintrag hinzu.
Regelmäßig prüfen:
Überprüfe Deine robots.txt gelegentlich, besonders nach größeren Website-Änderungen oder Relaunches.
Fazit
Die robots.txt
ist ein fundamentales Werkzeug um das Verhalten von Webcrawlern auf deiner Website zu steuern, Ressourcen zu schonen und die Indexierung deiner Inhalte zu optimieren. Auch wenn sie keine Sicherheitsfunktion darstellt und die noindex-Anweisung nicht ersetzt, ist eine korrekt konfigurierte robots.txt
unerlässlich für eine effiziente Website-Verwaltung.