GPTBot vs. OAI-SearchBot vs. ChatGPT-User: Welchen Bot sollten Sie blockieren?
GPTBot vs. OAI-SearchBot vs. ChatGPT-User: was jeder OpenAI-Bot tut, was das Blockieren kostet, und eine echte IP-Prüfung gegen ihre 18, 39 und 230 Präfixe.

Am 06.10.2026 enthielten OpenAIs Range-Dateien 18 Präfixe für GPTBot, 39 für OAI-SearchBot und 230 für ChatGPT-User. OpenAI dokumentiert einen vierten Bot, OAI-AdsBot, der aber nur Seiten besucht, die als ChatGPT-Anzeigen eingereicht wurden; über die drei oben genannten müssen die meisten Websites also entscheiden. Eine Regel, die sie als eine Sache namens „OpenAI“ behandelt, gibt entweder Trainingsrechte ab, die Sie behalten wollten, oder wirft Sie versehentlich aus der ChatGPT-Suche.
Im Folgenden steht, was jeder Bot laut OpenAI selbst tut, was das Blockieren jedes einzelnen kostet, die robots.txt-Zeilen für die gängigste Richtlinie und wie Sie prüfen, ob eine Anfrage, die sich als einer dieser Bots ausgibt, tatsächlich von OpenAI kam. Wir haben je eine IP aus jeder Range-Datei abgefragt, dazu einen Imitator, damit Sie den Unterschied in echter API-Ausgabe sehen. Die allgemeine Methode hinter dieser Prüfung steht in unserem Leitfaden zum Verifizieren von KI-Crawlern per IP, Reverse DNS und Web Bot Auth.

