Cloudflare Worker
Déployez un Worker Cloudflare qui intercepte les visites de bots IA et les envoie à Robot Speed. Fonctionne avec le plan gratuit Cloudflare.
Prérequis
- ✓Un compte Cloudflare (gratuit)
- ✓Votre domaine configuré sur Cloudflare avec le proxy activé (nuage orange)
- ✓Votre clé API Robot Speed (Settings → API dans votre dashboard)
1
Créer un Worker
- Allez dans votre Cloudflare Dashboard
- Cliquez sur Workers & Pages dans la sidebar
- Cliquez Create Worker
- Donnez-lui un nom (ex:
ai-bot-tracker)
2
Coller le code
Remplacez le code par défaut par le code ci-dessous, puis cliquez Deploy.
export default {
async fetch(request, env, ctx) {
// Forward the request to your origin — transparent proxy
const response = await fetch(request);
// Detect AI bots from user-agent
const ua = request.headers.get("user-agent") || "";
const bots = [
["ChatGPT-User", "openai"],
["OAI-SearchBot", "openai"],
["PerplexityBot", "perplexity"],
["Perplexity-User", "perplexity"],
["Claude-User", "anthropic"],
["Claude-SearchBot", "anthropic"],
["Google-Extended", "google"],
["Google-Agent", "google"],
["MistralAI-User", "mistral"],
["xAI-Grok", "xai"],
["GrokBot", "xai"],
["Grok-DeepSearch", "xai"],
["DeepSeekBot", "deepseek"],
["cohere-ai", "cohere"],
["Applebot-Extended", "apple"],
];
const bot = bots.find(([sig]) => ua.includes(sig));
if (bot) {
const url = new URL(request.url);
const path = url.pathname;
// Skip noise: feeds, tags, static files
if (!/\/(feed|tag|category)\b/i.test(path) && !/\.\w{2,4}$/.test(path)) {
// Fire-and-forget — never blocks the response
ctx.waitUntil(
fetch(env.ANALYTICS_ENDPOINT, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": env.ANALYTICS_KEY,
},
body: JSON.stringify({
bot_name: bot[0],
bot_provider: bot[1],
url_path: path,
user_agent: ua.slice(0, 500),
host: request.headers.get("host")?.replace(/^www\\./, ""),
source: "cloudflare_worker",
}),
}).catch(() => {})
);
}
}
// Return the original response — zero latency impact
return response;
},
};3
Configurer les variables
Allez dans les Settings du Worker → Variables, et ajoutez :
ANALYTICS_ENDPOINThttps://www.robot-speed.com/api/ai-bot-visitsANALYTICS_KEYVotre clé API Robot Speed — trouvez-la dans votre dashboard : Settings → API
4
Ajouter la route
- Dans le Worker, allez dans Triggers → Add Route
- Route :
yourdomain.com/* - Sélectionnez votre zone (domaine)
5
Vérifier le proxy DNS
Dans DNS → Records, assurez-vous que votre domaine a le nuage orange (Proxied) activé. Si le nuage est gris (DNS only), le Worker ne verra pas le trafic.
Vérification
Testez avec cette commande :
curl -H "User-Agent: Mozilla/5.0 (compatible; ChatGPT-User/1.0)" https://yourdomain.com/Quelques secondes après, vous devriez voir la mention dans votre dashboard Robot Speed.