Website-Zugriff für Bots und Crawler verhindern

Stellt euch vor, eure Website ist wie euer eigenes Zuhause. Ihr habt die Tür geöffnet. Freunde und Familie sind willkommen. Doch auch ungebetene Gäste, die du nicht eingeladen hast, strömen herein, durchstöbern eure Schränke, nehmen sich Snacks, hinterlassen Chaos. 

Genau so benehmen sich Webcrawler und Bots auf eurer Website. 

Webcrawler sind automatisierte Programme, die euere Serverressourcen auffressen. Das kann Ladezeiten in die Höhe treiben und echte Besucher vergraulen. 

Wollt ihr etwas dagegen tun? Wir haben praktische Tipps für euch, um digitale Störenfriede in Schach zu halten. 

Was sind Bots oder Crawler überhaupt?

Bots oder Crawler sind Software-„Roboter“, die ohne menschliches Zutun durchs Internet streifen. 

Sie besuchen Websites, interagieren mit Inhalten und führen auch selbsttätig Aufgaben aus. Das ist im einfachsten Fall ein virtueller Klick auf einen Menüpunkt, kann aber auch eine Suche auf der Website sein. 

Einige sind nützlich, wie die Crawler von klassischen Suchmaschinen, die eure Seite indexieren und euch in den Suchergebnissen nach oben bringen.

Andere Crawler sind weniger freundlich und können eure Inhalte klauen, Spam verbreiten oder Sicherheitslücken ausnutzen. 

so funktionieren Crawler: sie starten auf einer gegebenen URL, laden den HTML Code und extrahieren alle Links, die Daten werden gespeichert. Damit ist das Webdokument im Suchindex. Die gefundenen Links werden nacheinander besucht und der Kreislauf beginnt von vorne.

Gute Bots, böse Bots

Versuchen wir mal, Gut und Böse zu unterscheiden:

Die Guten:

  • Suchmaschinen-Crawler
    Wie der Googlebot oder Bingbot, die eure Seite indexieren und für Sichtbarkeit sorgen. Das heißt: Somit gelangt euere Website in die Suchergebnisse einer Suchmaschine.
  • Auditing-Bots
    Sie sammeln wertvolle Daten über die Performance eurer Website, z.B. der Google Pagespeed Insights-Bot. Die Daten braucht ihr, wenn ihr wissen wollt, ob euere Seite gute Erfahrungen bei eueren Nutzern erzeugt. 

Die Bösen:

  • Content-Scraper
    Sie klauen eure Inhalte und kopieren sie, um sie anderswo zu verwenden.
  • Spam-Bots: 
    Diese fluten eure Formulare und Kommentarbereiche mit Müll, in denen meist ein Link eingebaut ist.
  • Hacker-Bots
    Diese Art versucht, Sicherheitslücken zu finden und auszunutzen. Ziel ist, unbefugten Zugriff zu erlangen.

Welche Anzeichen für Bot-Aktivitäten auf eurer Website gibt es? 

Bevor wir zu den Lösungen kommen, solltet ihr wissen, woran ihr unerwünschte Bot-Aktivitäten erkennt:

  • Plötzliche Traffic-Spitzen
    Ein Anstieg der Besucherzahlen ohne entsprechenden Anstieg der Interaktionen oder Verkäufe.
  • Langsame Ladezeiten 
    Eure Seite lädt plötzlich langsamer, was echte Besucher abschrecken kann.
  • Hohe Absprungraten 
    Wenn Nutzer eure Seite schnell wieder verlassen, könnte das an Bots liegen.
  • Ungewöhnliche Sitzungsmuster
    Besucher, die nur für Millisekunden bleiben oder stundenlang auf einer Seite verweilen.
  • Formulareingaben mit zufälligem Text:
    Ein klares Zeichen für Spam-Bots – woher soll der Müll sonst kommen? 
Zutritt verboten für böse Bots

Wie könnt ihr Bots den Zugang zur Website verweigern? 

Der spannende Teil. Hier sind einige effektive Methoden, um unerwünschte Bots fernzuhalten

1. robots.txt-Datei erstellen

