citlyze docs
Citlyze verwenden

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 EinrichtungPassende 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-SiteWordPress-Plugin
Selbst entwickelte Site auf eigenen Servern (AWS, GCP, Azure, VPS, Container)Eigener Server / Node
Webflow-SiteWebflow
Shopify-ShopShopify

Bevor Sie starten: einen Site-Key erzeugen

Jede Installation braucht einen Site-Key, egal welche Plattform Sie nutzen:

  1. Gehen Sie in der App zu Einstellungen → Verbindungen → Website-Tracking.
  2. 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.
  3. 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.

  1. Öffnen Sie unter Einstellungen → Verbindungen → Website-Tracking → Snippet installieren den Tab Cloudflare und kopieren Sie das Snippet.
  2. Ersetzen Sie SITE_KEY_ID im Snippet durch Ihre Key-ID. Das Signiergeheimnis gehört nicht in den Code; Sie hinterlegen es in Schritt 5 als Worker-Secret.
  3. 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.
  4. Klicken Sie auf Edit code, ersetzen Sie das generierte Beispiel durch Ihr Snippet und klicken Sie erneut auf Deploy.
  5. 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.
  6. 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 über www.example.com ausgeliefert, ergänzen Sie eine zweite Route für www.example.com/*.
  7. 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.

  1. Öffnen Sie unter Einstellungen → Verbindungen → Website-Tracking → Snippet installieren den Tab Vercel / Proxy und kopieren Sie das Snippet.
  2. Erstellen Sie in Ihrem Next.js-Repository die Datei middleware.ts im Projektstamm (oder in src/, falls Ihre App dort liegt) und fügen Sie das Snippet ein.
  3. Ersetzen Sie SITE_KEY_ID durch Ihre Key-ID. Das Signiergeheimnis gehört nicht in die Datei.
  4. Öffnen Sie in Ihrem Vercel-Projekt Settings → Environment Variables und legen Sie CITLYZE_SIGNING_SECRET mit 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.
  5. 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 Ihre matcher-Konfiguration weiterhin alle Pfade abdeckt.
  6. 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.

  1. 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.

  2. 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.

  3. 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.
  4. Klicken Sie auf Send test event. Sie sollten eine „connected“-Bestätigung sehen; das belegt Zugangsdaten und Verbindung Ende-zu-Ende.

  5. 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).

  1. Öffnen Sie unter Einstellungen → Verbindungen → Website-Tracking → Snippet installieren den Tab Eigener Server / Node und kopieren Sie das Snippet.
  2. Speichern Sie es als aeo-tracker.mjs neben Ihrem Server-Einstiegspunkt.
  3. Ersetzen Sie SITE_KEY_ID durch Ihre Key-ID und setzen Sie auf dem Server die Umgebungsvariable CITLYZE_SIGNING_SECRET auf 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.
  4. Registrieren Sie die Middleware vor Ihren Routen:
    import { aeoCrawlerTracker } from "./aeo-tracker.mjs";
    app.use(aeoCrawlerTracker());
  5. 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.
  6. 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:

  1. 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).
  2. Installieren Sie den Tracker auf dieser Proxy-Ebene:
  3. Ü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_SECRET dessen 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.

Auf dieser Seite