AI Search Index will be shut down on February 16, 2026. Thank you for being part of the journey.

Add AI Bot Tracking

Track which AI crawlers visit your website. See GPTBot, ClaudeBot, PerplexityBot, and 100+ other AI bots in real-time.

TL;DR: Add one script tag to track AI bot traffic. No cookies, GDPR-friendly, ~1KB.

Important: Most AI crawlers (GPTBot, ClaudeBot, PerplexityBot, etc.) don't execute JavaScript—they just fetch raw HTML.

This JS pixel is a quick start that catches human visitors and JS-executing AI agents (like ChatGPT web browsing). For comprehensive crawler detection, combine with server-side log integration. Learn more about our hybrid approach.

Fastest Setup (30 seconds)

Add this script tag to your HTML, just before the closing </body> tag:

HTML - Any WebsiteRecommended
<script 
  src="https://www.aisearchindex.com/pixel.js" 
  data-tid="YOUR_TRACKING_ID"
  data-spa="true"
></script>
Replace YOUR_TRACKING_ID with your ID from the dashboard

Framework Integrations

Next.js (App Router)

app/layout.tsx
import Script from 'next/script'

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="en">
      <body>
        {children}
        <Script 
          src="https://www.aisearchindex.com/pixel.js"
          data-tid="YOUR_TRACKING_ID"
          data-spa="true"
          strategy="afterInteractive"
        />
      </body>
    </html>
  )
}

React / Vite / Create React App

src/App.tsx
import { useEffect } from 'react'

function App() {
  useEffect(() => {
    const script = document.createElement('script')
    script.src = 'https://www.aisearchindex.com/pixel.js'
    script.dataset.tid = 'YOUR_TRACKING_ID'
    script.dataset.spa = 'true'
    script.async = true
    document.body.appendChild(script)
    return () => { document.body.removeChild(script) }
  }, [])
  
  return <div>{/* Your app */}</div>
}

export default App

Vue.js / Nuxt

App.vue or nuxt.config.ts
<script setup>
import { onMounted, onUnmounted } from 'vue'

let script = null

onMounted(() => {
  script = document.createElement('script')
  script.src = 'https://www.aisearchindex.com/pixel.js'
  script.dataset.tid = 'YOUR_TRACKING_ID'
  script.dataset.spa = 'true'
  script.async = true
  document.body.appendChild(script)
})

onUnmounted(() => {
  if (script) document.body.removeChild(script)
})
</script>

Astro

src/layouts/Layout.astro
---
// Layout.astro
---
<html>
  <body>
    <slot />
    <script 
      src="https://www.aisearchindex.com/pixel.js" 
      data-tid="YOUR_TRACKING_ID"
      data-spa="true"
      is:inline
    ></script>
  </body>
</html>

SvelteKit

src/routes/+layout.svelte
<script>
  import { onMount } from 'svelte'
  
  onMount(() => {
    const script = document.createElement('script')
    script.src = 'https://www.aisearchindex.com/pixel.js'
    script.dataset.tid = 'YOUR_TRACKING_ID'
    script.dataset.spa = 'true'
    script.async = true
    document.body.appendChild(script)
  })
</script>

<slot />

Remix

app/root.tsx
import { Scripts } from "@remix-run/react"

export default function App() {
  return (
    <html>
      <body>
        <Outlet />
        <script 
          src="https://www.aisearchindex.com/pixel.js" 
          data-tid="YOUR_TRACKING_ID"
          data-spa="true"
        />
        <Scripts />
      </body>
    </html>
  )
}

What You'll Track

AI Training Crawlers

GPTBot, ClaudeBot, Google-Extended, Bytespider, CCBot, Cohere, and more

AI Search Bots

ChatGPT-User, PerplexityBot, Claude-Web, YouBot, KagiBot

Search Engines

Googlebot, Bingbot, DuckDuckBot, YandexBot, Applebot

Other Bots

Social media bots, SEO tools, monitoring services

Privacy & Compliance

  • No cookies — We don't use or set any cookies
  • GDPR compliant — No personal data collection
  • Lightweight — ~1KB script, minimal performance impact
  • No consent banner needed — Bot analytics don't require user consent

Next Steps