KI-Crawler-Tracking installieren
Schritt-für-Schritt-Anleitungen für Cloudflare, Vercel, WordPress, eigene Node-Server, Webflow und Shopify.
Diese Seite führt Klick für Klick durch jeden Installationsweg. Was Crawler-Tracking misst und wie die Verifizierung funktioniert, steht unter KI-Crawler. Dieselbe Installation meldet auch menschliche Besuche aus KI-Antworten und versorgt damit zugleich KI-Traffic; reine Browser-Optionen für diese Seite finden Sie unter KI-Traffic-Tracking installieren.
Wählen Sie die Anleitung, die zu Ihrer Site passt:
| Ihre Einrichtung | Passende Anleitung |
|---|---|
| Site läuft hinter Cloudflare (Orange-Cloud-Proxy) | Cloudflare Worker |
| Next.js-App auf Vercel (oder selbst gehostetes Next.js) | Vercel / Next.js-Middleware |
| WordPress-Site | WordPress-Plugin |
| Selbst entwickelte Site auf eigenen Servern (AWS, GCP, Azure, VPS, Container) | Eigener Server / Node |
| Webflow-Site | Webflow |
| Shopify-Shop | Shopify |
Bevor Sie starten: einen Site-Key erzeugen
Jede Installation braucht einen Site-Key, egal welche Plattform Sie nutzen:
- Gehen Sie in der App zu Einstellungen → Verbindungen → Website-Tracking.
- Klicken Sie auf Site-Schlüssel generieren. Geben Sie dem Key einen Namen und idealerweise die Domain, für die er melden soll; die Domain stärkt zusätzlich die Verifizierung signierter Crawler für diese Site.
- Kopieren Sie beide Werte aus dem Bestätigungsdialog: die Key-ID und
das Signiergeheimnis (es beginnt mit
ctk_). Das Geheimnis wird einmal angezeigt; falls Sie es verlieren, nutzen Sie Erneuern am Key, um ein Ersatzgeheimnis zu erzeugen.
Halten Sie das Signiergeheimnis privat: Wer es besitzt, kann gefälschte
Traffic-Meldungen für Ihre Site einreichen. Die Snippets für Cloudflare,
Vercel und eigene Server lesen es aus der Umgebungsvariable
CITLYZE_SIGNING_SECRET, sodass es nie in Ihrem Code steht; das
WordPress-Plugin speichert es in seinen Einstellungen. Committen Sie es nie
in ein Repository und fügen Sie es nie in clientseitigen Code ein.
Cloudflare Worker
Nutzen Sie diesen Weg, wenn Ihr DNS bei Cloudflare liegt und die Site über den Proxy läuft (der Orange-Cloud-Schalter). Es ist die vollständigste Option: Sie sieht jede Anfrage an der Edge, meldet echte HTTP-Statuscodes und funktioniert unabhängig davon, was hinter Cloudflare läuft.
- Öffnen Sie unter Einstellungen → Verbindungen → Website-Tracking → Snippet installieren den Tab Cloudflare und kopieren Sie das Snippet.
- Ersetzen Sie
SITE_KEY_IDim Snippet durch Ihre Key-ID. Das Signiergeheimnis gehört nicht in den Code; Sie hinterlegen es in Schritt 5 als Worker-Secret. - Gehen Sie im Cloudflare-Dashboard zu
Workers & Pages → Create → Create Worker. Geben Sie einen Namen ein
(zum Beispiel
ai-crawler-tracker) und klicken Sie auf Deploy, um den leeren Worker anzulegen. - Klicken Sie auf Edit code, ersetzen Sie das generierte Beispiel durch Ihr Snippet und klicken Sie erneut auf Deploy.
- Hinterlegen Sie das Signiergeheimnis: Öffnen Sie im Worker Settings →
Variables and Secrets → Add, wählen Sie den Typ Secret, nennen Sie
es
CITLYZE_SIGNING_SECRET, fügen Sie Ihr Signiergeheimnis ein und klicken Sie auf Deploy. Cloudflare speichert es verschlüsselt, und es taucht nie im Code des Workers auf. - Verbinden Sie den Worker mit Ihrer Site: Öffnen Sie in den Einstellungen
des Workers Settings → Domains & Routes → Add → Route, wählen Sie
Ihre Zone und fügen Sie die Route
example.com/*hinzu. Wird Ihre Site auch überwww.example.comausgeliefert, ergänzen Sie eine zweite Route fürwww.example.com/*. - Fertig: keine Codeänderungen an Ihrer Site. Der Worker reicht jede Anfrage unverändert an Ihren Origin durch und meldet passende Besuche im Hintergrund.
Zwei Dinge sollten Sie prüfen:
- Die Route muss alle Pfade abdecken (
/*), sonst bleiben Crawler-Besuche auf nicht gerouteten Seiten unsichtbar. - Läuft auf diesen Routen bereits ein Worker, führt Cloudflare nur einen Worker pro Route aus; integrieren Sie die Logik des Snippets in Ihren bestehenden Worker, statt einen zweiten hinzuzufügen.
Vercel / Next.js-Middleware
Nutzen Sie diesen Weg für eine Next.js-App auf Vercel. Dieselbe Datei funktioniert auch bei selbst gehostetem Next.js.
- Öffnen Sie unter Einstellungen → Verbindungen → Website-Tracking → Snippet installieren den Tab Vercel / Proxy und kopieren Sie das Snippet.
- Erstellen Sie in Ihrem Next.js-Repository die Datei
middleware.tsim Projektstamm (oder insrc/, falls Ihre App dort liegt) und fügen Sie das Snippet ein. - Ersetzen Sie
SITE_KEY_IDdurch Ihre Key-ID. Das Signiergeheimnis gehört nicht in die Datei. - Öffnen Sie in Ihrem Vercel-Projekt Settings → Environment Variables
und legen Sie
CITLYZE_SIGNING_SECRETmit Ihrem Signiergeheimnis für jede Umgebung an, die erfasst werden soll. Markieren Sie die Variable als Sensitive. Hosten Sie Next.js selbst, setzen Sie dieselbe Variable in der Umgebung Ihres Servers. - Haben Sie bereits eine
middleware.ts, legen Sie keine zweite Datei an; Next.js führt nur eine aus. Kopieren Sie den Hilfsblock des Snippets in Ihre bestehende Datei, rufen Sie dessen Meldelogik am Anfang Ihrer Middleware-Funktion auf und stellen Sie sicher, dass Ihrematcher-Konfiguration weiterhin alle Pfade abdeckt. - Committen und deployen.
Hinweise:
- Middleware läuft, bevor die Antwort existiert, daher melden Ereignisse
ihren HTTP-Status als
unknown. Das ist so gewollt. Für Statuscodes nutzen Sie statt dieser Middleware den Vercel-Log-Drain (beides zusammen zählt jeden Besuch doppelt) oder die Installation mit Cloudflare oder eigenem Server, die auch Weiterleitungen melden. - Auf Vercel stammt die Besucher-IP aus einem von der Plattform gesetzten Header und ist vertrauenswürdig. Hosten Sie Next.js selbst hinter Ihrem eigenen Proxy, stellen Sie sicher, dass der Forwarded-IP-Header, den das Snippet liest, von Ihrem Proxy gesetzt wird und nicht vom Client durchgereicht ist.
WordPress-Plugin
Nutzen Sie diesen Weg für jede WordPress-Site, auf der Sie Plugins installieren können.
Dasselbe Plugin prüft außerdem kostenlos, welche KI-Crawler Ihre robots.txt durchlässt und was die übrigen blockiert; siehe WordPress-Plugin.
-
Gehen Sie in der WordPress-Verwaltung zu Plugins → Installieren, suchen Sie nach AI Crawler Control by Citlyze und klicken Sie auf Jetzt installieren und dann auf Aktivieren. Das Plugin ist im offiziellen WordPress.org-Verzeichnis gelistet, ein Zip-Upload ist also nicht nötig.
-
Sie bevorzugen eine manuelle Installation? Öffnen Sie unter Einstellungen → Verbindungen → Website-Tracking → Snippet installieren den Tab WordPress, klicken Sie auf WordPress-Plugin herunterladen und laden Sie die Zip-Datei unter Plugins → Installieren → Plugin hochladen hoch.
-
Gehen Sie zu Citlyze → Connect Citlyze und füllen Sie alle drei Felder aus:
- Tracker base URL:
https://app.citlyze.com - Key ID: Ihre Key-ID
- Signing secret: Ihr
ctk_...-Geheimnis Das Plugin meldet nichts, solange die Basis-URL leer ist.
- Tracker base URL:
-
Klicken Sie auf Send test event. Sie sollten eine „connected“-Bestätigung sehen; das belegt Zugangsdaten und Verbindung Ende-zu-Ende.
-
Hinter einem anderen Proxy oder Load Balancer als Cloudflare? Wählen Sie unter Visitor IP behind a proxy den Header, den Ihr Proxy setzt, und tragen Sie die Adressen des Proxys ein, damit Crawler anhand ihrer echten IP verifiziert werden können. Hinter Cloudflare ist nichts nötig.
Das Plugin meldet nach der Auslieferung jeder Seite, mit dem genauen Statuscode, auch bei Anfragen, die ein anderes Plugin weiterleitet, bevor die Seite gerendert wird. Ereignisse warten in Ihrer WordPress-Datenbank und werden in Batches gesendet; der Bildschirm Connect Citlyze zeigt, wie viele warten und wann zuletzt zugestellt wurde.
Einschränkung: Seiten aus einem Full-Page-Cache, Weiterleitungen Ihres Webservers oder CDNs und Anfragen, die eine Firewall blockiert, bevor WordPress lädt, erreichen das Plugin nie. Der Bildschirm Connect Citlyze zeigt an, wenn er einen Seiten-Cache erkennt. Ist Ihre Website stark gecacht, nutzen Sie besser den Cloudflare Worker oder laden Ihre Server-Logs hoch.
Eigener Server / Node
Nutzen Sie diesen Weg für selbst entwickelte Sites, die Sie selbst hosten: AWS, Google Cloud, Azure, ein VPS oder Container. Das Snippet ist eine Express-artige Middleware für Node 20 oder neuer (sie läuft auch auf Bun und Deno).
- Öffnen Sie unter Einstellungen → Verbindungen → Website-Tracking → Snippet installieren den Tab Eigener Server / Node und kopieren Sie das Snippet.
- Speichern Sie es als
aeo-tracker.mjsneben Ihrem Server-Einstiegspunkt. - Ersetzen Sie
SITE_KEY_IDdurch Ihre Key-ID und setzen Sie auf dem Server die UmgebungsvariableCITLYZE_SIGNING_SECRETauf Ihr Signiergeheimnis: in den Secret-Einstellungen Ihres Hosters oder in einer.env-Datei, die nie committet wird. Das Geheimnis gehört nie in die Datei selbst. - Registrieren Sie die Middleware vor Ihren Routen:
import { aeoCrawlerTracker } from "./aeo-tracker.mjs"; app.use(aeoCrawlerTracker()); - Sitzt Ihr Server hinter einem Load Balancer oder Reverse Proxy (nginx,
ALB), konfigurieren Sie Express so, dass es ihm vertraut (zum Beispiel
app.set("trust proxy", 1)), damit die Middleware die echte Client-IP statt der des Proxys meldet. Die Verifizierung der Crawler-Identität prüft genau diese IP. - Deployen. Die Middleware meldet, nachdem die jeweilige Antwort abgeschlossen ist, fügt also keine Latenz hinzu und liefert echte HTTP-Statuscodes.
Kein Express? Der zurückgegebene Handler nimmt einfache Argumente
(req, res, next) entgegen und lässt sich an Fastify, Koa oder Nodes
http-Server anpassen. Für ganz andere Sprachen (Python, Go, PHP, Ruby, ...)
implementieren Sie das
signierte Beacon-Protokoll;
jeder signierte HTTPS-POST enthält einen Batch mit bis zu 50 passenden Anfragen.
Webflow
Webflows eigenes Hosting kann keinen serverseitigen Code ausführen, und browserseitige Skripte sehen KI-Trainings-Crawler nicht. Das Tracking wird daher auf einer Proxy-Ebene vor Webflow installiert:
- Webflow unterstützt selbst verwaltete Reverse Proxies auf Enterprise-Plänen; klären Sie das mit Ihrem Webflow-Kontakt und leiten Sie Ihre Domain über Ihren Proxy (Cloudflare, CloudFront, Fastly oder Ihr eigenes nginx).
- Installieren Sie den Tracker auf dieser Proxy-Ebene:
- Proxy auf Cloudflare → folgen Sie der Anleitung Cloudflare Worker.
- Eigener Node-Proxy → folgen Sie der Anleitung Eigener Server / Node.
- Alles andere → implementieren Sie das Signed-Beacon-Protokoll in Ihrem Proxy.
- Überprüfen Sie die Installation wie unten beschrieben.
Webflow-Cloud-Apps sind kein Weg zu Site-weitem Tracking: Sie bedienen nur Anfragen unter ihrem Mount-Pfad und sehen daher nie Crawler-Besuche auf Ihren regulären Seiten.
Shopify
Standard-Shopify-Storefronts können diesen Tracker nicht ausführen: Shopify lässt Händler keinen serverseitigen Code auf Storefront-Anfragen ausführen und unterstützt es nicht, einen Proxy (etwa Cloudflare) vor einen Shop zu setzen. Browserseitige Skripte sind kein Ausweg: KI-Trainings-Crawler führen nie JavaScript aus, und ein Browser-Skript würde Ihr Signiergeheimnis offenlegen.
Was Sie tun können:
- Headless-Storefronts auf Basis von Hydrogen und gehostet auf Oxygen (oder jedes selbst gehostete Setup) führen serverseitigen Code aus; verdrahten Sie die Logik des Snippets Eigener Server / Node im Server-Request-Handler Ihrer Storefront.
- Für Standard-Shops funktionieren Ihre übrigen Citlyze-Messungen (Prompt-Tracking, Zitate, GEO-Audits) unabhängig davon, wo der Shop gehostet ist.
Installation verifizieren
- Unter Einstellungen → Verbindungen → Website-Tracking hat die Site-Key-Tabelle eine Spalte Letztes Ereignis. Sie aktualisiert sich, sobald Ihre Installation die erste akzeptierte Meldung liefert; Crawler-Besuche und KI-Referral-Klicks zählen beide.
- WordPress-Nutzer können die Zustellung sofort mit Send test event bestätigen (Testereignisse prüfen Zugangsdaten und Verbindung, aktualisieren aber nicht Letztes Ereignis).
- Geben Sie der Sache Zeit: Auf Sites mit wenig Traffic kann der erste echte Crawler-Besuch Stunden oder ein paar Tage dauern. Sobald Ereignisse eintreffen, füllt sich Analysieren → KI-Crawler-Aktivität → Überblick.
- Kommt nach ein paar Tagen nichts an, prüfen Sie erneut, ob die Key-ID in
Ihrem Snippet (oder in den Plugin-Einstellungen) zu einem aktiven, nicht
widerrufenen Key gehört, ob
CITLYZE_SIGNING_SECRETdessen aktuelles Signiergeheimnis enthält und ob Ihre Route oder Middleware alle Pfade abdeckt. Ohne gültiges Geheimnis meldet das Snippet nichts und protokolliert einmalig „Citlyze crawler tracking is off“. - Die Tabelle der Site-Keys zeigt außerdem, welche Collector-Version mit jedem Key meldet, und weist darauf hin, wenn eine neuere Snippet- oder Plugin-Version verfügbar ist oder das WordPress-Plugin einen Seiten-Cache erkannt hat.