Die Robots Exclusion Protocol, kurz robots.txt, ist eine reine Textdatei (nicht HTML), die vom Webmaster einer Domain erstellt wird, um den Bot einer Suchmaschine anzuweisen, auf welche Teile einer Webseite er Zugriff bekommt. Wann und wie Du diese verwendest wird hier erklärt!
Inhaltsverzeichnis
- Wo liegt die robots.txt und wofür verwende ich diese?
- Wann verwende ich diese?
- Crawler von Google
- Wichtige Anwendungen der robots.txt im Überblick
- Einfache Aufbaubeispiele
- Fortgeschrittene Aufbaubeispiele
- Hilfe von Tools
- Test der robots.txt
- Wie kann ich die robots.txt für SEO nutzen?
Wo liegt die robots.txt und wofür verwende ich diese?
Die robots.txt-Datei wird als reine Textdatei (nicht HTML) auf der Domain-Root (z.B. https://www.domain.de/robots.txt) angelegt. Ist für eine Webseite eine Datei hinterlegt, kannst Du sie durch Eingabe in die Adresszeile einfach finden.
Bevor Webcrawler – in der robots.txt-Datei User-Agents genannt – die Webseite crawlen sehen sie sich die robots.txt-Datei an, um Hinweise auf ausgeschlossene Seiten, Verzeichnisse oder Parameter zu finden, die nicht gecrawlt werden sollen oder um herauszufinden, dass sie als Crawler die Seite nicht besuchen und damit nicht crawlen dürfen. In dieser Datei kann auch der Link zur XML-Sitemap hinterlegt werden, um es auch hier dem Crawler so einfach wie möglich zu machen diese zu finden.
Wann verwende ich diese?
Verwendet wird eine robots.txt-Datei, um …
- dem Webcrawler zu verbieten, auf nicht öffentliche Verzeichnisse einer Webseite zu gelangen
- eine Suchmaschine daran zu hindern, Indexskripte, Utilities oder andere Arten von Code zu erreichen
- vorhandene doppelte Inhalte, z.B. Druckversionen von HTML-Dateien, nicht zu indexieren
- dem Webcrawler zu helfen, die XML-Sitemap zu finden
Crawler von Google
Es gibt zahlreiche Crawler (User-Agents) von Google, die Du in dem Dokument verwenden kannst. In der folgenden Liste sind die gängigen aufgelistet, um z.B. das Crawlen von Bildern oder Videos zu verbieten.
Crawler | User-Agent |
Googlebot (Google Websuche) |
Googlebot |
Googlebot für Nachrichten | Googlebot-News |
Googlebot für Bilder | Googlebot-Image |
Googlebot für Videos | Googlebot-Video |
Google Mobile Adsence | Mediapartners-Google oder Mediapartners |
Google AdSense | Mediapartners-Google oder Mediapartners |
Google AdsBot | AdsBot-Google |
Wichtige Anwendungen der robots.txt im Überblick
Der Aufbau der robots.txt-Datei folgt einer bestimmten Reihenfolge (Syntax). Hier sollte je nach Anwendungsfall entschieden werden, welcher Aufbau verwendet werden soll, um nicht fälschlicherweise Seiten oder gar komplette Verzeichnisse vom Crawling auszuschließen oder sensible Inhalte dem Crawler zugänglich zu machen. Wichtige Anwendungen der robots.txt im Überblick
Anwendung | Beispiel |
Allen Crawlern das Crawlen der kompletten Webseite erlauben | User-agent: *
Disallow: |
Nur für bestimmten Webcrawler das Crawlen erlauben | User-agent: Googlebot
Disallow: |
Bestimmte Seiten vom Crawlen ausschließen | User-agent: Googlebot
Disallow: /unterseite.html |
Bestimmte Verzeichnisse vom Crawlen ausschließen | User-agent: Googlebot
Disallow: /verzeichnis/ |
Für verschiedene Crawler unterschiedliche
Verzeichnisse/Seiten ausschließen |
User-Agent: Googlebot
Disallow: User-Agent: msnbot Disallow: /verzeichnis/ User-Agent: * Disallow: /tmp/ Disallow: /logs |
Sitemap in robots.txt hinterlegen | User-Agent: *
Disallow: Sitemap: http://www.domain.de/sitemap.xml |
Einfache Aufbaubeispiele
Nachdem ich die robots.txt jetzt ein wenig erklärt habe, kommen wir zum eigentlichen Teil dieses Dokuments: zum Aufbau! Die Syntax (Reihenfolge) gestaltet sich recht simpel.
Als erstes gibst Du den Namen des Webcrawlers (User-Agent) an, der angesprochen werden soll. Anschließend den Befehl, also die Aktion, welche ausgeführt werden soll.
Die einfachste Version gilt als Regel für alle Webcrawler. Sie erlaubt das Crawlen der kompletten Seite
User-agent: *
Disallow:
Möchtest Du z.B. nur den Googlebot ansprechen, so fügst Du den Webcrawler von Google hinzu:
User-agent: Googlebot
Disallow:
Anwendung Disallow
Um eine bestimmte Seite oder gar ein Verzeichnis für den Googlebot auszuschließen, genügt das Hinzufügen in die Disallow-Zeile (Du kannst so viele Disallow-Zeilen angeben wie möglich und nötig)
Ausschließen einer bestimmten Seite
User-agent: Googlebot
Disallow: /unterseite.html
Ausschließen eines bestimmten Verzeichnis
User-agent: Googlebot
Disallow: /verzeichnis/
Ich habe auch schon des öfteren erlebt, dass einige Webmaster nur bestimmten Crawlern das Indexieren bestimmter Teile einer Webseite verbieten möchten. Hier ein Beispiel dafür:
User-Agent: Googlebot
Disallow:
User-Agent: msnbot
Disallow: /verzeichnis/
User-Agent: *
Disallow: /tmp/
Disallow: /logs
Mit der letzten Regel verbietest Du allen Webcrawlern die tmp-Verzeichnisse und alle Verzeichnisse und Ordner, die mit /logs beginnen. Eine Liste mit allen gängigen Webcrawlern findest Du in der Robots Database.
Fortgeschrittene Aufbaubeispiele
Crawl-Verzögerung
Diese Anweisung teilt dem Webcrawler einer Suchmaschine mit, wie viele Sekunden zwischen den Crawl-Vorgängen der einzelnen Seiten vergehen soll. Eine Methode, die die Belastung des Servers verringern soll. Diese wird von Yahoo!, Bing und Ask unterstützt.
User-Agent: Bingbot
Crawl-Delay: 5
Robots.txt mit Wildcards nutzen
Google, Yahoo! und Bing erlauben die Verwendung von zwei regulären Ausdrücken, die verwendet werden können, um Seiten oder Verzeichnisse von den Webcrawlern auszuschließen. Diese sind einmal der Stern (*) und das Dollarzeichen ($).
Häufige Anwendungsfälle der robots.txt Wildcards
Verzeichnis sperren:
Um bestimmte Unterverzeichnisse zu sperren, die mit /verzeichnis beginnen (/verzeichnis1/, /verzeichnis2/), nutzt Du die Hilfe eines Wildcards (*). Dies wird von Google, Yahoo! und Bing unterstützt.
User-Agent: Googlebot
Disallow: /verzeichnis*/
Spezielle URLs sperren:
Um alle URLs zu sperren die beispielsweise auf .asp enden, nimmst Du das Dollarzeichen ($) zur Hilfe:
User-Agent: Googlebot
Disallow: /*.asp$
Alle URLs mit Parametern sperren:
Besitzt eine URL viele Parameter oder Session-IDs, die nicht gecrawlt werden sollen, kannst Du diese mit der folgenden Regel aussperren:
User-Agent: Googlebot
Disallow: /*?*
XML-Sitemap in der robots.txt
Die letzte Zeile, die oft Verwendung in der robots.txt findet, ist die Ortsangabe der XML-Sitemap. Es gibt viele Gründe eine Sitemap für eine Webseite zu nutzen. Mein Kollege Ben hat hierzu einen interessanten Artikel zu Indexierungshilfen einer XML-Sitemap verfasst, welcher beschreibt und erklärt, wie Du diese in die Google Webmastertools einfügst.
Um die Sitemap in die robots.txt einzufügen, reicht eine einfache Zeile aus:
User-Agent: *
Disallow:
Sitemap: http://www.domain.de/sitemap.xml
Das gleiche gilt natürlich auch für Video- oder Bilder-Sitemaps
User-Agent: *
Disallow:
Sitemap: http://www.domain.de/sitemap.xml
Sitemap: http://www.domain.de/video-sitemap.xml
Sitemap: http://www.domain.de/bilder-sitemap.xml
Hilfe von Tools
Es gibt Zahlreiche Tools, um eine robots.txt zu erstellen. Zwei dieser Tools, mit denen ich gerne arbeite, ist der Robots.txt File Generator von SEOBOOK und der Robots.txt Generator von Pixelfolk.
Test der robots.txt
Um das erstellte Dokument zu testen kannst Du ebenfalls mit hilfreichen Tools arbeiten. Ein gutes Tool ist z.B. der robots.txt-Analyzer von SEOBOOK
Eine weitere Möglichkeit ist aber auch der Blick in die Webmastertools der Domain, was ich eher bevorzuge, da Du hier einen sehr guten Überblick bekommst. Hier musst Du in der Google Search Console über den Punkt Vorherige Tools und Berichte zu Weitere Informationen navigieren. In dem Fenster, das sich nun auf der rechten Seite öffnet wird auch der robots.txt-Tester aufgeführt.
Nach der Auswahl der Property hast Du auf einen Blick die Summe der URLs, die Du für den Crawler blockiert hast. Um zu prüfen, ob die Disallow-/Allow-Regeln funktionieren, kannst Du ein Test durchführen, in dem Du die aus- bzw. einzuschließenden URLs in das vorhandene Feld einträgst und dies über den Button „Testen“ überprüfen lässt. In wenigen Millisekunden spuckt Google auch schon das Ergebnis aus.
Wie kann ich die robots.txt für SEO nutzen?
Crawler-Steuerung hört sich für SEOs ja erst einmal gut an und tatsächlich kann eine richtig erstellte robots.txt-Datei auch in der Suchmaschinenoptimierung helfen – auch wenn das Vorhandensein einer solchen Datei keinen direkten Rankingfaktor darstellt.
robots.txt vs. noindex
Die Datei ist zwar ein hilfreiches Tool, jedoch halten sich nicht alle Webcrawler an die Hinweise in der robots.txt. Dadurch kann es trotz Ausschluss in der Datei sein, dass Seiten oder Verzeichnisse im Index landen. Dies liegt dann häufig daran, dass die Suchmaschine der Seite eine gewisse Relevanz beimisst, da sie z.B. intern oder extern stark verlinkt ist und der Crawler dadurch trotzdem auf sie stößt. Deshalb sollte eine robots.txt-Datei auch nicht verwendet werden, um Seiten von der Indexierung auszuschließen, da es unter Umständen dazu kommen kann, dass die Seite dennoch in den Index aufgenommen wird. Falls es also Seiten gibt, die wirklich nicht im Index landen sollen, sollten diese über das Meta-Robots-Tag “noindex” ausgeschlossen werden.
Welche Vorteile hat die robots.txt in der Suchmaschinenoptimierung?
Gibt es Seiten auf der Webseite, die der Crawler nicht beachten muss, da sie…
- …nicht für alle Nutzer öffentlich sind (z.B. Logins, Warenkorb, Danke-Seiten nach erfolgreichem Download) ?
- …für Suchmaschinen unentdeckt bleiben sollten (Indexskripte, Utilities, etc.)?
- …sich mit vorhandenem Inhalt doppeln (z.B. Druckversion von HTML-Dateien)?
Dies sind alles Seiten, die das Crawlbudget unnötigerweise ausschöpfen, da sie nicht im Index der Suchmaschinen landen sollen. Durch einen korrekten Ausschluss über die robots.txt-Datei optimierst Du also nicht nur das Crawling, sondern hast auch die Möglichkeit, Duplicate Content zu minimieren.
Wo ist Vorsicht geboten?
Wird eine Seite, ein Verzeichnisse oder Parameter in der robots.txt fälschlicherweise ausgeschlossen, kann dies auch Einfluss auf das Ranking nehmen, denn so besteht die Gefahr, dass die Seiten nicht gecrawlt werden und dadurch eventuell nicht im Index der Suchmaschine landen. Die gleiche Problematik gilt auch im umgekehrten Fall. Sollen Seiten oder Verzeichnisse nicht in den Index aufgenommen werden, ist ein Ausschluss über die robots.txt-Datei nicht die sicherste Variante. Zwar halten sich die meisten Crawler an das Exclusion-Protokoll, aber leider nicht alle. Willst Du also auf Nummer sicher gehen, dann hinterlege auf diesen Seiten das Meta-Robots-Tag “noindex” (s. robots.txt vs. noindex). Wie Du siehst, sollte eine robots.txt-Datei also mit Bedacht erstellt werden.
Ich hoffe ich konnte euch weiterhelfen. Bei Fragen oder Anregungen freue ich mich natürlich über eure Kommentare.
6 Kommentare
Alexander Behling schrieb am 19. Januar, 2016 @ 16:01
Wieso
User-Agent: *
Disallow:
Sitemap: http://www.domain.de/sitemap.xml
Mit Disallow verbietet man doch den Zugriff!!!!
Chris Roeb schrieb am 20. Januar, 2016 @ 10:50
Hallo Alexander,
das Disallow ist ein Befehl, mit dieser der Robot einer Suchmaschine, in diesem Fall alle Robots (User-Agent:*) angesprochen werden.
Lassen wir die Regel offen und schreiben,
Disallow:
erlauben wir dem Bot, dass er die gesamte Domain crawlen darf.
Nutzen wir hingegen den folgenden Befehl,
Disallow: /
setzen wir dem Bot einen Riegel vor die Tür und verbieten ihm dass er die komplette Domain crawlen darf.
Ich hoffe ist etwas verständlicher gewesen 😉
Bei Fragen kannst du dich gerne melden.
Beste Grüße,
Chris
Markus schrieb am 28. Januar, 2016 @ 21:05
Hallo Chris,
danke für den Artikel. Eigentlich ist auch alles verständlich. Ich habe jedoch das folgende Problem. Als robots.txt habe ich von
User-Agent: *
bis
User-Agent: *
Disallow:
Sitemap: http://www.domain.de/sitemap.xml
alles probiert und ich bekomme über die Webmastertools immer die folgende Meldung wenn ich die Sitemap teste: Sitemap enthält URLs, die von der „robots.txt“-Datei blockiert werden.
Ich checke es einfach nicht. Ich sperre doch nichts. Das hat mich den ganzen Tag beschäftigt und ich hab keinen Bock 🙁 mehr. Also vielleicht kannst Du mir ja helfen. Vielen Dank im Voraus. LG Markus
Silvester schrieb am 21. August, 2016 @ 17:40
Hallo Chris
Interessanter Beitrag. Doch wie macht man dieses hier:
Ein Problem, womit viele Webmaster zu kämpfen haben, ist wenn SSL installiert ist und die Seiten über HTTP und HTTPS erreichbar sind. Hier benötigt man zwei getrennte Versionen des Dokuments.
Das würde mich schon interessieren.
Grüsse
Silvester