Die robots.txt-Datei ist wie ein Türsteher für eure Website, nur ehrlich gesagt, nicht ganz so mächtig. Die Datei robots.txt teilt Bots mit, welche Bereiche sie betreten dürfen und welche nicht.

So erstellst du eine robots.txt-Datei

  • Texteditor öffnen
    Verwendet einen einfachen Texteditor wie Notepad (Windows), Notepad++ oder TextEdit (Mac OS).
  • Anweisungen hinzufügen

    Fügt folgende Zeilen ein: 
# Blockiert BadBot vom gesamten Zugriff auf die Website
User-agent: BadBot
Disallow: /

# Blockiert EvilScraper vom gesamten Zugriff auf die Website
User-agent: EvilScraper
Disallow: /

# Standard-Regel für alle anderen Bots (z.B. Googlebot, Bingbot). 
# Alle anderen werden standardmäßig erlaubt.
User-agent: *
Disallow:
  • Datei speichern: Speichert die Datei als robots.txt und zwar exakt unter diesem Namen.
  • Datei hochladen: Ladet die Datei ins Stammverzeichnis eurer Website hoch, sodass sie unter https://www.eure-domain.de/robots.txt erreichbar ist. 

    Testet dies. Im Browser sollten die Zeile als reiner Text erscheinen, aber keine 404-Fehlermeldung.  

Achtung: Nicht alle Bots halten sich an die robots.txt. Bösewichte ignorieren sie oft. Du kannst keinen Bot damit wirklich zwingen, die Seite zu besuchen und Aktionen auszuführen. 

2. .htaccess-Datei anpassen

Bei Servern, die für Webhosting verwendet werden, gibt es eine Möglichkeit, festzulegen, wie sich die Software auf dem Server verhalten soll. Das kann man als Webhosting-Kunde mit einer Datei steuern, die sich .htaccess nennt.

Mit den richtigen Anweisungen in der .htaccess-Datei könnt ihr bestimmten Bots oder IP-Adressen den Zugriff komplett verweigern.

Die seltsam wirkende Schreibweise mit dem Punkt vor dem Dateinamen kommt aus der Linux-Welt. Dateien mit einem vorangestellten Punkt im Namen lassen sich in FTP-Software verbergen und signalisieren, dass es sich um eine Art Steuerdatei handelt, die von der Serversoftware verarbeitet werden kann.  Bei goneo kommt dafür Apache 2 zum Einsatz. Kleine Fußnote: Euer Server, falls ihr nicht bei goneo hostet, sollte AllowOverrideAll gesetzt haben, sonst funktioniert das nicht.

So geht’s:

  • Zugriff auf die .htaccess
    Verbindet euch per FTP mit eurem Server und navigiert zum Stammverzeichnis eurer Website. Falls die .htaccess-Datei nicht sichtbar ist, stellt sicher, dass euer FTP-Client auch versteckte Dateien anzeigt. Das kann man in der Konfiguration der Software vornehmen.
  • Datei bearbeiten
    Öffnet die .htaccess-Datei mit einem Texteditor.
  • Anweisungen hinzufügen
    Um einen bestimmten User-Agent zu blockieren, fügt folgende Zeilen hinzu:
## User Agent Blockierung
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BoeserBot [NC]
RewriteRule ^ - [F,L]
  • Ersetzt „BoeserBot“ durch den Namen des Bots, den ihr blockieren möchtet. Die Anweisungen folgen der Apache 2.4+ Syntax. Order/Deny gilt als veraltet.
  • IP-Adresse blockieren
    Um eine bestimmte IP-Adresse zu blockieren, fügt hinzu:
    <RequireAll>
       Require all granted
       Require not ip 123.456.789.000
    </RequireAll>
  • Ersetzt „123.456.789.000“ durch die zu blockierende IP-Adresse.
  • Datei speichern und hochladen
    Speichert die Änderungen und ladet die Datei zurück auf den Server.

Ein Hinweis: Bitte seid vorsichtig mit Änderungen an der .htaccess, da Fehler eure Website unzugänglich machen können. Hebt auf jeden Fall eine Kopie auf.  

