Zum Inhalt springen
EnglishErstgespräch vereinbaren

Ratgeber · GEO & KI-Suche

KI-Traffic messen ohne Cookies

Kurz gesagt

KI-Traffic messen Sie ohne Cookies und ohne Skript in den Zugriffsprotokollen Ihres Servers oder CDN. Besuche aus KI-Antworten erkennen Sie dort an der verweisenden Website wie chatgpt.com und am Parameter utm_source=chatgpt.com. Abrufe durch KI-Systeme erkennen Sie an Kennungen wie ChatGPT-User, die Sie mit den IP-Listen der Anbieter prüfen. Behalten Sie danach nur Summen.

Das Wichtigste in Kürze

  • KI-Traffic sind zwei Größen: Besuche von Menschen über Links in KI-Antworten und Abrufe durch KI-Systeme. Zählen Sie beide getrennt.
  • Besuche erkennen Sie am Referrer wie chatgpt.com oder www.perplexity.ai. ChatGPT hängt zusätzlich utm_source=chatgpt.com an seine Links.
  • Abrufe für eine laufende Frage tragen Kennungen wie ChatGPT-User, Claude-User oder Perplexity-User. Prüfen Sie jeden mit der IP-Liste des Betreibers.
  • Google Analytics schließt bekannte Bots automatisch aus. Abrufe durch KI-Crawler finden Sie deshalb in Server- und CDN-Protokollen.
  • Protokolle liefern Untergrenzen. Antworten ohne Klick fehlen, und Klicks aus Googles KI-Funktionen lassen sich nicht von der übrigen Google-Suche trennen.

Was zählt als KI-Traffic?

Als KI-Traffic zählen zwei verschiedene Dinge: Besuche von Menschen, die einen Link in einer KI-Antwort angeklickt haben, und Abrufe, bei denen KI-Systeme Ihre Seiten selbst holen. Besuche erkennen Sie an der Herkunft, Abrufe an der Kennung des abrufenden Programms. Zählen Sie beides getrennt, denn ein Abruf ist kein Besuch.

Die Abrufe teilen sich nach ihrem Zweck weiter auf:

Nur einer von fünf Wegen in Ihre Protokolle ist ein Besuch
Nur einer von fünf Wegen in Ihre Protokolle ist ein Besuch Von KI-Systemen führen fünf Wege in die Server- und CDN-Protokolle. Nur einer ist ein Besuch: Ein Mensch klickt auf einen Link in einer KI-Antwort. Die übrigen vier sind Abrufe durch KI-Systeme: Nutzerabruf, Agent, Such-Crawler und Trainings-Crawler. Die Tabelle darunter nennt, woran Sie jede Art erkennen. KI-Systeme und ihre Antworten Besuch aus einer KI-Antwort ein Mensch klickt auf einen Link; Referrer, bei ChatGPT auch utm_source=chatgpt.com Nutzerabruf ChatGPT-User, Claude-User, Perplexity-User Agent Claude-Agent, Google-Agent, bei OpenAI eine Signatur, die im üblichen Protokollformat fehlt Such-Crawler OAI-SearchBot, PerplexityBot, Claude-SearchBot Trainings-Crawler GPTBot, ClaudeBot Server- und CDN-Protokolle
Arten von KI-Traffic, Stand 07.11.2026
ArtWas geschiehtWoran Sie es erkennenWo es sichtbar ist
Besuch aus einer KI-AntwortEin Mensch klickt in ChatGPT, Perplexity, Copilot, Gemini oder Claude auf einen Link zu Ihrer Website.verweisende Website (Referrer), bei ChatGPT auch der Parameter utm_source=chatgpt.comServer- und CDN-Protokolle, Webanalyse
NutzerabrufEin KI-Assistent öffnet Ihre Seite, während er die Frage einer Person beantwortet.Kennung wie ChatGPT-User, Claude-User oder Perplexity-UserServer- und CDN-Protokolle
AgentEin Browser auf den Servern eines KI-Anbieters erledigt im Auftrag einer Person eine Aufgabe auf Ihrer Website.Kennung wie Claude-Agent oder Google-Agent, bei OpenAI eine Signatur in eigenen KopfzeilenServer- und CDN-Protokolle; die Signatur von OpenAI fehlt im üblichen Protokollformat
Such-CrawlerEin Programm baut den Suchindex, aus dem ein KI-Assistent später seine Quellen wählt.Kennung wie OAI-SearchBot, Claude-SearchBot oder PerplexityBotServer- und CDN-Protokolle
Trainings-CrawlerEin Programm sammelt Inhalte, die in künftige Sprachmodelle einfließen können.Kennung wie GPTBot oder ClaudeBotServer- und CDN-Protokolle

Die Angaben zu den Abrufen stammen aus der Dokumentation der Betreiber:

Warum getrennt: Ein Nutzerabruf zeigt, dass ein KI-Assistent Ihre Seite für eine Antwort geöffnet hat. Ob die Antwort Sie nennt und ob jemand klickt, zeigt er nicht. Ein Besuch zeigt den Klick, aber nicht die Frage, die ihm vorausging. Antworten, auf die niemand klickt, hinterlassen in Ihren Protokollen gar keine Spur. Wie oft KI-Systeme Sie in Antworten nennen, messen Sie deshalb mit festen Fragen, wie es unser Ratgeber KI-Sichtbarkeit messen beschreibt. Wie KI-Systeme ihre Quellen auswählen, erklärt unser Leitfaden zu GEO (Generative Engine Optimization). Was die einzelnen Crawler dürfen und wie Sie sie steuern, steht in unserer Übersicht der KI-Crawler.

