robots.txt erstellen und optimieren

 > SEO Blog > robots.txt erstellen und optimieren
Interesse?
Rufen Sie an
0351 31446588

oder schreiben Sie
  25. Juni 2019

Top-10 Platzierungen in der Google Suche sind elementar wichtig, weil Suchmaschinen starke Traffic-Lieferanten sind. Häufig wird technisches SEO vergessen oder nur rudimentär beachtet – und dadurch unnötig Rankingpotenzial verschenkt. Eine mächtige technische SEO-Maßnahme ist die Crawlability-Optimierung mittels robots.txt-Datei. Erfahre jetzt, wie Du das Crawlbudget Deiner Website durch robots.txt-Optimierungen verbesserst, ohne das Programmierkenntnisse erforderlich sind.

Du kennst Dich mit der robots.txt-Datei aus und möchtest zu den Anweisungen springen? Klick hier!

Was ist die robots.txt-Datei?

Die robots.txt ist ein Textdokument, das Anweisungen für Webcrawler (Bots, Spider, Robots) definiert, um den globalen Zugriff oder auf Teile einer Website zu beschränken. Die Datei befindet sich im Stammverzeichnis der Website, also im obersten Verzeichnis eines Hosts.

Ist die robots.txt für Suchmaschinen-Crawler verbindlich?

Das Robots Exclusion Standard-Protokoll sieht vor, dass alle Crawler die robots.txt vor der Verarbeitung der ersten Ressource einer Website aufrufen. Die meisten Crawler halten sich an das Robots Exclusion Standard-Protokoll und befolgen die Anweisungen.

Die robots.txt ist optional. Werden keine robots.txt-Anweisungen festgelegt, dürfen alle Ressourcen ohne Einschränkungen verarbeitet werden. Das ist aus SEO-Sicht ungünstig, weshalb die Verwendung einer robots.txt-Datei ratsam ist.

Wozu dient die robots.txt?

Mit der robots.txt legt man fest, welche Ressourcen, optional von welchem User-agent, nicht gecrawlt werden dürfen. Entweder um private Daten zu schützen, oder um die Crawlability zu optimieren.

Crawlability?

Suchmaschinen sind an Daten interessiert. Deshalb durchsuchen Suchmaschinen-Bots stetig das Internet, um neue und aktualisierte Inhalte zu erfassen. Inhalte die für Suchmaschinen nicht relevant sind (z. B. Warenkorb-Seite eines Shops) brauchen nicht gecrawlt werden, weil sie keine Mehrwerte für Suchmaschinen-Nutzer bieten. Werden ungewünschte Ressourcen vom Crawlen ausgeschlossen, können wichtige Inhalte schneller erfasst werden.

Die robots.txt dient dazu, die Crawlability zu optimieren. Ob eine crawlbare Ressource in den Suchmaschinen-Index aufgenommen wird, bestimmt das Robots Meta Tag.

Wo befindet sich die robots.txt?

Die robots.txt wird immer im Stammverzeichnis einer Domain abgelegt. Sie muss exakt so geschrieben sein: „robots.txt“ – in Kleinbuchstaben. Mit einem FTP Client (Beispiel) kann die Datei auf dem Webserver erstellt bzw. aktualisiert werden. Alle Anweisungen gelten nur für den Host.

Sollte eine robots.txt für Suchmaschinen angelegt werden?

Eindeutig: Ja. Google hat dazu in einem Webmaster-Video Stellung bezogen. Matt Cutts empfiehlt die Bereitstellung einer robots.txt-Datei:

If I don't need to block crawlers, should I create a robots.txt file?

Wie wird die robots.txt bearbeitet?

Die robots.txt ist eine Textdatei und kann mit jedem herkömmlichen Texteditor erstellt und bearbeitet werden. Das erwartete Dateiformat ist ein UTF-8 codiertes Textformat.

Wie oft sollte die robots.txt bearbeitet werden?