GPTBot vs. OAI-SearchBot vs. ChatGPT-User: was jeder Bot tut
GPTBot ist für das Training, OAI-SearchBot für die Suche und ChatGPT-User für die Live-Anfrage einer Person. Das ist die ganze Aufteilung, und OpenAIs Crawler-Dokumentation sagt es direkt: „Each setting is independent of the others.“ (Jede Einstellung ist von den anderen unabhängig.) Hier sind die drei nebeneinander, zitiert von dieser Seite und aus den Range-Dateien, die wir am 06.10.2026 abgerufen haben.
| GPTBot | OAI-SearchBot | ChatGPT-User | |
|---|---|---|---|
| Aufgabe (laut OpenAI) | „used to crawl content that may be used in training our generative AI foundation models“ (crawlt Inhalte, die zum Training der generativen KI-Basismodelle verwendet werden können) | „used to surface websites in search results in ChatGPT's search features“ (zeigt Websites in den Suchergebnissen der Suchfunktionen von ChatGPT an) | „for certain user actions in ChatGPT and Custom GPTs“ (für bestimmte Nutzeraktionen in ChatGPT und Custom GPTs) |
| Was ihn auslöst | Automatischer Crawl | Automatischer Crawl | Die Frage eines Nutzers oder eine GPT Action |
| robots.txt | Wird laut OpenAI beachtet. Ein Ausschluss „indicates a site's content should not be used in training“ (zeigt an, dass die Inhalte nicht für das Training verwendet werden sollen) | Wird laut OpenAI beachtet. Ausgeschlossene Websites „will not be shown in ChatGPT search answers“ (werden nicht in Antworten der ChatGPT-Suche angezeigt) | „robots.txt rules may not apply“ (robots.txt-Regeln gelten möglicherweise nicht) |
| User-Agent-Token heute | GPTBot/1.4 | OAI-SearchBot/1.4 | ChatGPT-User/1.0 |
| Range-Datei | openai.com/gptbot.json | openai.com/searchbot.json | openai.com/chatgpt-user.json |
| Datei erstellt | 22.09.2026 | 02.01.2026 | 25.09.2026 |
| Präfixe (IPv4 / IPv6) | 18 / 0 | 39 / 0 | 230 / 0 |
Dies sind die vollständigen User-Agent-Strings, wie OpenAIs Seite sie am 06.10.2026 zeigte:
GPTBot: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot
OAI-SearchBot: 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
ChatGPT-User: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
OpenAI kennzeichnet die Strings von GPTBot und OAI-SearchBot als Beispiele und merkt an: „the version number may change“ (die Versionsnummer kann sich ändern); der String von ChatGPT-User ist als vollständiger String aufgeführt. Der String von OAI-SearchBot beginnt wie ein Desktop-Chrome auf einem Mac, gleichen Sie also das Token ab (GPTBot, OAI-SearchBot, ChatGPT-User), nicht den ganzen String. Ein Detail hilft bei der Log-Analyse: Wenn GPTBot oder OAI-SearchBot Ihre robots.txt abrufen, fügen sie laut OpenAI dem User-Agent möglicherweise eine Markierung robots.txt hinzu, sodass Sie diese Anfragen auch dann unterscheiden können, wenn Ihre Logs keine Pfade erfassen.
OpenAIs Seite listet außerdem einen vierten Bot auf, OAI-AdsBot. Er wird „used to validate the safety of web pages submitted as ads on ChatGPT“ (verwendet, um die Sicherheit von Webseiten zu prüfen, die als Anzeigen auf ChatGPT eingereicht wurden), und OpenAI sagt, er „may also use content from the landing page to determine when it's most relevant to show the ad to users“ (kann auch Inhalte der Landingpage nutzen, um zu bestimmen, wann die Anzeige für Nutzer am relevantesten ist). Er besucht nur Seiten, die als Anzeigen eingereicht wurden, und laut OpenAI werden die gesammelten Daten nicht zum Training der Basismodelle verwendet. Sein Token ist OAI-AdsBot/1.0, und seine Range-Datei, openai.com/adsbot.json, wurde am 12.05.2026 erstellt und enthielt beim Abruf 2 IPv4-Präfixe. OpenAI führt OAI-AdsBot nicht als robots.txt-Tag: Die Seite nennt als solche nur OAI-SearchBot und GPTBot.
ChatGPT-User vs. GPTBot: warum ein vom Nutzer ausgelöster Abruf anders ist
ChatGPT-User unterscheidet sich von GPTBot, weil eine Person und kein Crawl-Zeitplan entscheidet, wann er eine Seite besucht. OpenAIs Seite sagt: „ChatGPT-User is not used for crawling the web in an automatic fashion. Because these actions are initiated by a user, robots.txt rules may not apply.“ (ChatGPT-User wird nicht zum automatischen Crawlen des Webs verwendet. Da diese Aktionen von einem Nutzer ausgelöst werden, gelten robots.txt-Regeln möglicherweise nicht.)
Zwei weitere Sätze aus demselben Eintrag sind für die Richtlinie wichtig. ChatGPT-User „is not used to determine whether content may appear in Search“ (wird nicht verwendet, um zu bestimmen, ob Inhalte in der Suche erscheinen dürfen), und OpenAI verweist Website-Betreiber stattdessen auf OAI-SearchBot: „Please use OAI-SearchBot in robots.txt for managing Search opt outs and automatic crawl.“ (Bitte verwenden Sie OAI-SearchBot in der robots.txt, um Ausschlüsse aus der Suche und den automatischen Crawl zu steuern.)
Eine Disallow-Zeile für ChatGPT-User ist also bestenfalls eine Bitte, die OpenAI laut eigener Aussage möglicherweise nicht erfüllt. Wenn Sie von Nutzern ausgelöste Abrufe wirklich stoppen müssen, muss das in Ihrer Firewall oder Anwendung geschehen, per IP. Wir haben nach einem datierten Changelog gesucht, wann diese Formulierung eingeführt wurde, und keinen gefunden: Die Seite verlinkt einen RSS-Feed für Aktualisierungen, und der war bei unserer Prüfung leer. Wir zitieren also den aktuellen Text und behaupten nichts darüber, wann er sich geändert hat.
ChatGPT-User ist nicht der einzige Weg, auf dem ChatGPT eine Website erreicht. OpenAIs Hilfeartikel zum Allowlisting des Cloud-Browsers von ChatGPT Work (die URL sagt noch „chatgpt-agent“, und Akamai führt ihn noch unter dem Bot-Namen „ChatGPT Agent“) sagt, der Cloud-Browser „uses Web Bot Auth to sign outbound HTTP requests“ (signiert ausgehende HTTP-Anfragen mit Web Bot Auth). Jede Anfrage trägt die Header Signature und Signature-Input sowie einen Header Signature-Agent mit dem Wert "https://chatgpt.com", und Sie verifizieren sie nach RFC 9421 gegen die Schlüssel unter chatgpt.com/.well-known/http-message-signatures-directory. Dieser Traffic wird über seine Signatur identifiziert, nicht über eine Range-Datei. Der Abschnitt zu Web Bot Auth in unserem Pillar-Leitfaden erklärt, wie Signaturprüfungen funktionieren.
IP-Bereiche von GPTBot, OAI-SearchBot und ChatGPT-User
OpenAI veröffentlicht die IP-Bereiche der drei Bots unter https://openai.com/gptbot.json, https://openai.com/searchbot.json und https://openai.com/chatgpt-user.json. Mit Stand 06.10.2026 enthielten sie 18, 39 und 230 IPv4-Präfixe und kein IPv6. Jede Range-Datei ist ein kleines JSON-Dokument mit einer creationTime und einer Liste von prefixes. Hier ist der Anfang der GPTBot-Datei und eine einzeilige Möglichkeit, alle drei zusammenzufassen:
curl -s https://openai.com/gptbot.json | head -c 120
# {
# "creationTime": "2026-09-22T02:00:07.000000",
# "prefixes": [
# {
# "ipv4Prefix": "132.196.86.0/24"
for f in gptbot searchbot chatgpt-user; do
curl -s https://openai.com/$f.json | jq -c '[.creationTime, (.prefixes | length), .prefixes[0]]'
done
# ["2026-09-22T02:00:07.000000",18,{"ipv4Prefix":"132.196.86.0/24"}]
# ["2026-01-02T11:00:00.000000",39,{"ipv4Prefix":"104.210.140.128/28"}]
# ["2026-09-25T18:04:57.257335",230,{"ipv4Prefix":"104.208.184.192/28"}]
Drei Dinge fielen an dem Tag auf, an dem wir sie abgerufen haben:
- Alle drei Range-Dateien enthalten nur IPv4. Keine enthielt einen Eintrag
ipv6Prefix. Code, der nuripv4Prefixauswertet, funktioniert heute, aber lesen Sie beide Schlüssel, da das Format IPv6 zulässt. - Die Strukturen sind sehr unterschiedlich. GPTBot hat 18 Präfixe, überwiegend
/25. ChatGPT-User hat 229 winzige/28-Blöcke mit je 16 Adressen plus ein großes/17,9.129.0.0/17. Bei einer von Hand gepflegten ChatGPT-User-Allowlist gibt es die meisten Einträge, die man falsch machen kann. - Alle drei OpenAI-IPs aus unserer Stichprobe (eine pro Datei) liegen im Netz von Microsoft (AS8075). Genau deshalb können Sie nicht die ASN auf die Allowlist setzen: Dasselbe Netz trägt jeden anderen Azure-Kunden, einschließlich jedes Einzelnen, der einen Server mietet, um sich als GPTBot auszugeben.
Kopierte Listen veralten. OpenAI aktualisiert diese Range-Dateien, und zwei der drei tragen eine creationTime aus den zwei Wochen vor unserem Abruf, eine aus einem Blogbeitrag kopierte Liste (dieser eingeschlossen) ist also veraltet, sobald sich eine Datei das nächste Mal ändert. Rufen Sie die Datei ab, cachen Sie sie und aktualisieren Sie sie regelmäßig. Kopieren Sie die Bereiche nicht in eine Konfigurationsdatei. Der Präfixabgleich selbst, einschließlich dessen, wie Sie eine IP pro Bot gegen veröffentlichte CIDR-Bereiche abgleichen, wird im Pillar-Leitfaden behandelt; dieser Beitrag bleibt bei OpenAIs drei Bots.
Sollte ich GPTBot blockieren? Was das Blockieren jedes Bots kostet
Blockieren Sie GPTBot, wenn Sie nicht möchten, dass Ihre Inhalte für das Training verwendet werden; laut OpenAI kostet Sie das in der ChatGPT-Suche nichts. Das Blockieren der anderen beiden hat sichtbare Kosten, es sollte also eine bewusste Entscheidung sein und kein Nebeneffekt einer Pauschalregel.
| Wenn Sie blockieren | Erhalten Sie | Geben Sie auf |
|---|---|---|
| GPTBot | Ein Signal, dass Ihre Inhalte nicht für das Training verwendet werden sollen | Nichts in der ChatGPT-Suche, laut OpenAIs „each setting is independent“ (jede Einstellung ist unabhängig) |
| OAI-SearchBot | Kein automatisches Crawlen für die ChatGPT-Suche | Das Erscheinen in Antworten der ChatGPT-Suche. Sie „can still appear as navigational links“ (können weiterhin als Navigationslinks erscheinen) |
| ChatGPT-User (per IP, da robots.txt möglicherweise nicht gilt) | Keine Seitenabrufe, wenn Nutzer ChatGPT nach Ihrer URL fragen | Diese Nutzer erhalten keine Antwort aus Ihrer Seite, und ChatGPT kann sie nicht für sie lesen |
Ein weiterer Satz von OpenAI ist wissenswert, wenn Sie beide Crawler zulassen: „If your site has allowed both bots, we may use the results from just one crawl for both use cases to avoid duplicative crawling.“ (Wenn Ihre Website beide Bots zulässt, verwenden wir möglicherweise die Ergebnisse eines einzigen Crawls für beide Zwecke, um doppeltes Crawlen zu vermeiden.) Beide zuzulassen verdoppelt also nicht unbedingt die Last.
Zur Einordnung, was andere Websites tun: Eine Ahrefs-Studie zu den robots.txt-Dateien von rund 140 Millionen Websites, veröffentlicht am 21.05.2025 mit Daten bis Dezember 2024, ergab, dass GPTBot mit 5,89 % der Websites der am häufigsten blockierte KI-Bot war. OAI-SearchBot wurde von 5,54 % blockiert und ChatGPT-User von 5,64 %. Das meiste davon sind Pauschalregeln: Nur 0,5 % der Websites nannten GPTBot ausdrücklich, 0,22 % ChatGPT-User und 0,08 % OAI-SearchBot. Lesen Sie diese Werte als Kontext, nicht als aktuelle Quoten. Die Daten stammen aus der Zeit vor den heutigen Bot-Beschreibungen und decken nur robots.txt ab, keine Firewall- oder IP-Sperren.
Die Lücke zwischen 5,54 % und 0,08 % ist der Punkt. Fast keine der Websites, die OAI-SearchBot blockieren, hat ihn beim Namen genannt. Die Sperre kam aus einer allgemeinen Regel, etwa User-agent: * mit Disallow: /, oder aus einer Allowlist, die nur bestimmte Bots zulässt, und beides erwischt den Such-Bot zusammen mit dem Trainings-Bot.
Wie Sie GPTBot blockieren, aber die ChatGPT-Suche zulassen
Um GPTBot zu blockieren, aber die ChatGPT-Suche zuzulassen, schließen Sie in der robots.txt GPTBot aus und lassen OAI-SearchBot zu, mit den Tokens genau so, wie OpenAI sie schreibt:
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: *
Allow: /
Es gibt keine Gruppe für ChatGPT-User, weil robots.txt laut OpenAI für ihn „may not apply“ (möglicherweise nicht gilt). OpenAI sagt außerdem, dass Suchergebnisse etwa 24 Stunden brauchen können, um eine robots.txt-Änderung widerzuspiegeln.
robots.txt ist nur die Hälfte dessen, worum OpenAI bittet. Unter OAI-SearchBot empfiehlt die Seite „allowing OAI-SearchBot in your site's robots.txt file and allowing requests from our published IP ranges“ (OAI-SearchBot in der robots.txt Ihrer Website zuzulassen und Anfragen aus unseren veröffentlichten IP-Bereichen zu erlauben). Die IP-Hälfte lässt sich leicht unbemerkt kaputt machen. Die OAI-SearchBot-Adresse aus unserer Stichprobe ist eine Microsoft-Azure-IP, die unsere API als datacenter_ip kennzeichnet, eine WAF-Regel, die Rechenzentrums- oder Azure-Traffic blockiert oder herausfordert, kann OAI-SearchBot also aussperren und Sie aus der ChatGPT-Suche werfen, selbst wenn die robots.txt Allow sagt. Wenn Sie eine solche Regel betreiben, nehmen Sie die Präfixe aus searchbot.json davon aus.
Prüfen Sie die Datei, die Ihr Server tatsächlich ausliefert, nicht die in Ihrem Repository. Ein CDN kann sie auf dem Weg nach draußen verändern. Cloudflares verwaltete robots.txt zum Beispiel „will prepend our managed robots.txt before your existing robots.txt“ (stellt unsere verwaltete robots.txt Ihrer bestehenden robots.txt voran). Ihre Regeln schließen GPTBot aus, erwähnen aber weder OAI-SearchBot noch ChatGPT-User, für sich allein ergibt sie also dieselbe Richtlinie „Training blockieren, Suche zulassen“ wie die Datei oben. Jede solche Einstellung fügt Regeln hinzu, die Sie nicht geschrieben haben, testen Sie also die ausgelieferte Datei:
import urllib.robotparser
p = urllib.robotparser.RobotFileParser("https://your-site.com/robots.txt")
p.read()
for bot in ["GPTBot", "OAI-SearchBot", "ChatGPT-User"]:
print(bot, p.can_fetch(bot, "/blog/"))
Gegen die Datei oben ausgeführt, gab der Parser von Python 3.9 GPTBot False, OAI-SearchBot True und ChatGPT-User True aus. Wenn OAI-SearchBot False zurückgibt, blockiert etwas weiter vorne die ChatGPT-Suche.
robots.txt vs. IP-Durchsetzung: Eine robots.txt-Regel ist eine Bitte, keine Sperre
Eine robots.txt-Regel teilt ehrlichen Crawlern mit, was Sie sich wünschen, aber nur eine IP-Prüfung dort, wo die Anfrage ankommt, stoppt einen Bot tatsächlich. OpenAIs echte Bots lesen die robots.txt. Ein Scraper, der GPTBot oder ChatGPT-User in seinen User-Agent schreibt, ignoriert sie, und den Namen zu borgen kostet ein einziges Flag: curl -A "ChatGPT-User/1.0" https://your-site.com/ trägt dasselbe Bot-Token wie das Original.
Der User-Agent kann Ihnen nicht sagen, welcher welcher ist, und die robots.txt auch nicht. Wenn Ihre Firewall oder Ihr CDN OpenAIs Bots bei Rate Limits oder Bot-Challenges durchwinkt, ist diese Ausnahme nur so gut wie Ihre Prüfung, wer da anfragt. Dasselbe gilt für jede andere Art von Bot; unsere Übersicht, welche IP-Signale welche Bots identifizieren, ordnet zu, welches Signal was prüft.
Die Durchsetzung muss dort stattfinden, wo die Anfrage ankommt, und sie braucht zwei Fakten zusammen (die nginx- und Express-Richtlinie, die das auf jeden KI-Crawler anwendet, nicht nur auf die von OpenAI, steht in unserem Leitfaden zum Blockieren von KI-Crawlern nach Verifizierung der IP):
- Die Behauptung: welches OpenAI-Token der User-Agent nennt.
- Der Beweis: ob die verbindende IP in der Range-Datei genau dieses Bots liegt.
Eine Behauptung ohne Beweis ist nicht als OpenAI verifiziert: Fordern Sie sie heraus oder drosseln Sie sie, statt sie als Angriff zu behandeln, denn der Pillar-Beitrag erklärt, warum eine IP außerhalb eines veröffentlichten Bereichs kein Beweis für eine Fälschung, sondern nicht eindeutig ist. Binden Sie jedes Token an seine eigene Range-Datei, denn eine ChatGPT-User-IP beweist keine GPTBot-Behauptung. Reverse DNS hilft hier nicht: Wir haben dig -x auf je eine IP aus jeder Datei ausgeführt, und alle drei lieferten NXDOMAIN vom Azure-DNS von Microsoft, es gibt also keinen Hostnamen, den man per Forward-Lookup bestätigen könnte. Die Range-Datei ist die Prüfung, die bei OpenAI funktioniert.
Wie Sie prüfen, ob eine Anfrage wirklich von OpenAI kam: drei echte IPs und eine Fälschung
Eine Anfrage kam von OpenAI, wenn ihre IP in der Range-Datei des Bots liegt, den ihr User-Agent nennt. Unsere API gibt für eine IP innerhalb der Datei verified: true und den Namen dieses Bots zurück und verified: false für eine IP außerhalb aller Crawler-Feeds, die wir prüfen. Wir haben am 06.10.2026 die erste Adresse im ersten Präfix jeder OpenAI-Range-Datei abgefragt, dazu einen DigitalOcean-Server. Die Ergebnisse ändern sich, wenn sich die Bereiche verschieben.
| IP | Aus Datei | threat.crawler | Netz und Stadt | Score, Aktion |
|---|---|---|---|---|
| 132.196.86.0 | gptbot.json | verified: true, name: GPTBot | Microsoft AS8075, Des Moines US | 0, allow |
| 104.210.140.128 | searchbot.json | verified: true, name: OAISearchBot | Microsoft AS8075, San Antonio US | 0, allow |
| 104.208.184.192 | chatgpt-user.json | verified: true, name: ChatGPTUser | Microsoft AS8075, Boydton US | 0, allow |
| 104.248.50.21 | keine | verified: false, name: none | DigitalOcean AS14061, North Bergen US | 15, allow |
Beachten Sie, dass die Crawler-Namen der API keine Bindestriche enthalten: OAISearchBot und ChatGPTUser, nicht OAI-SearchBot und ChatGPT-User.
Alle drei OpenAI-Adressen kamen mit operator: "OpenAI", category: "ai" und verification_method: "ip_range_list" zurück. Nun das nachverfolgte Beispiel. Stellen Sie sich eine Log-Zeile vor, zur Veranschaulichung und nicht aus unserem Traffic: eine Anfrage mit dem User-Agent ChatGPT-User/1.0 von 104.248.50.21. Hier ist diese IP neben einer echten ChatGPT-User-Adresse, gekürzt aus den Live-Antworten:
[
{
"ip": "104.208.184.192",
"asn": { "asn": 8075, "org": "MICROSOFT-CORP-MSN-AS-BLOCK - Microsoft Corporation", "asn_type": "hosting" },
"detection": { "is_hosting": true, "is_vpn": false, "is_proxy": false },
"threat": {
"is_crawler": true,
"crawler": {
"verified": true,
"name": "ChatGPTUser",
"operator": "OpenAI",
"category": "ai",
"verification_method": "ip_range_list"
}
},
"scoring": {
"fraud_score": 0,
"recommended_action": "allow",
"detection_methods": ["datacenter_ip", "no_ptr_datacenter", "verified_crawler"]
}
},
{
"ip": "104.248.50.21",
"asn": { "asn": 14061, "org": "DIGITALOCEAN-ASN - DigitalOcean, LLC", "asn_type": "hosting" },
"detection": { "is_hosting": true, "is_vpn": false, "is_proxy": false },
"threat": {
"is_crawler": false,
"crawler": {
"verified": false,
"name": "none",
"operator": "none",
"category": "none",
"verification_method": "none"
}
},
"scoring": {
"fraud_score": 15,
"recommended_action": "allow",
"detection_methods": ["datacenter_ip", "no_ptr_datacenter"]
}
}
]
Lesen Sie es in drei Schritten:
- Die Abfrage. Die DigitalOcean-IP steht in keinem Crawler-Feed, den wir prüfen, daher ist
threat.crawler.verifiedfalseundname"none". Ihr Score ist 15,allow, denn eine Rechenzentrums-IP ist für sich allein nicht bösartig. - Der Vergleich. Die API erhält nur die IP, sie hat die ChatGPT-User-Behauptung also nie gesehen, und das Feld
crawler.spoofedder Antwort (oben gekürzt) ist ein Platzhalter, der immer false ist, es kann Ihnen also nicht sagen, dass die Anfrage ehrlich ist. Ihr Code hält beide Fakten: Die Anfrage behauptet ein OpenAI-Token, und die verifizierte Identität ist"none". Diese Abweichung ist das Spoofing. - Der Kontrast.
104.208.184.192steht inchatgpt-user.json, kommt also mitverified: true,name: "ChatGPTUser"zurück, undverified_crawlerzieht ihren Score auf 0.
Der Vergleich ist ein paar Zeilen lang. Die Map übersetzt jedes User-Agent-Token in den bindestrichfreien Namen der API:
const OPENAI_BOTS = { "GPTBot": "GPTBot", "OAI-SearchBot": "OAISearchBot", "ChatGPT-User": "ChatGPTUser" };
const ua = req.headers["user-agent"] ?? "";
const claimed = Object.keys(OPENAI_BOTS).find((token) => ua.includes(token));
if (claimed) {
const res = await fetch(`https://api.geoiphub.com/v1/lookup/${clientIp}`, {
headers: { "x-api-key": process.env.GEOIPHUB_KEY },
});
const { threat } = await res.json();
const isThatBot = threat.crawler.verified && threat.crawler.name === OPENAI_BOTS[claimed];
if (!isThatBot) {
// Claims an OpenAI bot, but the IP isn't in that bot's file: challenge or rate-limit it.
}
}
Um es ohne Schlüssel auszuprobieren, führen Sie curl https://api.geoiphub.com/v1/lookup/104.208.184.192 aus (30 anonyme Abfragen pro Minute), oder fügen Sie eine IP aus Ihren eigenen Logs in das kostenlose IP-Lookup-Tool ein. Für IPv6-Quellen in der Gruppe „nicht verifiziert“ drosseln Sie per Präfix, wie in unserem Leitfaden zum Drosseln und Blockieren von IPv6 per /64-Präfix.
Wo diese Prüfung an Grenzen stößt
Die Prüfung hat drei Grenzen: Sie deckt weder OAI-AdsBot noch den signierten Traffic des ChatGPT-Cloud-Browsers ab, sie kann Ihre Anfrage-Header nicht sehen, und ein neues Präfix kann bis zu 2 Tage brauchen, bis es über uns verifiziert wird. Außerdem ist ein Ausgabefeld bei unserem Imitator-Beispiel falsch.
- Wir verifizieren drei der vier Bots von OpenAI. Die Crawler-Verifizierung von GeoIPHub prüft 19 offizielle Range-Feeds von 10 Betreibern, darunter OpenAIs Dateien für GPTBot, ChatGPT-User und OAI-SearchBot sowie die Dateien, die Anthropic und Perplexity für ClaudeBot und PerplexityBot veröffentlichen. OAI-AdsBot gehört nicht dazu, prüfen Sie ihn also mit OpenAIs eigener Methode.
- Wir verifizieren keine Signaturen. Der Cloud-Browser von ChatGPT Work wird über seine Web-Bot-Auth-Signatur identifiziert, die keiner unserer Range-Feeds abdeckt. Verifizieren Sie sie selbst gegen OpenAIs Schlüsselverzeichnis; laut OpenAIs Artikel verifizieren Cloudflare, Akamai und HUMAN sie automatisch.
- Die API sieht eine IP, nicht Ihre Header. Sie kann Ihnen sagen, dass eine Adresse zu ChatGPT-User gehört. Das mit dem User-Agent abzugleichen, den die Anfrage behauptet hat, ist die Aufgabe Ihres Codes, wie oben.
- Feeds können bis zu 2 Tage hinterherhinken. Wir rufen Crawler-Range-Dateien täglich neu ab und bauen die Lookup-Datenbank täglich neu, und zwei der drei Range-Dateien von OpenAI wurden in den zwei Wochen vor unserem Abruf erstellt. Ein brandneues Präfix wird über uns möglicherweise ein paar Tage lang nicht verifiziert, eine Abweichung ist also ein Grund für eine Challenge, nicht für eine harte Sperre.
no_ptr_datacenterstimmt hier und ist bei unserem Imitator falsch. Es griff bei allen drei OpenAI-IPs, unddig -xbestätigt, dass sie kein Reverse DNS haben. Aber104.248.50.21hat einen aktiven PTR-Eintrag, den unser Datensatz nicht enthält. Das ist dieselbe Lücke, die wir beim Verifizieren von Googlebot per IP und Erkennen von Fälschungen gefunden haben, und sie ist als Backend-Fehler erfasst. Das Crawler-Urteil hängt nicht davon ab.
Dieselbe Prüfung von Behauptung und Beweis ist auch beim Checkout wichtig, wo ein automatisierter Käufer jeden beliebigen Bot-Namen behaupten kann. Siehe wie Sie KI-Shopping-Agenten beim Checkout per IP behandeln für diese Variante.
Beginnen Sie mit Ihrer ausgelieferten robots.txt: Führen Sie die kurze Python-Prüfung oben aus und stellen Sie sicher, dass OAI-SearchBot True ergibt, sofern Sie nichts anderes beabsichtigt haben. Ziehen Sie dann eine Woche an Anfragen aus Ihren Logs, die GPTBot, OAI-SearchBot oder ChatGPT-User nennen, und prüfen Sie deren IPs gegen die drei Range-Dateien. Die, die nicht übereinstimmen, sind nicht als OpenAI verifiziert: Fordern Sie sie heraus oder drosseln Sie sie.
Häufig gestellte Fragen
Ist ChatGPT-User dasselbe wie GPTBot?
Nein. GPTBot crawlt nach eigenem Zeitplan und sammelt Inhalte, die zum Training von OpenAIs Modellen verwendet werden können. ChatGPT-User besucht eine Seite nur, wenn eine Person, die ChatGPT oder ein Custom GPT nutzt, das auslöst, und laut OpenAI wird er nicht zum automatischen Crawlen des Webs verwendet. Außerdem veröffentlicht OpenAI getrennte IP-Range-Dateien: gptbot.json und chatgpt-user.json.
Kann ich ChatGPT-User per robots.txt blockieren?
Nicht zuverlässig. OpenAI sagt, ChatGPT-User-Abrufe werden von einem Nutzer ausgelöst, daher „robots.txt rules may not apply“ (gelten robots.txt-Regeln möglicherweise nicht). Außerdem sagt OpenAI, dass ChatGPT-User nicht darüber entscheidet, ob Inhalte in der ChatGPT-Suche erscheinen; das tut OAI-SearchBot. Wenn Sie von Nutzern ausgelöste Abrufe stoppen müssen, blockieren Sie sie per IP in Ihrer Firewall oder Anwendung, mit den Bereichen aus openai.com/chatgpt-user.json.
Was ist OAI-SearchBot?
OAI-SearchBot ist OpenAIs Such-Crawler. Laut OpenAI wird er verwendet, um Websites in den Suchergebnissen der Suchfunktionen von ChatGPT anzuzeigen. Sein User-Agent enthält das Token OAI-SearchBot/1.4 in einem String, der wie ein Desktop-Chrome aussieht, und seine IP-Bereiche stehen unter openai.com/searchbot.json, die am 06.10.2026 39 IPv4-Präfixe enthielt. OpenAI empfiehlt, ihn in der robots.txt zuzulassen und Anfragen aus seinen veröffentlichten IP-Bereichen zu erlauben.
Respektiert OAI-SearchBot die robots.txt?
Ja. OpenAI nennt OAI-SearchBot und GPTBot als seine robots.txt-Tags und sagt, dass Websites, die OAI-SearchBot ausschließen, nicht in den Antworten der ChatGPT-Suche angezeigt werden, aber weiterhin als Navigationslinks erscheinen können.
Wie lange dauert eine robots.txt-Änderung für die ChatGPT-Suche?
Etwa 24 Stunden, laut OpenAI: „it can take ~24 hours from a site's robots.txt update for our systems to adjust“ (es kann nach einer Aktualisierung der robots.txt etwa 24 Stunden dauern, bis sich unsere Systeme anpassen).
Wo stehen die IP-Bereiche von GPTBot?
Unter https://openai.com/gptbot.json. Die Kopie, die wir am 06.10.2026 abgerufen haben, wurde am 22.09.2026 erstellt und enthielt 18 IPv4-Präfixe und kein IPv6. Die Bereiche von OAI-SearchBot stehen unter openai.com/searchbot.json, die von ChatGPT-User unter openai.com/chatgpt-user.json. Rufen Sie die Dateien regelmäßig ab, statt die Bereiche zu kopieren, denn sie ändern sich.
Warum kommt GPTBot von einer Microsoft-IP?
In unserer Stichprobe war das so: Die GPTBot-Adresse, die wir abgefragt haben, sowie die OAI-SearchBot- und ChatGPT-User-Adressen lagen alle im Netz von Microsoft, AS8075. OpenAIs Crawler-Seite sagt nicht, aus welchem Netz gecrawlt wird, daher berichten wir nur, was unsere Stichprobe zeigte. Da andere Microsoft-Cloud-Kunden diese ASN teilen, beweist sie für sich allein nichts. Prüfen Sie die IP stattdessen gegen gptbot.json.
Entfernt mich das Blockieren von GPTBot aus ChatGPT?
Laut OpenAI nicht aus der ChatGPT-Suche. Die Dokumentation sagt, jede Einstellung sei unabhängig, und nennt als Beispiel, OAI-SearchBot zuzulassen, um in Suchergebnissen zu erscheinen, und GPTBot auszuschließen, um dem Training zu widersprechen. Erst das Blockieren von OAI-SearchBot entfernt Sie aus den Antworten der ChatGPT-Suche.
Das Team hinter der GeoIPHub-API
Verfasst vom GeoIPHub-Team, den Menschen, die die GeoIPHub-API für IP-Intelligence und ihren Scanner entwickeln. Entwürfe entstehen mit KI-Unterstützung und werden vom Team redigiert; API-Beispiele sind echte Abfragen gegen die Live-API, sofern nicht als illustrativ gekennzeichnet.


