KI-Crawler im Server-Log erkennen: User-Agents, Firewall, robots.txt

KI-Crawler im Server-Log erkennen: User-Agents, Firewall, robots.txt

Werbung: Dieser Beitrag entstand in Zusammenarbeit mit deine-geo-agentur.de.

KI-Crawler erkennen Sie im Access-Log an festen Kennungen im User-Agent, etwa GPTBot, OAI-SearchBot, ClaudeBot oder PerplexityBot. Verlassen sollten Sie sich darauf allein nicht: Der User-Agent lässt sich fälschen, echte Bots kommen aus veröffentlichten IP-Bereichen. Für Admins stellen sich drei praktische Fragen. Welche Bots dürfen auf den Server, welche nicht? Welche Zugriffe sind echt? Und warum kommt ein erlaubter Crawler trotzdem nicht durch? Die Antworten stehen in den Dokumentationen von OpenAI, Anthropic, Perplexity und Google, sind aber über vier Websites verteilt. Diese Anleitung fasst sie zusammen, mit Befehlen für die Kommandozeile.

Kurzfassung für Admins

  • Jeder große Anbieter trennt Trainings-, Such- und Abruf-Bots; eine Sperre wirkt nur für die jeweilige Kennung.
  • Nutzerausgelöste Abrufe wie ChatGPT-User oder Perplexity-User beachten die robots.txt laut Anbieter nicht unbedingt.
  • Echtheit prüfen Sie über die IP-Listen der Anbieter oder, bei Google, per Reverse- und Forward-DNS.
  • Firewalls und Bot-Schutz sperren KI-Crawler oft, auch wenn die robots.txt sie zulässt.

Welche KI-Crawler gibt es, und wofür sind sie da?

Die großen Anbieter unterscheiden drei Rollen: Crawler für das Training künftiger Modelle, Crawler für den Suchindex und Abrufe, die ein Nutzer im Chat auslöst. Wer nur das Training unterbinden will, sperrt die Trainings-Kennung und lässt die Such-Bots durch.

Kennung Betreiber Zweck laut Dokumentation robots.txt
GPTBot OpenAI Inhalte für das Training von Modellen wird beachtet
OAI-SearchBot OpenAI Suchergebnisse in ChatGPT wird beachtet, Änderung nach ca. 24 Stunden wirksam
ChatGPT-User OpenAI Abruf auf Nutzeranfrage, auch für Custom GPTs gilt laut OpenAI möglicherweise nicht
OAI-AdsBot OpenAI Prüfung von Landingpages eingereichter Anzeigen besucht nur Anzeigenziele
ClaudeBot Anthropic Inhalte, die ins Training einfließen können wird beachtet, Crawl-delay unterstützt
Claude-SearchBot Anthropic Qualität der Suchergebnisse in Claude wird beachtet
Claude-User Anthropic Abruf auf Nutzeranfrage steuerbar per robots.txt
PerplexityBot Perplexity Suchergebnisse, laut Perplexity kein Training wird beachtet, bis zu 24 Stunden Verzögerung
Perplexity-User Perplexity Abruf auf Nutzeranfrage wird in der Regel ignoriert
Googlebot Google Google-Suche einschließlich AI Overviews wird beachtet
Google-Extended Google nur Steuerzeichen für Gemini-Training und Grounding kein eigener Crawler

Zwei Einträge verdienen einen zweiten Blick. Google-Extended taucht im Log nie auf, weil Google dafür laut eigener Dokumentation keinen separaten User-Agent verwendet; die Kennung wirkt nur in der robots.txt und beeinflusst ausdrücklich weder die Aufnahme in die Google-Suche noch das Ranking. Und bei den nutzerausgelösten Abrufen schreiben OpenAI und Perplexity offen, dass robots.txt-Regeln dort nicht oder nur eingeschränkt greifen, weil ein Mensch den Abruf veranlasst hat. Anthropic dagegen beschreibt Claude-User als Kennung, mit der Seitenbetreiber genau diese Abrufe steuern können. Die Logik unterscheidet sich also je nach Anbieter, und wer pauschal „alle KI-Bots“ blockiert, trifft oft die falschen.

Wie sehen die User-Agent-Strings im Log aus?

Als Browser-ähnliche Zeichenketten mit dem Zusatz „compatible“, der Bot-Kennung samt Versionsnummer und einer Info-URL. Versionsnummern ändern sich, filtern Sie daher immer auf die Kennung, nicht auf den vollständigen String.

# OpenAI (Beispiele aus der Dokumentation, Version kann sich ändern)
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot

