Steuerung der Webcrawler: Robots.txt und Robots-Meta-Tag

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.

 

SEO pack no index

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.