Die robots.txt wird von vielen Crawlern beachtet. Deshalb sollte die Datei nicht für ein temporäres Crawling-Verhalten ausgerichtet werden, zum Beispiel um ausgewählten Dokumenten kurzzeitig ein höheres Ranking-Gewicht zu verleihen. Besser ist es, die robots.txt zu aktualisieren, wenn der Bedarf besteht – zum Beispiel wenn Verzeichnisse erzeugt werden, deren Inhalte von Crawlern nicht verarbeitet werden sollen.

Can I use robots.txt to optimize Googlebot's crawl?

Wie ist die robots.txt aufgebaut?

Die robots.txt beinhaltet Datensätze (Anweisungen) und Kommentare. Dabei wird strikt zwischen Groß- und Kleinschreibung unterschieden. Kommentare werden durch ein #-Zeichen eingeleitet.

Datensätze enthalten verbindliche Anweisungen (Ausschlüsse oder Freigaben). Dabei wird zwischen drei Ergebniscodes unterschieden:

  • full allow: Alle Inhalte dürfen gecrawlt werden
  • full disallow: Keine Inhalte dürfen gecrawlt werden
  • conditional allow: Die Anweisen bestimmen die Crawlbarkeit individuell

robots.txt-Anweisungen beginnen mit der Zeile:

Mit „User-agent“ wird definiert, an welchen Crawler die Anweisungen adressiert sind. Der erste Buchstabe „U“ muss groß geschrieben sein.

Die obere Zeile sagt aus, dass die Ausschlüsse und Freigaben einer Anweisung von allen Bots beachtet werden müssen. Der Stern ist ein Wildchar – ein Platzhalter, der in diesem Fall alle Bots adressiert.

Anweisungen können auch an ausgewählte Crawler adressiert werden. Soll eine Anweisung zum Beispiel ausschließlich für den Googlebot gelten, beginnt sie mit:

Eine Liste bekannter Suchmaschinen-Bots bietet die Website robotstxt.org.

Die wichtigsten Suchmaschinen-Crawler

User-agentSuchmaschine
GooglebotGoogle Suche + Google Mobile
Googlebot-MobileGoogle Mobile for Feature Phones
Googlebot-ImageGoogle Bildersuche
Googlebot-VideoGoogle Videosuche
Mediapartners-GoogleGoogle (Mobile) AdSense
Adsbot-GoogleGoogle AdsBot
SlurpYahoo!
bingbotMSNBot/bing
MSNBOTMobileMSN mobile

Die Gültigkeit einer Anweisung kann auch für mehrere Crawler festgelegt werden:

Die Anweisung gilt für „Googlebot“, „Googlebot-Image“ und „Slurp“.

Sobald festgelegt ist, für welche/n Crawler eine Anweisung adressiert ist, werden im nächsten Schritt die Ausschlüsse (Disallow) und optional die Freigaben (Allow) notiert. Eine Anweisung kann mehrere Ausschlüsse und Freigaben enthalten.

Die Disallow-Anweisung leitet ein Ausschluss-Kriterium ein. Der erste Buchstabe „D“ muss groß geschrieben sein:

Mit der Allow-Anweisung werden Freigaben erteilt. Der erste Buchstabe „A“ muss groß geschrieben sein. Nicht alle Crawler befolgen die Allow-Anweisung:

Das Kriterium einer Anweisung wird grundsätzlich hinter dem Doppelpunkt notiert, getrennt mit einem Leerzeichen. Pro Zeile darf nur ein Kriterium festgelegt werden.

Allgemeine robots.txt-Anweisungen

Kein Ausschluss für Crawler (full allow)

Darf eine Website ohne Einschränkungen von allen Crawlern verarbeiten werden, lautet die Anweisung:

Ausschluss aller Crawler (Full Disallow)

Darf eine Website von keinem Crawler verarbeitet werden, lautet die Anweisung:

Durch das Slash-Zeichen hinter dem „Disallow:“ werden alle Inhalte von der Verarbeitung ausgeschlossen. Die Anweisung ist allgemein unter „Disallow all“ bekannt.

Ausgewähltes Verzeichnis und dessen Inhalt sperren