# Perplexity
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user)

# Google (W.X.Y.Z steht für die aktuelle Chrome-Version)
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Ein Detail hilft beim Lesen von Logs ohne Pfadangabe: OpenAI hängt beim Abruf der robots.txt teils den Marker „robots.txt“ an den User-Agent an, damit sich diese Anfragen von Seitenabrufen unterscheiden lassen. Anthropic veröffentlicht in seinem Hilfeartikel vom 7. April 2026 keine vollständigen Zeichenketten, sondern nur die drei Kennungen ClaudeBot, Claude-SearchBot und Claude-User. Filtern Sie dort folglich auf den Namen. Für Google gilt: Die Versionsangabe Chrome/W.X.Y.Z ist ein Platzhalter für die jeweils aktuelle Chromium-Version, Google selbst empfiehlt Platzhalter statt fester Versionsnummern.

Wie filtern Sie KI-Crawler im Access-Log?

Mit grep auf die Kennungen und awk für die Auswertung. Im verbreiteten Combined-Log-Format von Apache und nginx steht der User-Agent im sechsten Feld, wenn Sie die Zeile an Anführungszeichen trennen.

# Zugriffe je KI-Crawler zählen
grep -Eio "GPTBot|OAI-SearchBot|ChatGPT-User|OAI-AdsBot|ClaudeBot|Claude-SearchBot|Claude-User|PerplexityBot|Perplexity-User" /var/log/nginx/access.log | sort | uniq -c | sort -rn

# Statuscodes für einen Bot anzeigen (z. B. 403 deutet auf eine Sperre)
awk -F'"' '/OAI-SearchBot/ {split($3,a," "); print a[1]}' /var/log/nginx/access.log | sort | uniq -c

# Quell-IPs eines Bots für die Echtheitsprüfung sammeln
grep "PerplexityBot" /var/log/nginx/access.log | awk '{print $1}' | sort -u

Die zweite Abfrage ist die aufschlussreichste. Liefert der Server einem Such-Crawler fast nur 403 oder 503, sperrt irgendetwas zwischen Internet und Anwendung den Zugriff, obwohl die robots.txt ihn erlaubt. Ein auffälliges Muster sind auch viele Abrufe der robots.txt ohne anschließende Seitenaufrufe. Rotierte und komprimierte Logs schließen Sie mit zgrep ein. Bei hohem Verkehr lohnt es, die Auswertung täglich per Cronjob in eine kleine CSV-Datei zu schreiben; dann sehen Sie Veränderungen nach einem Firewall-Update sofort.

Wie erkennen Sie gefälschte Bots?

Durch den Abgleich der Quell-IP mit den Listen, die die Anbieter als JSON veröffentlichen. Google empfiehlt zusätzlich eine Reverse-DNS-Abfrage mit anschließender Gegenprobe. Ein User-Agent allein ist kein Beleg, Google weist ausdrücklich darauf hin, dass er sich fälschen lässt.

OpenAI veröffentlicht getrennte IP-Listen für jeden Bot, etwa openai.com/gptbot.json, openai.com/searchbot.json und openai.com/chatgpt-user.json. Perplexity führt seine Bereiche unter perplexity.com/perplexitybot.json und perplexity.com/perplexity-user.json, Anthropic unter claude.com/crawling/bots.json. Bei Google funktioniert die Prüfung laut Dokumentation in zwei Schritten: Zuerst ermitteln Sie mit host den Namen zur IP aus dem Log, er muss auf googlebot.com, google.com oder googleusercontent.com enden. Dann fragen Sie den Namen erneut ab und vergleichen die zurückgegebene Adresse mit der ursprünglichen. Wie heikel das Thema ist, zeigte ein Streit im August 2025. Cloudflare warf Perplexity am 4. August vor, bei gesperrten Websites nicht deklarierte Crawler mit Browser-Kennung und wechselnden IP-Adressen einzusetzen, und strich das Unternehmen aus seinem Programm verifizierter Bots. Perplexity wies die Darstellung zurück.

Warum kommen Crawler trotz Freigabe nicht durch?

Meist wegen einer Firewall, eines Bot-Schutzes oder eines CDN, das unabhängig von der robots.txt entscheidet. Cloudflare hat am 1. Juli 2025 die Voreinstellung für neu angelegte Domains umgestellt: KI-Crawler werden blockiert, sofern der Betreiber sie nicht ausdrücklich zulässt.