Nun stellt sich noch die Frage: Wie erfährt man die Namen der Bots oder die IP-Adresse eines Crawlers? Darüber geben die Log-Dateien Auskunft. 

3. CAPTCHAs implementieren

CAPTCHAs sind kleine Tests, die Menschen leicht lösen können, Bots jedoch nicht. Sie sind besonders nützlich für Formulare und Anmeldeseiten.

So geht’s:

  1. Anmeldung bei einem CAPTCHA-Dienst: Registriert euch bei einem Dienst wie Google reCAPTCHA.
  2. Code integrieren: Fügt den bereitgestellten Code in eure Formulare ein.

Tipp: Moderne unsichtbare CAPTCHAs arbeiten im Hintergrund und stören echte Nutzer nicht. 

4. Unerwünschte Anfragen blockieren und Ausnahmen definieren (mit .htaccess)

Ein echtes Rate Limiting (X Anfragen pro Y Sekunden) wäre fein, aber über die .htaccess ist allein ohne spezielle Apache-Module (wie mod_qos) so etwas nicht möglich. Ihr könnt stattdessen eine Logik implementieren, um verdächtige Anfragen komplett zu blockieren.

  • Erlaube zunächst alle harmlosen Dateien (Bilder, CSS, JS).
  • Erlaube alle „guten“ Crawler (Googlebot, Bingbot).
  • Blockiere alles andere, was nicht von einem „guten“ Bot kommt und keine statische Datei ist.

Auch diese Verhinderungsregel gilt für die Apache2-Serversoftware wie sie bei goneo verwendet wird:

RewriteEngine On

# 1. Bedingung: Nur Anfragen, die NICHT auf eine Dateiendung (css, js, etc.) enden. 
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]

# 2. Bedingung: User Agent ist NICHT Googlebot
RewriteCond %{HTTP_USER_AGENT} !^Googlebot [NC]

# 3. Bedingung: User Agent ist NICHT Bingbot
RewriteCond %{HTTP_USER_AGENT} !^Bingbot [NC]

# AKTION: Wenn alle Bedingungen erfüllt sind, den Zugriff verbieten (403 Forbidden)
RewriteRule .* - [F,L]

Wichtig: Diese Direktive in diesem Beispiel ist sehr aggressiv! Sie verbietet den Zugriff auf alle euere HTML-Seiten für jeden Besucher, dessen User Agent nicht als Googlebot oder Bingbot bekannt ist (und der keine statische Datei anfordert). Ihr solltet diesen Code nur verwenden, wenn ihr ganz genau wisst, welche Bots ihr zulassen und welche ihr ausschließen wollt.

5. Bot-Management-Tools 

Es gibt spezialisierte Tools, die dabei helfen, unerwünschte Bots zu erkennen und zu blockieren.Dabei handelt es sich meist um externe Dienste, die vielleicht auch in einem „Drittland“ realisiert werden. Damit stellen sich Fragen hinsichtlich des Datenschutzes und der Datensouveränität. 

Dennoch kann das Vorteile haben: 

  • Echtzeit-Überwachung und Schutz.
  • Anpassbare Regeln für spezifische Bedrohungen.

Ein neuer „Türsteher“ für KI-Modelle: Die llms.txt

Die Welt der Bots und Crawler entwickelt sich rasant weiter. Mit dem Aufkommen großer Sprachmodelle (LLMs) und generativer KI entsand eine neue Art von „Besuchern“ auf eurer Website, die ebenfalls eure Inhalte nutzen möchten – sei es zum Training oder zur Beantwortung von Benutzeranfragen.

Hier kommt die noch recht neue llms.txt-Datei ins Spiel. Ähnlich wie die robots.txt soll sie KI-Modellen mitteilen, welche Inhalte sie zum Lernen oder zur Verarbeitung nutzen dürfen und welche nicht. Sie ist eine höfliche Bitte an kooperative KI-Systeme, eure Urheberrechte und Ressourcen zu respektieren und den Zugang zu sensiblen oder geschützten Inhalten zu beschränken.

