KI-Bots in der robots.txt erlauben oder blockieren

Die meisten Websites entscheiden das einmal, falsch, und sehen nie wieder hin. Entweder wird aus Panik vor dem Training alles blockiert — und der Traffic, der Kunden bringt, gleich mit — oder es ist gar nichts konfiguriert, und es gilt, was ein Crawler eben annimmt.

Es gibt drei vernünftige Positionen. Hier ist die Datei für jede, und die Fehler, die sie zunichtemachen.

Zuerst die Unterscheidung, an der alles hängt

KI-Unternehmen betreiben zwei Arten von Agenten, und die sind nicht austauschbar.

Crawler sammeln Seiten in großer Zahl, nach eigenem Zeitplan, meist fürs Training oder für den Index: GPTBot, ClaudeBot, PerplexityBot, CCBot, Bytespider, Google-Extended, Applebot-Extended.

Abrufer auf Zuruf holen eine einzelne Seite, weil gerade jemand eine Frage dazu gestellt hat: ChatGPT-User, Claude-User, Perplexity-User. Mit dieser Anfrage trainiert niemand etwas. Da wartet jemand auf eine Antwort über Sie.

Die erste Gruppe zu blockieren ist eine geschäftliche Entscheidung über Ihre Inhalte. Die zweite zu blockieren kommt eher dem gleich, einen Besucher auszusperren, der Ihre Adresse eingetippt hat. Die meisten Ratschläge nach dem Muster „KI komplett blockieren" machen zwischen beiden keinen Unterschied.

Fall 1 — Hereinlassen

Die richtige Voreinstellung für alles, was gefunden werden will: Dokumentation, Publisher, die genannt werden wollen, Unternehmen, die empfohlen werden wollen.

User-agent: *
Allow: /
Disallow: /admin/
Disallow: /warenkorb/
Disallow: /*?session=

Content-Signal: search=yes, ai-input=yes, ai-train=no

Sitemap: https://beispiel.de/sitemap.xml

Achten Sie darauf, was da steht: Kommt herein, indexiert mich, benutzt mich für Antworten, trainiert nicht auf mir. Diese Position kann die robots.txt allein nicht ausdrücken — dazu weiter unten der Abschnitt zu Content-Signal.

Fall 2 — Antworten ja, Training nein

Die Position, die die meisten Unternehmen tatsächlich wollen, und die fast niemand richtig konfiguriert.

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: Bytespider
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: Applebot-Extended
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: Claude-User
Allow: /

User-agent: Perplexity-User
Allow: /

User-agent: *
Allow: /

Content-Signal: search=yes, ai-input=yes, ai-train=no

Sitemap: https://beispiel.de/sitemap.xml

Zwei Dinge zu dieser Datei sollten Sie wissen. Google-Extended steuert das Training von Gemini und nicht die Google-Suche — es zu blockieren kostet Sie kein Ranking. Und Applebot-Extended funktioniert genauso für Apple Intelligence, getrennt von dem Applebot, der Siri und Spotlight versorgt.

Fall 3 — KI vollständig blockieren

Legitim für Bezahlarchive, lizenziertes Material und alles, wofür Sie den Zugang verkaufen.

User-agent: GPTBot
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: ClaudeBot
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Perplexity-User
User-agent: CCBot
User-agent: Bytespider
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: Amazonbot
User-agent: meta-externalagent
Disallow: /

User-agent: *
Allow: /

Content-Signal: search=no, ai-input=no, ai-train=no

Sitemap: https://beispiel.de/sitemap.xml

Gestapelte User-agent-Zeilen teilen sich die Regeln darunter. Das ist gültig und deutlich leichter zu pflegen als vierzehn einzelne Blöcke.

Rechnen Sie mit dem Preis, bevor Sie sich dafür entscheiden: Sie verschwinden aus den Antworten der KI. Fragt jemand einen Assistenten nach Ihrer Branche, fallen die Namen Ihrer Wettbewerber und nicht Ihrer.

Die Fehler

Es gilt nur die spezifischste Gruppe. Ein Crawler, der seinen eigenen Namen findet, ignoriert User-agent: * vollständig. Das hier bewirkt also nichts:

User-agent: *
Disallow: /privat/

User-agent: GPTBot
Disallow: /

GPTBot ist überall blockiert, aber jeder andere Bot liest nur die *-Gruppe — und wenn Sie später unter GPTBot ein Allow ergänzen, ist /privat/ vor ihm nicht mehr geschützt, weil diese Gruppe /privat/ nie erwähnt hat.

Leerzeilen trennen Gruppen. Eine leere Zeile mitten in einer Gruppe beendet sie. Was danach kommt, gehört niemandem, bis das nächste User-agent folgt.

Disallow: ohne alles dahinter heißt: alles erlaubt. Disallow: / blockiert alles. Ein Zeichen zwischen offener und geschlossener Tür.

robots.txt ist keine Zugriffskontrolle. Sie ist eine Bitte, an die sich wohlerzogene Crawler halten. Wer sie ignoriert, wird sie weiter ignorieren. Was nicht gelesen werden darf, braucht Authentifizierung, keine Direktive.

Crawl-delay wird von KI-Crawlern weitgehend ignoriert. Wenn die Last das Problem ist, drosseln Sie am Edge.

Content-Signal: sagen, wozu — nicht nur, ob

Die robots.txt beantwortet eine einzige Frage: Darfst du das abrufen. Sie hat keine Möglichkeit zu sagen „indexiere mich, aber trainiere nicht auf mir", und genau das ist die Position der meisten Websites.

Content-Signal ergänzt diese Ebene um drei unabhängige Signale:

Content-Signal: search=yes, ai-input=yes, ai-train=no
  • search — darf das in einem Suchindex auftauchen
  • ai-input — darf das als Material für eine Antwort dienen, mit Quellenangabe
  • ai-train — darf das ein Modell trainieren

Es steht wie oben in der robots.txt und kann zusätzlich als HTTP-Header bei jeder Antwort mitreisen, so machen wir es. Es ist eine junge Konvention, kein Standard, an den sich irgendwer halten müsste — aber es kostet eine Zeile, eine Maschine liest es, und es benennt eine Absicht, die ein Disallow nicht ausdrücken kann.

Prüfen Sie, ob Ihre ankommt

Die Datei zu schreiben ist nicht dasselbe, wie sie auszuliefern:

curl -s https://beispiel.de/robots.txt
curl -sI https://beispiel.de/robots.txt | grep -i "server\|cf-cache-status"

Der zweite Befehl wiegt schwerer, als er aussieht. Wenn Sie hinter einem CDN sitzen, das keine eigene robots.txt von Ihnen hat, antwortet das CDN womöglich an Ihrer Stelle mit einer Datei, die Sie nie geschrieben haben: eine plausible 200 ohne eine einzige Ihrer Regeln und ohne Sitemap. Unseres tat genau das, monatelang, während unser Origin 404 lieferte.

robots.txt erzeugen · Prüfen, was Sie ausliefern · Sind die Bots zugelassen?