Ob ein Bot durchkommt, lässt sich auf zwei Wegen prüfen: im eigenen Log, wie oben beschrieben, oder von außen. Einen kostenlosen Test von außen bietet Deine GEO Agentur aus Hechingen an, ein 2026 gegründetes Beratungsunternehmen für die Sichtbarkeit in KI-Suchsystemen. Ihr KI-Crawler-Check wertet die robots.txt für 16 Crawler nach dem Robots Exclusion Protocol aus, das die IETF als RFC 9309 standardisiert hat: Maßgeblich ist die Gruppe, die den Bot namentlich nennt, sonst die mit „User-agent: *“, und innerhalb der Gruppe gewinnt die längste passende Regel, bei Gleichstand Allow. Zusätzlich ruft das Werkzeug die Startseite dreimal mit der Kennung eines KI-Bots auf und vergleicht den Statuscode mit einem normalen Browser-Abruf. Weicht er ab, blockiert vermutlich eine Firewall. Die Agentur benennt die Grenze selbst. Echte Bots kommen aus festen IP-Bereichen, und manche Firewalls prüfen genau diese; der Test ist daher ein Hinweis, kein Beweis. Für die Freigabe empfiehlt Perplexity, in der Web Application Firewall eine Regel aus User-Agent und IP-Bereich zu kombinieren und deren IP-Listen regelmäßig automatisch zu aktualisieren.

Wie sieht eine sinnvolle robots.txt aus?

Eine, die Such- und Abruf-Bots zulässt und das Training nach eigener Entscheidung regelt. Das folgende Beispiel erlaubt die Suche bei OpenAI, Anthropic und Perplexity und widerspricht der Nutzung für das Training.

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /

User-agent: *
Allow: /

Drei Hinweise aus den Dokumentationen gehören dazu. Anthropic bittet darum, die Regeln für jede Subdomain einzeln zu hinterlegen, und warnt, dass eine IP-Sperre anstelle der robots.txt keinen verlässlichen Widerspruch darstellt, weil der Bot dann die Datei nicht lesen kann. OpenAI weist darauf hin, dass bei erlaubtem GPTBot und OAI-SearchBot ein einziger Abruf für beide Zwecke genutzt werden kann. Und eine Sperre von Google-Extended hat laut Google keinen Einfluss auf die Google-Suche.

FAQ: KI-Crawler im Server-Log

Verliere ich Sichtbarkeit in ChatGPT, wenn ich GPTBot sperre?

Nach Darstellung von OpenAI nicht. GPTBot und OAI-SearchBot werden unabhängig voneinander gesteuert. Wer GPTBot sperrt und OAI-SearchBot zulässt, widerspricht dem Training und bleibt für die Suchantworten in ChatGPT erreichbar. Wird dagegen OAI-SearchBot gesperrt, erscheint die Seite dort nicht mehr als Suchergebnis.

Unterstützen KI-Crawler Crawl-delay?

Anthropic unterstützt die nicht standardisierte Direktive Crawl-delay ausdrücklich, etwa mit „Crawl-delay: 1“ in der Gruppe für ClaudeBot. In den Crawler-Dokumentationen von OpenAI und Perplexity findet sich dazu keine Aussage. Wer die Last begrenzen muss, drosselt im Zweifel auf Serverebene, etwa per Rate-Limit im Webserver.

Wie oft sollte ich die IP-Listen aktualisieren?

Automatisch und regelmäßig. Perplexity schreibt, die Adressen würden laufend aktualisiert, und empfiehlt einen automatischen Abgleich der Firewall-Regeln. Ein täglicher Cronjob, der die JSON-Dateien der Anbieter lädt und die Allow-Liste neu schreibt, ist für die meisten Server ausreichend.

Fazit: Kennung lesen, Herkunft prüfen, Firewall testen

KI-Crawler sind im Log leicht zu finden und schwer zu beurteilen. Die Kennungen verraten, wer anklopft, die IP-Listen, ob es stimmt, und die Statuscodes, ob die Tür offen war. Am häufigsten scheitert der Zugang nicht an der robots.txt, sondern an Schutzschichten davor. Wer seine Logs einmal pro Woche mit den Befehlen oben durchsieht und Änderungen an Firewall oder CDN gezielt nachprüft, etwa mit dem Crawler-Check von Deine GEO Agentur, hat die Lage im Griff.

Zur Redaktion: Das Technik-Ressort schreibt für Admins, Entwickler und ambitionierte Selbermacher über Hardware, Server und Netzwerke. Alle User-Agent-Strings sind den offiziellen Dokumentationen der Anbieter entnommen.

Quellen

Stand der Angaben: 4. Oktober 2026

Kommentar verfassen

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