Soll ein ausgewähltes Verzeichnis und dessen Inhalte von der Verarbeitung durch Crawler ausgeschlossen werden, lautet die Anweisung:

In diesem Fall ist „verzeichnis-1“ inklusive aller Inhalte (Unterverzeichnisse, Dateien) für alle Crawler gesperrt. Das „*“ vor dem Verzeichnis drückt aus, dass die Anweisung auch gilt, wenn vor „/verzeichnis-1/“ ein Verzeichnis besteht, zum Beispiel: „/verzeichnis-0/verzeichnis-1/“

Der Slash hinter dem Verzeichnis ist wichtig. Wäre dieser nicht vorhanden (Disallow: */verzeichnis), würden alle URLs gesperrt werden, die „verzeichnis“ enthalten – Bilder, PDF-Dateien, etc.

Mehrere Verzeichnisse können nach folgendem Schema gesperrt werden:

Die Verzeichnisse „verzeichnis-1“, „verzeichnis-2“ und „verzeichnis-3“ sowie dessen Inhalte werden für alle Crawler gesperrt.

Nur ein ausgewähltes Verzeichnis sperren

Soll nur ein Verzeichnis und dessen Inhalte gesperrt werden aber nicht hierarchisch tieferliegende Verzeichnisse und Dateien, ist diese Anweisung hilfreich:

Das Zeichen „$“ kennzeichnet das Ende der URL.

Verzeichnis und dessen Inhalte in einem gesperrten Verzeichnis freigeben

Soll ein Verzeichnis und dessen Inhalte in einem gesperrten Verzeichnis zur Verarbeitung freigegeben werden, ist das durch folgende Syntax möglich:

Die Disallow-Anweisung sperrt die Verarbeitung von „verzeichnis-1“. Durch die Allow-Anweisung wird „verzeichnis-2“ und dessen Inhalt in „verzeichnis-1“ freigegeben. Alle anderen Verzeichnisse und Inhalte in „verzeichnis-1“ bleiben gesperrt.

Datei in einem Verzeichnis sperren

Die Datei „datei-1.jpg“ in „verzeichnis-1“ wird für alle Crawler gesperrt.

Datei in einem gesperrten Verzeichnis freigeben

Soll eine Datei in einem gesperrten Verzeichnis freigegeben werden, ist das durch diese Syntax möglich:

Die Datei „datei-1.jpg“ im gesperrten Verzeichnis „verzeichnis-1“ wird zur Verarbeitung für alle Crawler freigegeben.

Ausschluss von Dateitypen

Sollen bestimmte Dateitypen ausgeschlossen werden, ist folgende Syntax zielführend:

Der Stern definiert eine beliebige Zeichenfolge. Mit „.jpg“ wird der Dateityp festgelegt – in diesem Fall alle Dateien vom Typ JPG. Das Dollar-Zeichen sagt aus, dass nach dem Dateityp kein weiteres Zeichen folgen darf.

Die Anweisung bedeutet: Kein Crawler darf Dateien vom Typ JPG verarbeiten. Das betrifft alle JPG-Dateien einer Website.

Fortgeschrittene Anweisungen

Die folgenden Anweisungen werden nicht von allen Crawlern interpretiert. Ich definiere die folgenden Beispiele für den Googlebot. Fortgeschrittene Anweisungen dürfen nicht mit anderen Regeln der Website kollidieren – etwa mit Canonical Tags.

Get-Parameter ausschließen

Oft erzeugen Parameter-URLs und Session-IDs internen Duplicate Content. Duplikate zu crawlen, würde die Crawlability unnötig verschlechtern. Deshalb ist es sinnvoll, sie von der Verarbeitung auszuschließen:

Der Googlebot darf keine URLs mit einem Fragezeichen verarbeiten.

Verzeichnisse sperren, die eine bestimmte Zeichenfolge enthalten

Unter Umständen kann es erforderlich sein, Verzeichnisse zu sperren, die eine bestimmte Zeichenfolge enthalten. Das ist mit folgender Syntax möglich:

Der Googlebot darf kein Verzeichnis verarbeiten, das mit der Zeichenfolge „privat“ beginnt. Der Stern ist ein Wildchar und kann individuell eingesetzt werden.

Crawl-delay für Slurp und bingbot

Für die beiden User-agents Slurp und bingbot kann ein Crawl-Delay in Sekunden festgelegt werden. Sinnvoll ist das, um die Serverlast durch Crawler zu verringern:

Der Slurp-Robot darf nur aller 60 Sekunden ein Dokument auslesen.

Die Einstellung sollte gut kalkuliert werden, weil die Anzahl verarbeitbarer Dokumente drastisch gesenkt und negativ beeinflusst werden kann. Ein Crawl-delay von 60 Sekunden würde maximal 1.440 Seiten pro Tag zulassen (60 Sekunden = 1 Minute; 24h x 60min = 1.440). Websites mit mehreren Tausend Dokumenten wären dadurch zu stark begrenzt.

robots.txt Sitemap

Google empfiehlt: Websites mit über 10.000 Seiten sollen eine XML Sitemap bereit stellen, um eine hohe Crawlability zu gewährleisten. Der folgende Eintrag teilt allen Crawlern die Adresse der XML Sitemap mit:

Stellt eine Website mehrere XML-Sitemaps bereit, ist es empfehlenswert alle Sitemaps zeilenweise zu notieren. URL-Pfade werden immer absolut angegeben. Die Sitemap-Angabe wird von Google, Ask, Bing, Yahoo interpretiert und verarbeitet.

robots.txt Generator

Im Internet gibt es zahlreiche Anbieter von robots.txt Generatoren. Für die Erstellung einer einfachen robots.txt sind diese Generatoren durchaus empfehlenswert. Werden jedoch fortgeschrittene Anweisungen erforderlich, kommt ein robots.txt Generator laut meiner Erfahrung schnell an seine Grenzen.

robots.txt testen

Zum testen und validieren einer robots.txt empfehle ich den robots.txt-Tester der Google Search Console. Dieser ist im Hauptmenü unter „Crawling“ zu finden. Damit lassen sich URL-Pfade individuell prüfen. Die Syntax einer robots.txt kann mit diesem Tool validiert werden.

In meinem Blog Beitrag zum Thema robots.txt Tester stelle ich verschiedene Tools vor, um blockierte URLs zu identifizieren und zu testen.

Schutz sensibler Daten mit .htaccess + .htpasswd

Manche Crawler halten sich nicht an das Robots Exclusion Standard-Protokoll und beachten die Anweisungen der robots.txt-Datei nicht. Wer sensibler Daten auf einer Domain ablegt, dem empfehle ich einen Serverseitigen Schutz vor unerwünschten Zugriffen.

Eine einfache und effektive Methode für Apache Webserver ist die Verwendung eines .htaccess Passwortschutzes mit .htpasswd-Datei. Dieser Schutz lässt sich schnell und bequem mit kostenlosen Generatoren einrichten (hier oder hier). Voraussetzung ist ein FTP-Zugriff auf den Webserver.

  25. Juni 2019   Jens Fröhlich   Gepostet in: Technisches SEO   Schlagwörter: , , ,  

Kommentare(4)

  • Matthias Thier
    10. August 2015, 21:27  Antworten

    Hi Jens,
    schöne Zusammenfassung des Themas.
    Ich hätte noch eine Ergänzung.
    Google unterstützt inoffiziell auch den „noindex“-Befehl in der „robots.txt“. Das sieht dann z.B. so aus:

    User-agent: Googlebot
    Noindex: /verzeichnis/

    Allerdings wird dies nicht von anderen Suchmaschinen unterstützt und gilt nur als „Notlösung“.

    Viele Grüsse
    Matthias

    • Jens Fröhlich
      2. Juli 2019, 14:57

      Bitte „noindex“ in der robots.txt nicht mehr benutzen, weil Google „noindex“ ab 01.09.2019 nicht mehr unterstützen wird. (Quelle)

Komentar verfassen