Die llms.txt-Datei ist ein neuer Entwurf und noch nicht so weit verbreitet oder standardisiert wie die robots.txt. Sie wurde von Google vorgeschlagen und ist primär dafür gedacht, Webmastern die Kontrolle darüber zu geben, wie große Sprachmodelle (LLMs) und andere KI-Systeme ihre Website-Inhalte zum Training nutzen dürfen.

Wie die llms.txt-Datei aussieht und funktioniert

Die llms.txt ähnelt in ihrer Struktur stark der robots.txt, verwendet jedoch spezifische Direktiven für KI-Modelle. Sie muss ebenfalls im Stammverzeichnis eurer Website platziert werden (z.B. https://www.eure-domain.de/llms.txt).

Grundlegender Aufbau

Die Datei besteht aus einem oder mehreren Blöcken, die jeweils mit einem User-agent beginnen, gefolgt von spezifischen Anweisungen für dieses KI-Modell oder diese Bot-Kategorie.

Mögliche Anweisungen und Direktiven (Beispiele)

Da der Standard noch in Entwicklung ist, basieren die Direktiven auf Googles Vorschlägen und der Logik der robots.txt.

1. Den Zugriff für alle KI-Modelle erlauben oder verbieten

Dies ist die grundlegendste Anwendung:

# Erlaubt allen KI-Modellen den Zugriff auf die gesamte Website
User-agent: *
Allow: /

Oder, um allen KI-Modellen den Zugriff auf die gesamte Website zu verbieten:

# Verbietet allen KI-Modellen den Zugriff auf die gesamte Website
User-agent: *
Disallow: /

2. Spezifische KI-Modelle ansprechen

Wenn ihr die User-agent-Namen bestimmter KI-Crawler kennt (die diese dann im HTTP-Header senden sollten), könnt ihr diese gezielt ansprechen.

# Regeln für den Google-spezifischen KI-Crawler (hypothetischer Name)
User-agent: Google-Extended
Disallow: /private-data/
Allow: /public-articles/

# Regeln für einen anderen hypothetischen KI-Crawler
User-agent: ExampleAI-Bot
Disallow: /training-data/
  • User-agent: Google-Extended: Dies ist der von Google vorgeschlagene User-Agent, um spezifisch Google’s generativen KI-Produkten und großen Sprachmodellen Anweisungen zu geben (zusätzlich zu den bestehenden Googlebot-Anweisungen in der robots.txt).
  • Disallow: /private-data/: Weist das Modell an, Inhalte in diesem Pfad nicht zu nutzen.
  • Allow: /public-articles/: Erlaubt explizit die Nutzung von Inhalten in diesem Pfad, auch wenn eine allgemeinere Disallow-Regel dies umfassen könnte (hier nicht der Fall, dient nur als Beispiel).

3. Verwendung des Allow:-Befehls (als Ausnahme)

Wie bei der robots.txt wird Allow: verwendet, um Ausnahmen innerhalb eines Disallow-Bereichs zu definieren.

User-agent: *
Disallow: /all-content-for-ai-blocked/
Allow: /all-content-for-ai-blocked/public-articles/
  • In diesem Beispiel dürfen alle KI-Modelle nicht auf den Ordner /all-content-for-ai-blocked/ zugreifen, außer auf den Unterordner /public-articles/ innerhalb dieses Ordners.

Wichtige Punkte zur llms.txt

  • Freiwillige Einhaltung
    Ähnlich wie die robots.txt ist die llms.txt eine „Höflichkeits“-Anweisung. Kooperative und ethische KI-Modelle werden sich daran halten, aber „schlechte“ Akteure könnten sie ignorieren.
  • Noch in Entwicklung
    Der Standard und die spezifischen User-agent-Namen sind noch nicht fest etabliert. Google hat Google-Extended vorgeschlagen, aber andere Anbieter könnten eigene User-Agents definieren.
  • Ergänzung zur robots.txt
    Die llms.txt soll die robots.txt ergänzen, nicht ersetzen. robots.txt regelt das allgemeine Crawling und Indexieren durch Suchmaschinen, während llms.txt spezifisch die Nutzung von Inhalten für das Training von KI-Modellen adressiert.

Es ist eine spannende Entwicklung, die Webmastern mehr Kontrolle in der Ära der generativen KI geben soll!

Eine spannende Entwicklung, um auch in Zukunft die Kontrolle über eure digitalen Inhalte zu behalten.

Fazit

Bots können Fluch und Segen zugleich sein. Während einige eure Website unterstützen, können andere erheblichen Schaden anrichten. Mit den oben genannten Methoden könnt ihr eure digitale „Haustür“ vor unerwünschten Gästen schützen und sicherstellen, dass eure echten Besucher den besten Service erhalten. Bleibt wachsam und passt eure Sicherheitsmaßnahmen regelmäßig an, um immer einen Schritt voraus zu sein.

Bleibt sicher und viel Erfolg mit eurer Website! 💪

Wichige Bots und Crawler

Wichtigste Bots und Crawler für robots.txt und llms.txt

Bot-Name (User-Agent)Zweck und FunktionSteuerung inHinweise
GooglebotHaupt-Crawler von Google. Indexiert Webseiten für die klassische Google-Suche (Web-Index, Bilder, Videos).robots.txtDer wichtigste Bot für die allgemeine Sichtbarkeit in der Suche.
Google-ExtendedDer von Google vorgeschlagene Bot für das Training von großen Sprachmodellen (LLMs) und die Nutzung in generativer KI.llms.txtWird verwendet, um Inhalte speziell für KI-Training zu steuern.
BingbotHaupt-Crawler von Microsoft. Indexiert Webseiten für die Bing-Suche und Copilot (Bing AI).robots.txtWichtig für Bing, Yahoo und DuckDuckGo (da diese Bing-Daten nutzen).
AdsBot-GoogleCrawler, der die Landingpages von Werbeanzeigen auf ihre Qualität und Konformität prüft.robots.txtSteuert das Crawling von Seiten, die Google Ads verwenden.
ApplebotCrawler von Apple, der Inhalte für die Siri-Vorschläge und die Spotlight-Suche auf iOS/macOS indexiert.robots.txtWichtig für Apple-Gerätenutzer.
DuckDuckBotCrawler von DuckDuckGo, obwohl sie häufig Bing-Daten nutzen, crawlen sie auch eigene Inhalte.robots.txtFür die Sichtbarkeit in der DuckDuckGo-Suche.
BaiduspiderHaupt-Crawler für die Baidu-Suchmaschine (China).robots.txtWichtig, wenn Ihre Zielgruppe China umfasst.
YandexBotHaupt-Crawler für die Yandex-Suchmaschine (Russland).robots.txtWichtig für die Region Osteuropa/Russland.
AhrefsBotCrawler, der das Internet nach Links durchsucht, um Daten für das Ahrefs SEO-Tool zu sammeln.robots.txtEin Tool-Bot; kann viel Traffic verursachen, wenn er nicht begrenzt wird.
SemrushBotCrawler, der Daten für das Semrush SEO-Tool sammelt (Keywords, Rankings, Backlinks).robots.txtEin Tool-Bot; oft ein Ziel für Geschwindigkeitsbegrenzungen.
ChatGPT-UserEin allgemeiner, jedoch seltener Bot, der von OpenAI in manchen Fällen verwendet werden kann. (Die Steuerung ist noch unklarer.)robots.txt oder llms.txtVorsicht: OpenAI schlägt vor, dass die robots.txt den Zugriff auch für ihr KI-Training steuert, während Google die llms.txt bevorzugt.

💡 Wichtige Unterscheidung: robots.txt vs. llms.txt

  • robots.txt: Primär zur Steuerung von Suchmaschinen-Crawlern (Indexing) und SEO-Tools. Die Anweisungen hier gelten für fast alle Bots, die das Internet nach Links durchsuchen.
  • llms.txt: Ein neuer, vorgeschlagener Standard, der speziell die Nutzung von Inhalten zum Training generativer KI-Modelle (wie ChatGPT oder Google Gemini) steuern soll. Hier verwendet ihr am besten spezifische User-Agents wie Google-Extended.

Folge uns auf Linkedin für mehr indeep-Infos oder abonniere unseren Blog und du erhälst alle neuen Beiträge sofort per Mail.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert