Website Analytics
See which AI crawlers fetch your pages and how many visitors AI answer engines send to your website.
Website Analytics answers two questions: which AI crawlers are reading your website, and how many people arrive from AI answer engines such as ChatGPT or Perplexity. It reads this from Google Analytics and from your CDN or hosting logs.
Open it from the sidebar: Analytics › Website Analytics (/analytics/website).
Available on plans that include the Website Analytics module. The Crawlers tab also needs Crawler Analytics on your plan. Without them you see an upgrade card instead of figures. See Plans and billing.
Anyone in the workspace can view the page. Connecting or disconnecting a data source needs the Owner or Admin role.
How it works
Opttab reads request logs from the source that serves your website (Cloudflare, Vercel, Akamai or Netlify). It keeps only requests from known AI crawlers and stores daily counts per crawler and page. Visitor figures come from your Google Analytics 4 property.
Opttab keeps only daily counts of AI-crawler requests. Every other log line is discarded on arrival.
Which source feeds which tab
| Tab | Data source | Notes |
|---|---|---|
| Realtime — visitors | Google Analytics 4 | Last 30 minutes, minute by minute |
| Realtime — bots | Cloudflare only | Vercel, Akamai and Netlify logs have no live window |
| Visitors | Google Analytics 4 | If you have no Google Analytics property connected, Cloudflare gives sessions only |
| Crawlers | Cloudflare, Vercel, Akamai or Netlify | If several are connected, Opttab uses the first in that order |
To connect a source, see Connect a crawler log source.
The three tabs
All three tabs load together, so switching between them is instant. Visitors and Crawlers follow the shared period picker.
What is happening on your site right now.
- Active Visitors and Active Bots in the last few minutes.
- Active Users and Active Bots charts for each of the last 30 minutes.
- Live Visitor Activity: pages AI-referred visitors are reading right now.
- Active Bots table: crawlers seen in the last 30 minutes, by requests.
- Realtime Activity: visitors and AI agents per day over the last 30 days, with All / Users / Agents.
Live figures refresh about every 30 seconds.
People visiting your site, from Google Analytics 4.
- Visitor Analytics: Active Visitors, Engagement Rate, Time on Site, Bounce Rate and Conversions (your GA4 key events).
- Traffic Analytics and Platform Distribution: visits referred by each AI platform — ChatGPT, Perplexity, Gemini, Claude, Copilot, Grok, DeepSeek, Mistral, and Other for AI assistant traffic Google Analytics can't name.
- Device Distribution and Location: where visitors browse from.
- Pages Analytics: pages ranked by sessions, with how often AI answers cited each page and a status from your latest site audit — Healthy, Need Work or Blocked to AI.
Google AI Mode and AI Overviews show as Unsupported, because Google reports those visits as organic search.
AI crawlers fetching your pages. Narrow the view with the Crawler and Page chips.
- Crawler Analytics: Active Bots (Cloudflare only), Bot Pageviews, Training Crawls, Indexing Crawls and User Action Crawls.
- Why they came? Requests split into To answer questions, Model training, Search indexing and Unidentified.
- Bot Activity Timeline: daily crawls by purpose.
- Live Bot Activity: pages crawlers fetched in the last few minutes.
- Most Crawled Pages: the pages crawlers fetch most.
- AI Bots: every AI crawler seen this month, by requests.
Recognised AI crawlers
Opttab recognises these crawlers by their user-agent name.
| Crawler | Company | Purpose |
|---|---|---|
| GPTBot | OpenAI | Training |
| OAI-SearchBot | OpenAI | Search indexing |
| ChatGPT-User | OpenAI | User action |
| ClaudeBot | Anthropic | Training |
| Claude-SearchBot | Anthropic | Search indexing |
| Claude-User | Anthropic | User action |
| PerplexityBot | Perplexity | Search indexing |
| Perplexity-User | Perplexity | User action |
| Googlebot | Search engine | |
| Bingbot | Microsoft | Search engine |
| Applebot | Apple | Search engine |
| CCBot | Common Crawl | Training |
| Meta-ExternalAgent | Meta | Training |
- Training: fetches pages to train AI models.
- Search indexing / Search engine: builds the index an AI search or search engine answers from.
- User action: fetches a page live because someone asked the AI a question.
- Unidentified: a bot Cloudflare verified but Opttab can't place in a purpose.
Google-Extended and Applebot-Extended are robots.txt settings, not crawlers. They never send requests, so they never appear here.
Verified and claimed bots
Anyone can put "GPTBot" in a request. How sure Opttab can be depends on the source.
- Cloudflare — verified. Cloudflare checks that the request really came from the crawler's owner. Look-alike requests that only claim the name show separately as +N unverified.
- Vercel, Akamai and Netlify — claimed. Opttab counts a request when its user agent contains a crawler's name. That is a claim, not proof of who sent it.
Read more in What's the difference between verified and unverified bots?.
Reason messages
When a card has nothing to show, it tells you why.
| Message | What it means | What to do |
|---|---|---|
| "Connect a source to see this." | No source feeds this card | Connect a source |
| "Reconnect the source to see this." / "Cloudflare needs attention" (or your provider) | The connection is unhealthy or doesn't match this website | Reconnect, or pick the right property or zone in Settings › Integrations |
| "Collecting the first days of data." | The first sync is still running | Wait; the page updates on its own |
| "Not supported by any source." | Your sources can't provide this figure | For example, live bots need Cloudflare |
| "Not available on this Cloudflare plan." | Your Cloudflare plan doesn't expose this figure | Connect Google Analytics, or upgrade on Cloudflare |
| "The source did not answer; try again shortly." | The provider didn't respond | Try again in a few minutes |
| "No site audit yet" | The page hasn't been audited | Run a site audit |
| "No tracked traffic in this window yet." | Nothing arrived in this period | Pick a longer period |
Data freshness and history
- The first sync backfills up to 13 months of history, as far as the provider keeps it.
- A day's crawler figures are final after 1 day; Google Analytics figures after 2 days. Numbers near today can still rise.
- Daily figures are kept for 13 months, then folded into monthly totals.