Typischer Fehler: Abrufe von Crawlern werden zu den Besuchen gezählt. Dann wirkt eine Seite beliebt, die vor allem Programme abrufen.

Erledigt, wenn Sie festgelegt haben, welche Arten Sie zählen, und jede getrennt ausweisen.

Wo finden Sie die Daten ohne Cookies und Skript?

Die Daten stehen in den Zugriffsprotokollen Ihres Servers und, wenn ein CDN Ihre Seiten ausliefert, in den Protokollen des CDN. Jede Zeile beschreibt einen Abruf mit Zeit, Adresse, Status, verweisender Website und Kennung des Programms. Diese Protokolle entstehen ohne Cookie und ohne Skript im Browser. Sie enthalten auch die Abrufe durch Bots, die eine Webanalyse wie Google Analytics ausfiltert.

Was in einer Zeile steht: Bei nginx ist das Format combined voreingestellt, bei Apache ist es eines der üblichen Formate (Dokumentation von nginx (externe Website) und Apache (externe Website)). Diese Zeile zeigt einen Besuch aus ChatGPT, die Werte sind erfunden:

Zugriffsprotokoll im Format combined: ein Besuch aus ChatGPT, erfundene Werte
192.0.2.10 - - [06/Nov/2026:09:12:01 +0100] "GET /?utm_source=chatgpt.com HTTP/2.0" 200 57159 "https://chatgpt.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36"
Felder einer Zeile im Format combined und wofür Sie sie brauchen
FeldWert im BeispielWofür Sie es brauchen
IP-Adresse192.0.2.10Prüfung, ob ein Abruf wirklich vom Betreiber kommt
Zeit06/Nov/2026:09:12:01 +0100Zuordnung zu Tag und Monat
AnfrageGET /?utm_source=chatgpt.comaufgerufene Seite, bei ChatGPT mit Parameter
Status200nur erfolgreich ausgelieferte Seiten zählen
Referrerhttps://chatgpt.com/verweisende Website eines Besuchs
User-AgentMozilla/5.0 (Windows NT 10.0 …Kennung eines Crawlers, Nutzerabrufs oder Agenten

Warum das CDN zählt: Ein CDN ist das Netz, das Ihre Seiten aus der Nähe der Besucher ausliefert. Kommt eine Seite aus seinem Zwischenspeicher, muss die Anfrage Ihren Server nicht erreichen (MDN zum HTTP-Caching (externe Website)). Dann steht der Abruf nur im Protokoll des CDN. Bunny, das CDN unserer Website, hält seine Protokolle drei Tage vor. Zu jedem Abruf nennt es auch Cache-Status, Land und Netzbetreiber (Dokumentation von Bunny (externe Website)).

Warum Webanalyse mit Skript nicht reicht: Google Analytics schließt bekannte Bots automatisch aus, und Sie können das nicht abschalten (Google Analytics-Hilfe zu Bots (externe Website)). Für Abrufe durch KI-Crawler brauchen Sie deshalb die Protokolle. Besuche aus KI-Assistenten fasst Google Analytics im Kanal „AI Assistant“ zusammen. Als Beispiele nennt Google ChatGPT, Gemini, DeepSeek, Copilot und Grok. Googles Übersicht mit KI (AI Overviews) und den KI-Modus (AI Mode) rechnet der Kanal nicht dazu (Kanalgruppen von Google Analytics (externe Website)).

So gehen Sie vor:

  1. Fragen Sie Ihren Hoster nach dem Zugriffsprotokoll Ihrer Website (Access-Log), nach seinem Format und danach, wie lange er es aufbewahrt. Gibt er keine Protokolle heraus, bleiben Ihnen die Berichte von Google und Bing, eine Webanalyse und die Frage nach der Herkunft.
  2. Liefert ein CDN Ihre Seiten aus, schalten Sie dort die Protokolle ein und werten Sie diese aus.
  3. Prüfen Sie, ob die Protokolle die volle IP-Adresse enthalten, eine gekürzte oder gar keine. Davon hängt ab, wie Sie Abrufe prüfen (Schritt 5).
  4. Legen Sie fest, wann die Auswertung läuft. Bewahrt Ihr Anbieter die Protokolle nur drei Tage auf, lassen Sie sie täglich laufen.

Typischer Fehler: Ausgewertet wird nur das Protokoll des Servers, obwohl das CDN Seiten aus seinem Zwischenspeicher ausliefert. Diese Abrufe fehlen dann.

Erledigt, wenn Sie wissen, wo Ihre Protokolle liegen, welche Felder sie enthalten und wie lange sie aufbewahrt werden.

Wie erkennen Sie Besuche aus KI-Antworten?

Besuche aus KI-Antworten erkennen Sie am Referrer, also an der verweisenden Website, etwa chatgpt.com oder www.perplexity.ai. ChatGPT hängt an Links in seinen Antworten zusätzlich den Parameter utm_source=chatgpt.com an, der auch ohne Referrer in der Adresse steht. Klicks aus Googles Übersicht mit KI und dem KI-Modus lassen sich so nicht von anderen Klicks aus der Google-Suche trennen.

Woran Sie Besuche aus KI-Assistenten erkennen, Stand 07.11.2026
DienstReferrerParameter in der AdresseHinweis
ChatGPTchatgpt.comutm_source=chatgpt.comchat.openai.com leitet auf chatgpt.com weiter
Perplexitywww.perplexity.ai keine Angabeperplexity.ai leitet auf www.perplexity.ai weiter
Microsoft Copilotcopilot.com, copilot.microsoft.com keine Angabecopilot.microsoft.com leitet auf copilot.com weiter
Geminigemini.google.com keine Angabe keine Angabe
Claudeclaude.ai keine Angabe keine Angabe
Googles Übersicht mit KI und KI-Moduswie die Google-Suche keine AngabeKlicks zählt die Search Console im Suchtyp Web

Messung vom  · curl 8.21.0, Abruf der Startadressen der Dienste, Weiterleitungen und Kopfzeile Referrer-Policy

Wie viele Besuche KI-Assistenten in Deutschland bisher schicken, zeigt unsere Datenseite zur KI-Suche.

Was der Referrer verrät: Legt eine Website keine eigene Regel fest, nennt der Browser einer fremden Website nur die Domain der verweisenden Seite, etwa https://chatgpt.com/, ohne Pfad. So beschreibt es MDN zur Referrer-Policy (externe Website) für die voreingestellte Regel strict-origin-when-cross-origin. chatgpt.com und copilot.com lieferten bei unserem Abruf genau diese Regel aus. Sie sehen also, dass jemand aus ChatGPT kam, aber nicht, aus welcher Unterhaltung. Einzelne Links können die Regel überschreiben und den Referrer weglassen, etwa mit rel="noreferrer".

Was der Parameter zeigt: Im Oktober 2026 schrieb OpenAI noch in seiner Hilfe für Website-Betreiber, ChatGPT hänge den Parameter automatisch an seine Links an (archivierte Fassung vom 04.10.2026 (externe Website)). Am 07.11.2026 leitete die Seite auf einen anderen Artikel weiter. Der Parameter steht in der aufgerufenen Adresse selbst. Er kommt deshalb auch an, wenn der Browser keinen Referrer schickt. Verlassen Sie sich trotzdem nicht allein darauf. Profound, ein Anbieter von Messwerkzeugen, hat beobachtet, dass er vom 08. bis 16.10.2026 an vielen Links fehlte. Etwa 27 Stunden lang trugen nur 5–12 % der Antworten mit Quellenlinks einen markierten Link, davor und danach rund 99 %.

Quelle: Profound (externe Website),  · Anbieterstudie · Antworten mit Quellenlinks, ausgewertet in 30-Minuten-Abschnitten

Was bei Google anders ist: Klicks auf Links in der Übersicht mit KI und im KI-Modus zählt die Search Console als normale Klicks im Leistungsbericht, Suchtyp Web (Google Search Central (externe Website); Zählweise der Search Console (externe Website)). Eine eigene Kennung in Referrer oder Adresse nennt Google für diese Klicks nicht. In Ihren Protokollen lassen sie sich deshalb nicht von anderen Klicks aus der Google-Suche trennen. Wie oft Ihre Seiten in diesen Antworten erscheinen, zeigt der Bericht zu generativer KI. Ihn beschreibt unser Abschnitt zu den Berichten von Google und Bing.

So gehen Sie vor:

  1. Zählen Sie Seitenaufrufe mit einem Referrer aus der Tabelle, je Dienst und je Seite.
  2. Zählen Sie Aufrufe mit utm_source=chatgpt.com, aber ohne passenden Referrer, ebenfalls als Besuche aus ChatGPT. Jeder Aufruf zählt nur einmal.
  3. Werten Sie nur Seiten aus, die mit Status 200 oder 304 ausgeliefert wurden, keine Bilder oder Stylesheets. Der Status 304 heißt, dass der Browser die Seite schon hatte und nur nachgefragt hat (RFC 9110 zum Status 304 (externe Website), Abschnitt 15.4.5).
  4. Prüfen Sie die Liste der Dienste alle paar Monate. Adressen ändern sich, wie der Umzug von Copilot auf copilot.com zeigt.

Für einen ersten Blick reichen drei Befehle im Terminal unter Linux oder macOS:

Terminal: Besuche aus ChatGPT und Nutzerabrufe schnell zählen
grep -c '"https://chatgpt.com/' access.log
grep -c 'utm_source=chatgpt.com' access.log
grep -c 'ChatGPT-User' access.log

Die Befehle zählen alle passenden Zeilen, auch Fehlerseiten. Unter Windows zählt (Select-String -Path access.log -Pattern 'ChatGPT-User').Count in der PowerShell dasselbe. Genauer zählt das Programm unter „Aus der Praxis“.

Typischer Fehler: Nur der Referrer wird ausgewertet. Besuche, bei denen nur der Parameter ankommt, fehlen dann. Wer dagegen Referrer und Parameter getrennt addiert, zählt manche Besuche doppelt.

Erledigt, wenn Ihre Auswertung Besuche je KI-Dienst und Einstiegsseite zählt und jeden Aufruf nur einmal.

Wie erkennen Sie Abrufe durch KI-Systeme?

Abrufe durch KI-Systeme erkennen Sie an der Kennung im User-Agent, dem Feld, in dem sich ein Programm vorstellt. Für Abrufe im Moment einer Frage heißen die Kennungen bei OpenAI, Anthropic und Perplexity ChatGPT-User, Claude-User und Perplexity-User. Suchen Sie nach dem Namen ohne Versionsnummer, denn andere Teile der Zeichenfolge können sich ändern.

Kennungen für Nutzerabrufe und Agenten, Stand 07.11.2026
KennungBetreiberWann der Abruf kommtIP-Liste des Betreibers
ChatGPT-UserOpenAIwenn ChatGPT oder ein eigenes GPT für eine Frage eine Seite öffnetopenai.com/chatgpt-user.json
Claude-UserAnthropicwenn Claude für eine Frage eine Seite öffnetclaude.com/crawling/bots.json
Perplexity-UserPerplexitywenn Perplexity für eine Antwort eine Seite besuchtwww.perplexity.ai/perplexity-user.json
Claude-AgentAnthropicwenn ein Browser von Anthropic im Auftrag einer Person eine Aufgabe erledigt, etwa in Claude Duetclaude.com/.well-known/sail
Google-AgentGooglewenn ein Agent auf Servern von Google im Auftrag einer Person im Web navigiert und handeltuser-triggered-agents.json unter developers.google.com/static/crawling/ipranges/
Kopfzeile Signature-Agent mit dem Wert https://chatgpt.comOpenAIwenn der Cloud-Browser von ChatGPT Work eine Seite öffnet; OpenAI nennt zur Erkennung die Signatur, keine Kennung im User-AgentSchlüssel unter chatgpt.com/.well-known/http-message-signatures-directory

Warum Nutzerabrufe aufschlussreich sind: Sie zeigen, welche Seiten KI-Assistenten gerade für Antworten öffnen. Nach unserer Einschätzung zeigt keine andere Spur in Ihren Protokollen so direkt, welche Inhalte KI-Antworten nutzen. Ein Abruf beweist aber kein Zitat: Ob die Antwort Ihre Seite nennt, sehen Sie darin nicht. Ob ein Abruf für eine oder für mehrere Fragen steht, beschreiben OpenAI, Anthropic und Perplexity in ihrer Dokumentation nicht. Die Zahl der Abrufe ist deshalb kein Maß für die Zahl der Fragen.

Such- und Trainings-Crawler: OAI-SearchBot, Claude-SearchBot und PerplexityBot bauen die Suchindizes der Assistenten, GPTBot und ClaudeBot sammeln Inhalte für das Training. Für die KI-Funktionen der Google-Suche ruft Googlebot (externe Website) Ihre Seiten ab. Microsoft nutzt Inhalte, die seine Crawler sammeln, auch für Antworten von Copilot (Microsoft Bing, 30.10.2026 (externe Website)); der Standard-Crawler heißt Bingbot (externe Website). Weitere Kennungen mit Zweck und Folgen einer Sperre stehen in unserer Liste der KI-Crawler.

So gehen Sie vor:

  1. Suchen Sie im User-Agent nach dem Namen der Kennung, ohne auf Groß- und Kleinschreibung zu achten.
  2. Ordnen Sie jede Kennung einer Art zu: Nutzerabruf, Agent, Suche oder Training.
  3. Zählen Sie Nutzerabrufe und Agenten je Seite. Vergleichen Sie die Liste mit den Seiten, die KI-Assistenten zitieren sollen.
  4. Prüfen Sie jeden Abruf, wie Schritt 5 es beschreibt.

Beispiel: So stellt sich ChatGPT-User laut OpenAI vor. Gesucht wird nur nach „ChatGPT-User“:

User-Agent von ChatGPT-User laut OpenAI
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot

Typischer Fehler: Gesucht wird nach der vollständigen Zeichenfolge mit Versionsnummer. Mit der nächsten Version fallen alle Abrufe aus der Zählung.

Erledigt, wenn jede Kennung einer Art zugeordnet ist und Ihre Auswertung Nutzerabrufe je Seite zeigt.

Wie prüfen Sie, ob ein Abruf echt ist?

Gleichen Sie die IP-Adresse jedes Abrufs mit der Liste ab, die sein Betreiber veröffentlicht. Die Kennung im User-Agent kann jeder fälschen, darauf weisen Google, Microsoft und Anthropic selbst hin. Fehlt die IP-Adresse in Ihren Protokollen, ist ein Abruf nicht prüfbar. Weisen Sie solche Abrufe getrennt aus.

Die Listen haben dasselbe Format: Google, OpenAI, Perplexity, Anthropic und Microsoft veröffentlichen ihre IP-Bereiche als JSON-Datei. Darin steht eine Liste prefixes, jeder Eintrag nennt einen Bereich unter ipv4Prefix oder ipv6Prefix. Die Adressen für Claude-Agent stehen in einer eigenen Datei im Format SAIL. Laut Anthropic ist dieses Format ein Entwurf und noch kein Standard. Laden Sie die Listen vor jeder Auswertung neu. Microsoft rät, die Liste für Bingbot täglich zu laden, weil sie sich jederzeit ändern kann (Prüfung von Bingbot (externe Website)). Für Claude-Agent empfiehlt Anthropic, die Adressen automatisch zu übernehmen.

Messung vom  · curl 8.21.0 und Python 3.12, Aufbau von zehn IP-Listen und der SAIL-Datei verglichen

Ohne IP-Adresse: Bunny etwa kürzt die IP-Adresse auf Wunsch beim Abruf der Protokolle oder entfernt sie ganz. Dann bleibt der Netzbetreiber als Anhaltspunkt: Bunny nennt zu jedem Abruf die Nummer des Netzes (ASN) und dessen Betreiber. OpenAI veröffentlicht für ChatGPT-User eigene Adressbereiche. Kommt ein Abruf mit dieser Kennung aus dem Netz eines Anbieters für Privatanschlüsse, stammt er kaum von OpenAI. Einen Abgleich mit der IP-Liste ersetzt diese Probe nicht.

Für Googlebot und Bingbot gibt es zusätzlich die Prüfung über den Reverse DNS (Prüfung bei Google (externe Website)). Wie sie funktioniert und wo alle Betreiber ihre Listen veröffentlichen, steht in unserem Abschnitt zur Prüfung echter KI-Crawler.

So gehen Sie vor:

  1. Laden Sie die IP-Listen der Betreiber, deren Kennungen in Ihren Protokollen stehen.
  2. Prüfen Sie beim Auswerten, ob die IP-Adresse in einem der Bereiche liegt. Vermerken Sie nur das Ergebnis: passt, passt nicht oder nicht prüfbar.
  3. Verwerfen Sie die IP-Adresse danach.
  4. Weisen Sie die drei Ergebnisse getrennt aus. Berichten Sie als Abrufe eines Anbieters nur die, deren IP-Adresse passt.

Typischer Fehler: Ein Abruf wird allein nach seiner Kennung gezählt. Gefälschte Abrufe landen dann in Ihrer Statistik.

Erledigt, wenn jeder gezählte Abruf eines der drei Ergebnisse trägt.

Wie halten Sie die Auswertung datensparsam?

Werten Sie die Protokolle regelmäßig aus und behalten Sie danach nur Summen: Besuche je KI-Dienst und Seite, Abrufe je Kennung, Seite und Prüfergebnis. Die IP-Adresse brauchen Sie nur für die Prüfung der Abrufe, die verweisende Website nur mit ihrem Namen. Besucher und Sitzungen zählen Sie nicht, denn dafür müssten Sie Abrufe miteinander verknüpfen.

Die Auswertung speichert nichts im Browser Ihrer Besucher und liest dort nichts aus. Sie arbeitet mit den Angaben, die der Browser mit jeder Anfrage an Ihren Server schickt.

So gehen Sie vor:

  1. IP-Adresse: Prüfen Sie die Abrufe beim Auswerten und verwerfen Sie die Adresse danach. Wollen Sie ganz ohne IP-Adressen auskommen, lassen Sie sie schon beim Abruf der Protokolle kürzen oder entfernen, wenn Ihr CDN das anbietet. Dann prüfen Sie Abrufe nur noch über den Netzbetreiber.
  2. Referrer: Behalten Sie nur den Namen der verweisenden Website, etwa chatgpt.com, keinen Pfad.
  3. Parameter: Verwerfen Sie alle Parameter der Adresse außer utm_source mit einem Wert, den ein KI-Dienst nachweislich setzt. Andere Parameter können Kennungen enthalten, etwa aus Partner- oder Kampagnenlinks (Leitlinien 2/2023 des EDSA (externe Website), Rn. 49).
  4. Rohdaten: Speichern Sie Tagessummen und löschen Sie die Rohzeilen nach der Auswertung.
  5. Keine Verknüpfung: Bilden Sie keine Kennung für Besucher, auch keine Prüfsumme aus User-Agent und anderen Browserangaben. Einen solchen Wert beschreibt die Datenschutzkonferenz als Fingerprinting (Orientierungshilfe Digitale Dienste (externe Website), Rn. 23).

Was in den Monatsbericht gehört:

  • Besuche aus KI-Antworten je Dienst und die zehn häufigsten Einstiegsseiten
  • Nutzerabrufe und Agenten je Kennung und Seite, getrennt nach Prüfergebnis
  • Abrufe der Such- und Trainings-Crawler je Kennung
  • der Anteil der Abrufe, die sich nicht prüfen ließen

Vergleichen Sie Monate mit Vorsicht. Ein Anstieg kann auch daher kommen, dass mehr Menschen KI-Assistenten nutzen. Wie Sie das von der Wirkung eigener Änderungen trennen, steht im Abschnitt zu Besuchen und Abrufen unseres Ratgebers zur KI-Sichtbarkeit.

Typischer Fehler: Rohprotokolle werden für eine spätere Auswertung monatelang aufbewahrt.

Erledigt, wenn Ihre Auswertung nur Summen speichert und Sie wissen, wann die Rohdaten gelöscht werden.

Was zeigen die Protokolle nicht?

Die Protokolle zeigen nur, was bei Ihrem Server oder CDN ankommt. Wer eine KI-Antwort liest und nicht klickt, fehlt darin. Besuche ohne Referrer und ohne Parameter erscheinen wie direkte Aufrufe, und manche Agenten lassen sich in üblichen Protokollen nicht erkennen. Behandeln Sie Zahlen aus Protokollen deshalb als Untergrenze.

  • Kein Referrer: Manche Adressen stammen aus einer Quelle ohne eigene Webadresse, etwa aus einem Lesezeichen oder von der Tastatur. Dann schickt der Browser nach dem HTTP-Standard keinen verwertbaren Referrer (RFC 9110 zum Referrer (externe Website), Abschnitt 10.1.3). Nach unserer Einschätzung betrifft das auch Links, die eine App an den Browser übergibt. Ein Dienst kann den Referrer außerdem mit seiner Referrer-Policy unterdrücken.
  • Bekannte Lücken: Der Parameter von ChatGPT fehlte vom 08. bis 16.10.2026 an vielen Links, und Klicks aus Googles KI-Funktionen sind nicht von der übrigen Google-Suche zu trennen (Schritt 3). Ein Einbruch in Ihrer Statistik kann also ein Messfehler sein.
  • Agenten ohne Kennung: Für den Cloud-Browser von ChatGPT Work beschreibt OpenAI nur die Erkennung über eine Signatur in eigenen Kopfzeilen. Das Format combined speichert davon nichts. Erkennbar wird er erst, wenn Ihr Server oder CDN die Signatur prüft oder protokolliert.
  • Keine Besucherzahlen: Ohne Verknüpfung von Abrufen zählen Sie Seitenaufrufe, keine Menschen.

Was ohne Klick geschieht, zeigen am ehesten feste Fragen an KI-Systeme und die Frage an neue Kontakte, wie sie auf Sie gekommen sind. Beides beschreibt unser Ratgeber zur KI-Sichtbarkeit.

Typischer Fehler: Die Zahl der Besuche aus KI-Antworten wird als Maß für die ganze Wirkung von KI-Antworten genommen.

Erledigt, wenn Ihr Bericht seine Zahlen als Untergrenze kennzeichnet und sagt, welche Quellen fehlen.

Aus der Praxis: Was datafalke.de protokolliert und wie Sie selbst zählen

Unsere Website setzt keine Cookies, nutzt keine Analyse- oder Tracking-Skripte und lädt keine Inhalte von anderen Anbietern. Deshalb zeigt sie kein Cookie-Banner. Unsere Seiten liefern die Sicherheitsregel script-src 'none' aus. Mit ihr lässt der Browser auf der Seite kein JavaScript zu (MDN zu script-src (externe Website)). Das können Sie selbst nachprüfen:

Terminal: Kopfzeilen von datafalke.de abrufen
curl -s -D - -o /dev/null https://datafalke.de/

Unter Windows geben Sie in der PowerShell curl.exe statt curl ein und ersetzen /dev/null durch NUL. Die Antwort enthielt am 08.11.2026 diese Zeilen und keine Zeile Set-Cookie:

Antwort von datafalke.de, Auszug vom 08.11.2026
Content-Security-Policy: script-src 'none'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests
Referrer-Policy: strict-origin-when-cross-origin

Messung vom  · curl 8.21.0, Kopfzeilen von Startseite, Kontakt, Methode, Datenschutz und Wissen

Was unser Hoster protokolliert: Bunny verarbeitet beim Abruf jeder Seite die IP-Adresse und weitere Verbindungsdaten und löscht seine Protokolle nach drei Tagen. Die Protokollierung ist so eingestellt, dass wir die Protokolle nur ohne IP-Adresse abrufen: Bunny entfernt die IP-Adresse vollständig, bevor wir die Daten erhalten. Ein Archiv der Protokolle und eine Weiterleitung an andere Dienste haben wir nicht eingeschaltet.

Was noch nicht läuft: Eine Reichweitenmessung setzen wir derzeit nicht ein. Bevor die Zählung aus den Server-Protokollen startet, ergänzen wir sie in unserer Datenschutzerklärung. Wie wir zählen werden, beschreiben die Grundsätze unserer Messung. Zahlen nennen wir erst im Messprotokoll. Schon heute fragt unser Kontaktformular, wie Sie auf uns aufmerksam geworden sind; die Angabe ist freiwillig.

So zählen Sie selbst: Das folgende Programm in Python zählt KI-Traffic in Zugriffsprotokollen im Format combined. Es braucht nur die Standardbibliothek und gibt ausschließlich Summen aus. IP-Adressen prüft es nur im Arbeitsspeicher gegen die IP-Listen der Betreiber. Speichern Sie die Listen unter ihrem Dateinamen in einem Ordner; woher sie kommen, steht in den Schritten 4 und 5.

ki-traffic-zaehlen.py: KI-Traffic im Zugriffsprotokoll zählen
#!/usr/bin/env python3
"""Zählt KI-Traffic in Zugriffsprotokollen im Format „combined“ (Apache, nginx).

Aufruf: python3 ki-traffic-zaehlen.py access.log [weitere.log.gz ...] [--listen ORDNER]

Ausgegeben werden nur Summen. IP-Adressen prüft das Programm im Arbeitsspeicher gegen die
IP-Listen der Anbieter im Ordner --listen; es gibt sie nicht aus und speichert sie nicht.
Die Listen laden Sie bei den Anbietern herunter, die Dateinamen stehen in KENNUNGEN.
Kennungen und Adressen: Stand 07.11.2026. Lizenz: MIT-0 (datafalke.de).
"""
import argparse
import gzip
import ipaddress
import json
import re
from collections import Counter
from pathlib import Path
from urllib.parse import parse_qs, urlsplit

ZEILE = re.compile(r'(\S+) \S+ \S+ \[[^\]]*\] "(\S+) (\S+)[^"]*" (\d{3}) \S+ "([^"]*)" "([^"]*)"')

# Adressen, unter denen KI-Assistenten im Browser laufen (Referrer)
DIENSTE = {"chatgpt.com": "ChatGPT", "perplexity.ai": "Perplexity", "gemini.google.com": "Gemini",
           "copilot.microsoft.com": "Copilot", "copilot.com": "Copilot", "claude.ai": "Claude"}

# Kennung im User-Agent: Art des Abrufs und Datei mit den IP-Bereichen des Betreibers
KENNUNGEN = {
    "ChatGPT-User": ("Nutzerabruf", "chatgpt-user.json"),
    "Claude-User": ("Nutzerabruf", "bots.json"),
    "Perplexity-User": ("Nutzerabruf", "perplexity-user.json"),
    "Claude-Agent": ("Agent", "sail"),
    "Google-Agent": ("Agent", "user-triggered-agents.json"),
    "OAI-SearchBot": ("Suche", "searchbot.json"),
    "Claude-SearchBot": ("Suche", "bots.json"),
    "PerplexityBot": ("Suche", "perplexitybot.json"),
    "Googlebot": ("Suche", "common-crawlers.json"),
    "bingbot": ("Suche", "bingbot.json"),
    "GPTBot": ("Training", "gptbot.json"),
    "ClaudeBot": ("Training", "bots.json"),
}


def lade_netze(datei):
    """IP-Bereiche aus einer JSON-Liste der Anbieter oder aus der SAIL-Datei von Anthropic."""
    text = datei.read_text(encoding="utf-8")
    if datei.suffix == ".json":
        eintraege = [p.get("ipv4Prefix") or p.get("ipv6Prefix") for p in json.loads(text)["prefixes"]]
    else:
        eintraege = re.findall(r'"([0-9A-Fa-f:.]+(?:/\d+)?)"', text)
    netze = []
    for eintrag in eintraege:
        try:
            netze.append(ipaddress.ip_network(eintrag, strict=False))
        except (TypeError, ValueError):
            pass
    return netze


def pruefe(ip, netze):
    if netze is None:
        return "ohne Liste"
    try:
        adresse = ipaddress.ip_address(ip)
    except ValueError:
        return "ohne IP"
    if adresse.is_unspecified:  # 0.0.0.0 oder ::, wenn das CDN die IP entfernt hat
        return "ohne IP"
    return "IP passt" if any(adresse in netz for netz in netze) else "IP passt nicht"


def ist_seite(pfad):
    letzter = pfad.rsplit("/", 1)[-1]
    return pfad.endswith("/") or letzter.endswith(".html") or "." not in letzter


def main():
    parser = argparse.ArgumentParser(description="KI-Traffic in Zugriffsprotokollen zählen")
    parser.add_argument("protokolle", nargs="+")
    parser.add_argument("--listen", type=Path, help="Ordner mit den IP-Listen der Anbieter")
    args = parser.parse_args()
    netze = {}
    for name in {liste for _, liste in KENNUNGEN.values()}:
        if args.listen and (args.listen / name).is_file():
            netze[name] = lade_netze(args.listen / name)
    besuche, besuchte_seiten, abrufe, abgerufene_seiten = Counter(), Counter(), Counter(), Counter()
    for protokoll in args.protokolle:
        oeffnen = gzip.open if protokoll.endswith(".gz") else open
        with oeffnen(protokoll, "rt", encoding="utf-8", errors="replace") as datei:
            for zeile in datei:
                treffer = ZEILE.match(zeile)
                if not treffer:
                    continue
                ip, methode, ziel, status, referrer, kennzeichen = treffer.groups()
                adresse = urlsplit(ziel)
                kennung = next((k for k in KENNUNGEN if k.lower() in kennzeichen.lower()), None)
                if kennung:
                    art, liste = KENNUNGEN[kennung]
                    abrufe[(art, kennung, pruefe(ip, netze.get(liste)))] += 1
                    if art in ("Nutzerabruf", "Agent"):
                        abgerufene_seiten[(kennung, adresse.path)] += 1
                    continue
                if methode != "GET" or status not in ("200", "304") or not ist_seite(adresse.path):
                    continue
                host = urlsplit(referrer).hostname or ""
                dienst = next((n for a, n in DIENSTE.items() if host == a or host.endswith("." + a)), None)
                if dienst:
                    besuche[(dienst, "Referrer")] += 1
                elif "chatgpt.com" in parse_qs(adresse.query).get("utm_source", []):
                    besuche[("ChatGPT", "nur utm_source")] += 1
                else:
                    continue
                besuchte_seiten[adresse.path] += 1
    print("Besuche aus KI-Antworten (Seitenaufrufe)")
    for (dienst, weg), anzahl in sorted(besuche.items()):
        print(f"  {dienst:<12} {weg:<15} {anzahl:>6}")
    print("Seiten mit den meisten Besuchen aus KI-Antworten")
    for pfad, anzahl in besuchte_seiten.most_common(10):
        print(f"  {anzahl:>6}  {pfad}")
    print("Abrufe durch KI-Systeme und Suchmaschinen")
    for (art, kennung, ergebnis), anzahl in sorted(abrufe.items()):
        print(f"  {art:<12} {kennung:<17} {ergebnis:<15} {anzahl:>6}")
    print("Seiten mit den meisten Nutzerabrufen und Agenten")
    for (kennung, pfad), anzahl in abgerufene_seiten.most_common(10):
        print(f"  {anzahl:>6}  {kennung:<16} {pfad}")


if __name__ == "__main__":
    main()

So sah die Ausgabe für eine Testdatei mit 18 erfundenen Zeilen aus, darunter die Zeile aus Schritt 2:

Terminal: Aufruf und Ausgabe mit erfundenen Testzeilen
python3 ki-traffic-zaehlen.py access.log --listen listen
Besuche aus KI-Antworten (Seitenaufrufe)
  ChatGPT      Referrer             1
  ChatGPT      nur utm_source       1
  Copilot      Referrer             1
  Gemini       Referrer             1
  Perplexity   Referrer             1
Seiten mit den meisten Besuchen aus KI-Antworten
       2  /
       1  /leistungen/geo/
       1  /wissen/
       1  /kontakt/
Abrufe durch KI-Systeme und Suchmaschinen
  Agent        Claude-Agent      IP passt             1
  Agent        Google-Agent      IP passt             1
  Nutzerabruf  ChatGPT-User      IP passt             1
  Nutzerabruf  ChatGPT-User      IP passt nicht       1
  Nutzerabruf  Perplexity-User   IP passt             1
  Nutzerabruf  Perplexity-User   ohne IP              1
  Suche        Googlebot         IP passt             1
  Suche        OAI-SearchBot     IP passt             1
  Training     ClaudeBot         IP passt             1
  Training     GPTBot            IP passt             1
Seiten mit den meisten Nutzerabrufen und Agenten
       1  ChatGPT-User     /leistungen/geo/
       1  ChatGPT-User     /wissen/
       1  Perplexity-User  /
       1  Perplexity-User  /leistungen/geo/
       1  Claude-Agent     /kontakt/
       1  Google-Agent     /leistungen/

Die Testdatei enthält auch eine gefälschte Kennung (IP passt nicht), eine Zeile ohne IP-Adresse und einen Aufruf aus ChatGPT mit Status 404, der nicht als Besuch zählt. Das Programm liest nur das Format combined. Protokolle als JSON, wie sie manche CDNs liefern, müssen Sie vorher umwandeln. Den Reverse DNS prüft es nicht, und die IP-Listen lädt es nicht selbst. Neue Kennungen ergänzen Sie in der Liste KENNUNGEN.

Quellen

  1. OpenAI: Overview of OpenAI Crawlers. Abgerufen am .
  2. OpenAI Help Center: ChatGPT Work’s Cloud browser allowlisting. . Abgerufen am .
  3. Anthropic: Does Anthropic crawl data from the web, and how can site owners block the crawler? . Abgerufen am .
  4. Anthropic: How do Anthropic-hosted browsers identify themselves when they browse the web on a user’s behalf? . Abgerufen am .
  5. Perplexity: Perplexity Crawlers. Abgerufen am .
  6. Google: List of Google user-triggered fetchers. . Abgerufen am .
  7. nginx: Module ngx_http_log_module. Abgerufen am .
  8. Apache Software Foundation: Log Files, Apache HTTP Server Version 2.4. Abgerufen am .
  9. MDN Web Docs (Mozilla): HTTP caching. . Abgerufen am .
  10. bunny.net: Logging. Abgerufen am .
  11. Google Analytics-Hilfe: Known bot-traffic exclusion. Abgerufen am .
  12. Google Analytics-Hilfe: Default channel group. Abgerufen am .
  13. MDN Web Docs (Mozilla): Referrer-Policy header. . Abgerufen am .
  14. OpenAI Help Center, gespeichert vom Internet Archive: Publishers and Developers - FAQ (archivierte Fassung). . Abgerufen am .
  15. Profound (Anbieter von Messwerkzeugen): ChatGPT’s missing UTM tags: what happened from October 8 to October 16. . Abgerufen am .
  16. Google Search Central: AI features and your website. . Abgerufen am .
  17. Google Search Console-Hilfe: What are impressions, position, and clicks? Abgerufen am .
  18. IETF (Fielding, Nottingham, Reschke): RFC 9110: HTTP Semantics. . Abgerufen am .
  19. Google: List of Google’s common crawlers. . Abgerufen am .
  20. Microsoft Bing: Your content, your choice: clearer preferences for training and grounding. . Abgerufen am .
  21. Microsoft Bing: Which Crawlers Does Bing Use? Abgerufen am .
  22. Microsoft Bing: How to Verify Bingbot. Abgerufen am .
  23. Google: Verify requests from Google crawlers and fetchers. . Abgerufen am .
  24. Europäischer Datenschutzausschuss (EDSA): Guidelines 2/2023 on Technical Scope of Art. 5(3) of ePrivacy Directive, Version 2.0. . Abgerufen am .
  25. Datenschutzkonferenz (DSK): Orientierungshilfe der Aufsichtsbehörden für Anbieter:innen von digitalen Diensten (OH Digitale Dienste), Version 1.2. . Abgerufen am .
  26. MDN Web Docs (Mozilla): CSP: script-src. . Abgerufen am .

Redaktionsvermerk

Recherche und Entwurf mit KI-Unterstützung. Die Prüfung von Quellen, Zahlen und Aussagen durch Mohammad Alboush steht noch aus.

Inhalt noch nicht geprüft

Änderungen an diesem Beitrag

DatumArtÄnderung
ErstveröffentlichungBeitrag veröffentlicht
KorrekturSprachliche Korrekturen an Bezügen, Zeichensetzung und Begriffen. Die Aussagen bleiben gleich.

Fehler gefunden? Schreiben Sie uns an kontakt@datafalke.de. Wir korrigieren und vermerken die Änderung.

Ihr nächster Schritt

Wie sichtbar ist Ihr Unternehmen in KI-Antworten?

Im Erstgespräch gehen wir die Fragen durch, die Ihre Kundschaft einer KI stellt, und schauen, wo Sie heute stehen.

Menü

Erstgespräch vereinbarenEnglish