Loading...
Author Cloudapp
E.G.

Was AI-Crawler wirklich mit einem kleinen Blog machen: 9 Tage Logs

28. Juni 2026
Inhaltsverzeichnis

Ich betreibe einen kleinen Home-Assistant-/Self-Hosting-Blog. An einem normalen Tag schauen ein paar Dutzend Menschen vorbei. Als ich endlich meine nginx-Logs nach AI-Crawlern durchsucht habe, stoppte mich die Zahl: in neun Tagen haben AI-Bots die Seite 18.209 Mal getroffen. Bei einem Blog dieser Größe lesen mich inzwischen mehr Maschinen als Menschen.

Hier die komplette Aufschlüsselung, was mich überrascht hat, und ein paar Punkte, die die meisten „soll ich AI-Bots blockieren?“ -Diskussionen falsch verstehen.

Die nackten Zahlen (9 Tage, ein kleiner Blog)

Von 348.667 Requests insgesamt kamen 18.209 (5,2 %) von AI-/LLM-User-Agents:

Bot                  Requests   Was es ist
-------------------------------------------------------------
ChatGPT-User           6.687    OpenAI - Live-Abruf im Auftrag eines Nutzers
Bytespider             3.369    ByteDance / TikTok Crawler
meta-externalagent     3.274    Meta AI
Amazonbot              1.923    Amazon
OAI-SearchBot          1.211    OpenAI Search-Index
ClaudeBot                850    Anthropic - Training / Index-Crawler
PerplexityBot            319    Perplexity
DuckAssistBot            225    DuckDuckGo AI
GPTBot                   172    OpenAI Training-Crawler
CCBot                     86    Common Crawl (speist viele Modelle)
YouBot                    68    You.com

Überraschung #1: Der größte „AI-Bot“ ist gar kein Crawler

Die mit Abstand größte Quelle - ChatGPT-User, 6.687 Requests - crawlt nicht, um ein Modell zu trainieren. Es ist ein Live-Abruf: Jemand stellt ChatGPT eine Frage, ChatGPT hält meine Seite für relevant und holt sie in Echtzeit, um zu antworten. Genauso bei Perplexity-User und den anderen Assistenz-Abrufern.

Das dreht die „soll ich blockieren?“-Rechnung um. ChatGPT-User scrapt dich nicht - es ist ein echter Mensch, über seinen Assistenten, der deine Seite gerade jetzt liest. Blockierst du es, stoppst du kein Training; du verschwindest nur aus den Antworten und verlierst den Besuch. (Die andere Seite sehe ich in meinen Analytics: echte Sessions von claude.ai und gemini.google.com.)

Das Mental-Modell „AI-Bot = Scraper zum Blockieren“ ist also für einen großen Teil des Traffics falsch. Es gibt Training-Crawler (GPTBot, ClaudeBot, CCBot) und es gibt Live-Answer-Engine-Abrufer (ChatGPT-User, Perplexity-User, DuckAssistBot). Sie gleich zu behandeln ist der Fehler.

Überraschung #2: robots.txt-Verhalten ist völlig uneinheitlich

Ich habe geprüft, wer überhaupt /robots.txt abruft:

ClaudeBot      233   gewissenhaft - prüft ständig
PerplexityBot   56   schaut rein
Bytespider      77   ruft sie ab (ob es sich dran hält, ist sein Ruf)
GPTBot           0   in diesem Fenster kein einziges Mal (geringes Volumen)
ChatGPT-User     0   nie - und das ist korrekt (nutzer-initiiert, wie ein Browser)

Das Praktische daran: Ein pauschales Disallow befolgen die braven Training-Crawler, die Nutzer-Abrufer ignorieren es - weil robots.txt nie für sie gedacht war. Wenn dein Ziel „kein Training füttern, aber in Antworten auftauchen“ ist, macht der Standard schon ungefähr das Richtige - aber nur für die Bots, die sich daran halten.

Die Lücke, die niemand erwähnt: Diese Crawler führen kein JavaScript aus

Das ist die, die mich wirklich etwas gekostet hat - und der Grund, warum ich am Ende ein kleines Tool dafür gebaut habe.

Fast jeder AI-Crawler holt dein rohes Server-HTML und führt kein JavaScript aus. Wenn dein Framework also JSON-LD-Structured-Data client-seitig einfügt, oder dein Streaming-SSR Meta-Tags in den Body statt in den initialen Head schreibt, sind diese Signale für den Crawler unsichtbar - obwohl Google sie rendert und jede SEO-Browser-Extension sagt, alles sei in Ordnung.

Ich habe auf meiner eigenen Seite genau sechs Seiten gefunden, die das tun - weil ich einen Crawler gebaut habe, der bewusst die JS-lose Ansicht parst und gegen das hydratisierte DOM diffed. Googlebot rendert; GPTBot und ClaudeBot meist nicht. Wenn dir wichtig ist, in AI-Antworten korrekt repräsentiert zu sein, müssen deine Structured Data und Metadaten im Server-HTML stehen - nicht erst nach der Hydration aufgemalt werden.

Was ich konkret damit machen würde

Blockiere nicht reflexartig „AI-Bots“. Trenne Training-Crawler (GPTBot, ClaudeBot, CCBot - robots.txt wirkt) von Live-Answer-Abrufern (ChatGPT-User, Perplexity-User - die zu blockieren kostet echte Referrals).

Verifiziere per ASN / Reverse-DNS, nicht per User-Agent. Der UA-String ist trivial fälschbar; ein „GPTBot“ von einer beliebigen Consumer-IP ist kein GPTBot.

Pack Structured Data + Metadaten ins server-gerenderte HTML. Wenn es erst nach JS erscheint, sehen die AI-Crawler es nie.

Behalte Bytespider im Auge, falls Last ein Thema ist - es ist der aggressivste der echten Crawler.

Für einen Blog mit ein paar Dutzend menschlichen Lesern am Tag sind AI-Crawler inzwischen das größte Nicht-Such-Publikum, das auf den Server trifft. Sie gehen nicht weg - es lohnt sich also zu wissen, welche dich lesen, und sicherzustellen, dass sie auch sehen, was du veröffentlichst.

Den JS-losen-Ansicht-Crawler, den ich benutzt habe, gibt es Open Source (seo-geo-audit) - er flaggt genau diese Lücke, plus die üblichen SEO-Checks, in reinem Node ohne kostenpflichtige Abhängigkeiten.

Verwandte Artikel