Der Großteil Ihres „KI-Crawler"-Traffics ist keine KI
Wir haben zwei Tage Cloudflare-Logs unserer eigenen Website geprüft: Rund sechs von zehn Anfragen mit einem KI-Crawler-Namen waren Schwachstellen-Scanner auf der Suche nach .env-Dateien und Schlüsseln. Wie man sie unterscheidet, zwei kostenlose Cloudflare-Regeln, die sie blockieren, und der eine Fehler, den Sie vermeiden sollten.
Alle wollen wissen, ob KI-Systeme ihre Website lesen. Als wir also unsere eigene Marketing-Website mit der Cloudflare-Integration verbunden und die KI gefragt haben, welche Seiten die Crawler abrufen, erwarteten wir eine Liste von Blogartikeln.
Wir bekamen eine Liste von Geheimnissen.
Innerhalb von zwei Tagen verzeichnete Cloudflare etwas über tausend Anfragen an die Website von User Agents aus unserer Liste bekannter KI-Crawler: GPTBot, ClaudeBot, PerplexityBot, Applebot, Amazonbot, Bytespider und die übrigen. Rund sechs von zehn dieser Anfragen galten Pfaden wie diesen:
/.env
/.env.production
/.ssh/id_rsa
/.aws/credentials
/firebase-admin.json
/terraform.tfstate
/.docker/config.json
/@fs/proc/self/environ
Nichts davon existiert auf einer statischen Marketing-Website, und kein KI-System hat irgendeinen Grund, danach zu fragen. Das sind Schwachstellen-Scanner auf der Jagd nach geleakten Zugangsdaten, und jeder einzelne gab sich als GPTBot aus, oder als ClaudeBot, Perplexity oder Apple. Dieselbe Sonde auf /.env kam innerhalb von 48 Stunden unter acht verschiedenen Crawler-Namen an.
Der tatsächliche KI-Traffic war eine kleine Minderheit: ClaudeBot und GPTBot lasen robots.txt und die Sitemap, ChatGPT und Perplexity riefen eine Handvoll aktueller Artikel ab, weil gerade jemand danach gefragt hatte, und Applebot lud ein paar Stylesheets. Das war die Zahl, die uns interessierte, und sie lag unter dem Scanner-Rauschen begraben.
Warum Scanner sich als Crawler ausgeben
Ein User Agent ist nur eine Zeichenkette, die der Client mitschickt. Jeder kann jeden Wert senden, und Scanner haben sich schon immer respektable Namen geborgt: jahrelang Googlebot, jetzt die KI-Crawler, aus denselben zwei Gründen.
Erstens lassen Website-Betreiber sie durch. Eine Firewall, die unbekannte Bots blockiert, aber alles durchwinkt, was sich GPTBot nennt, ist eine Firewall mit dem Passwort an der Tür. Zweitens verstecken sie sich in der Menge. KI-Crawler-Traffic ist so stark gewachsen, dass ein paar hundert zusätzliche Anfragen unter einem Crawler-Namen im Log normal aussehen, während dieselben Anfragen von einem anonymen Python-Client auffallen würden.
Die Folge: Jeder Bericht, der „Anfragen von KI-Crawlern“ allein anhand des User Agents zählt, ist aufgebläht, manchmal um ein Vielfaches, und die Aufblähung trifft genau die Frage, die Sie beantworten wollten.
Wie man sie unterscheidet
Drei Signale trennen einen echten Crawler von einem Scanner, der seinen Namen trägt. Sie brauchen nicht alle drei.
Verifizierung. Die großen KI-Betreiber veröffentlichen die IP-Bereiche ihrer Crawler, und Cloudflare prüft jede Anfrage, die einen bekannten Bot-Namen beansprucht, gegen diese Bereiche. Eine Anfrage, die vorgibt, GPTBot zu sein, aber nicht aus den Bereichen von OpenAI kommt, fällt bei dieser Prüfung durch. Cloudflare stellt das Ergebnis als Verified-Bot-Kennzeichen bereit, das Sie in Firewall-Regeln auf jedem Tarif nutzen können, auch im kostenlosen.
Der Antwortcode. Ein echter Crawler ruft Seiten ab, die existieren. Ein Scanner fragt nach Dateien, die es nicht gibt, also liefern fast alle seine Anfragen einen 404. Auf einer statischen Website liegt der Scanner-Anteil Ihres „KI-Crawler“-Traffics sehr nah am Anteil, der einen Fehler zurückgab.
Der Pfad. Sie wissen, was Ihre Website enthält. Anfragen nach .env, .ssh, .git, .aws, Schlüsseldateien und Zugangsdaten-JSON sind keine Erkundung durch eine KI, was auch immer der User Agent behauptet.
Das zweite und dritte Signal können Sie auch ganz ohne Tooling prüfen: Öffnen Sie Ihre Server- oder CDN-Logs, filtern Sie nach den Crawler-User-Agents und schauen Sie auf Statuscodes und Pfade.
In Cloudflare blockieren, mit dem kostenlosen Tarif
Wenn Ihre Website hinter Cloudflare läuft, erledigen zwei benutzerdefinierte Firewall-Regeln die Sache. Beide funktionieren im kostenlosen Tarif, der fünf benutzerdefinierte Regeln erlaubt. Beide sind in der Syntax des kostenlosen Tarifs geschrieben: Der Regex-Operator matches erfordert einen Business-Tarif, deshalb nutzen sie stattdessen contains und die Funktion ends_with().
Regel 1 blockiert gefälschte Crawler. Sie greift, wenn eine Anfrage einen der großen Crawler-Namen beansprucht, aber Cloudflares Verifizierung nicht besteht.
(http.user_agent contains "GPTBot"
or http.user_agent contains "ClaudeBot"
or http.user_agent contains "OAI-SearchBot"
or http.user_agent contains "PerplexityBot"
or http.user_agent contains "Amazonbot"
or http.user_agent contains "Applebot"
or http.user_agent contains "Bytespider"
or http.user_agent contains "CCBot"
or http.user_agent contains "Meta-ExternalAgent"
or http.user_agent contains "YouBot"
or http.user_agent contains "cohere-ai")
and not cf.client.bot
and http.host eq "example.com"
Aktion: Block. Ersetzen Sie den Host durch den Hostnamen Ihrer öffentlichen Website.
Regel 2 blockiert Zugangsdaten-Sonden von jedem Absender, denn Scanner kommen auch mit gewöhnlichen Browser-User-Agents.
(lower(http.request.uri.path) contains "/.env")
or (lower(http.request.uri.path) contains "/.ssh/")
or (lower(http.request.uri.path) contains "/.git/")
or (lower(http.request.uri.path) contains "/.aws/")
or (lower(http.request.uri.path) contains "/@fs/")
or (lower(http.request.uri.path) contains "/proc/self/")
or (lower(http.request.uri.path) contains "credentials")
or (lower(http.request.uri.path) contains "service_account")
or (lower(http.request.uri.path) contains "service-account")
or (lower(http.request.uri.path) contains "firebase-admin")
or (lower(http.request.uri.path) contains "terraform.tfstate")
or ends_with(lower(http.request.uri.path), ".pem")
or ends_with(lower(http.request.uri.path), ".key")
or ends_with(lower(http.request.uri.path), ".s3cfg")
or ends_with(lower(http.request.uri.path), ".htpasswd")
or ends_with(lower(http.request.uri.path), ".bashrc")
or ends_with(lower(http.request.uri.path), ".zshrc")
Aktion: Block. Fügen Sie beide in die Ansicht „Edit expression“ ein statt in den visuellen Editor, der die Funktionen nicht anbietet. Wenn Ihre Website legitim einen Pfad ausliefert, auf den eine dieser Zeilen passt, entfernen Sie diese Zeile.
Der Fehler, den wir gemacht haben
Unsere erste Fassung von Regel 1 hatte keine Host-Bedingung, und Claude-User und ChatGPT-User standen in der Liste. Innerhalb einer Stunde bekam jeder Kunde, der Claude über unseren MCP-Endpunkt mit unserer App verbunden hatte, einen 403.
Zwei Lehren daraus. Die User Agents der KI-Assistenten, also die auf -User endenden plus Meta-ExternalFetcher und DuckAssistBot, sind nicht die Trainings-Crawler. Das sind Live-Abrufe, ausgelöst, weil gerade ein Mensch eine KI nach Ihnen gefragt hat, und manche davon sind auch das, was KI-Produkte senden, wenn sie im Auftrag eines Nutzers eine API aufrufen. Das ist Traffic, den Sie wollen, und nicht aller davon besteht die Verifizierung. Lassen Sie diese Namen aus Regel 1 heraus und überlassen Sie es Regel 2, Scanner zu fangen, die sich diese Namen leihen.
Und beschränken Sie die Regel auf den Hostnamen Ihrer öffentlichen Website. Wenn dieselbe Cloudflare-Zone auch eine App, eine API oder einen Integrations-Endpunkt bedient, macht eine für die Marketing-Website geschriebene Bot-Regel sie stillschweigend kaputt.
Die eigene Website prüfen
Wenn Sie Zahlen statt eines Gefühls wollen, verbinden Sie Cloudflare mit AI Data Stream und fragen Sie im Chat:
Welche Seiten haben KI-Crawler in den letzten 7 Tagen auf der Website abgerufen,
und wie viele dieser Anfragen sind fehlgeschlagen?
Seit dieser Woche trennt die Antwort beides von selbst. Die Cloudflare-Tools und das Dashboard-Widget zählen erfolgreiche Abrufe als Crawler-Anfragen und weisen 4xx- und 5xx-Antworten als eigene Summe fehlgeschlagener Anfragen aus, mit einem Hinweis darauf, was fehlgeschlagene Anfragen auf einer statischen Website üblicherweise sind. Um genau zu sehen, was die Scanner angefordert haben:
Zeig mir die KI-Crawler-Pfade mit Status 400 und höher.
Führen Sie beides vor und nach dem Anlegen der Regeln aus: Die zweite Liste sollte verstummen, während die erste endlich zeigt, was KI-Systeme tatsächlich lesen.
Das Kleingedruckte
- Die Crawler-Erkennung erfolgt weiterhin über den User Agent, sofern Sie nicht für Cloudflares Bot Management zahlen. Der Bot Fight Mode, der kostenlose Schalter, ist ein anderes Produkt: Er stellt Bots eine Challenge, kennzeichnet sie aber nicht in Ihren Analysen. Das Verified-Bot-Kennzeichen ist das eine Stück Bot Management, das allen zur Verfügung steht, und deshalb kann Regel 1 sich darauf stützen.
- Blockierte Anfragen werden weiterhin protokolliert, mit einem 403, sodass ein Tool, das rohe Anfragen nach User Agent zählt, sie weiterzählt. Erst das Zählen erfolgreicher Abrufe macht die Zahl ehrlich.
- Nicht jeder KI-Betreiber lässt sich verifizieren. Cloudflare verifiziert nur Bots, deren Betreiber IP-Bereiche veröffentlichen und sich an die Regeln halten, und hat einige von der Liste gestrichen. Prüfen Sie die aktuelle Liste verifizierter Bots in Ihrem Dashboard, bevor Sie einen Namen in Regel 1 aufnehmen.
Cloudflare ist in den Pro- und Business-Tarifen verfügbar. Fügen Sie es auf der Seite Verbindungen Ihrer Property hinzu oder lesen Sie die Dokumentation der Verbindung.
Verwandte Artikel
Live-Dashboards in Claude erstellen: mit Google Analytics, Search Console, Ads und mehr
Claude kann jetzt Live-Dashboards erstellen. Mit dem AI Data Stream Connector baut es sie aus allen Quellen, die Sie verbunden haben: Google Analytics, Search Console, Werbeplattformen, CRM, Cloudflare und mehr. Hier sind echte Beispiele, unsere Prompts und der Weg, jede Zahl zu prüfen.
Wie Sie sich von einem Google Core Update erholen (ohne es schlimmer zu machen)
Sie haben bestätigt, dass ein Core Update Ihre Website getroffen hat? Hier ist ein realistischer Recovery-Plan: was Sie nicht anfassen sollten, wie Sie die verlorenen Seiten und Suchanfragen finden, was Sie ändern und wie Sie messen, ob es gewirkt hat.
Wie KI-Assistenten das Web durchsuchen (und was das für Ihre Sichtbarkeit bedeutet)
Claude, ChatGPT, Gemini und Perplexity durchsuchen das Web auf unterschiedliche Weise – und nicht alle nutzen Google. Was tatsächlich die KI-Suchsichtbarkeit beeinflusst und was Sie dagegen tun können.