[ crawl analytics ]
Every crawl, by page and by bot.
AI crawler analytics for every page: know which pages AI is reading, and whether it's learning about you or answering questions about you right now. Log file analysis without the log files: every request from GPTBot, ClaudeBot, Googlebot and 40+ crawlers, logged and verified. No exports. No sampling.
- 18:34:25"ClaudeBot"/.env403spoofed
- 18:34:20ChatGPT-User/pricing200answer
- 18:34:15YandexBot/200index
- 18:34:09Amazonbot/docs/api200training
- 18:34:02Google-Extended/blog/aeo-vs-seo200training
- 18:33:55Applebot/product/prerendering200index
- 18:33:50ClaudeBot/security200training
- /pricing760 crawls2h ago
- /blog/aeo-vs-seo540 crawls5h ago
- /docs/api410 crawls1d ago
- /380 crawls3h ago
- /blog220 crawls1d ago
- GPTBot2825 · 41 pages5h ago
- Googlebot2440 · 39 pages2h ago
- ClaudeBot1541 · 26 pages9h ago
- PerplexityBot1027 · 18 pages2d ago
- Bingbot372 · 22 pages5h ago
crawls 30d 12,840 · verified 84.2% · answer fetches 46% · median render 210ms
[ by page ]
Open any page. See who read it, and when.
Bot traffic by page: every path on your site shows exactly which crawlers read it, how often, and how recently.
Pages ›
/pricing
CrawlsTotal crawls
760
Last crawlLast crawled
2h ago
CachedServed from cache
100%
532 verified104 declared124 unverified
Crawls by bot
GooglebotGPTBot
Last crawl by bot
✓Every visit logged as it happens. Real bots checked against published IP ranges.
[ by bot ]
Open any crawler. See every page it fetched.
Every page each crawler fetched, from real requests. The gaps matter as much as the hits. Spot the pages AI has never seen.
Bots › OpenAI
GPTBottraining
CrawlsTotal crawls
2,825
Verified
2,090
Pages readPages read
40/4140 of 41
Crawls by page
/changelog has never been read by GPTBot.
[ verified bots ]
The real ChatGPT, or a scraper pretending to be it?
Scrapers borrow big names to sneak past. Every visit is checked against the operator's published IP ranges and reverse DNS, so a name like Googlebot only counts when it really is Googlebot. The AI crawler list shows every bot we verify and the official IP list each one is checked against.
last 30 days
- verified84.2%10,811
- declared11.5%1,477
- spoofed4.3%552 flagged
552 unverified requests impersonating known AI crawlers · "ChatGPT-User" · "PerplexityBot" · "GPTBot"
how impersonation detection works →[ intent ]
Is AI learning about you, or answering questions with your pages right now?
- answer fetch46%
- search index38%
- training16%
- Answering someone's question about you right nowLive retrieval to build an answer.ChatGPT-User
- Filing you for searchBuilding a searchable index for later.Googlebot
- Learning about youGathering pages to train or refresh a model.GPTBot
Switch the crawl volume chart between operator, intent and tier.
operatorintenttier[ snapshot versions ]
The exact HTML each bot was served, version by version.DNS + prerender
Every copy we serve is versioned. See which bot got which build on which day, and open exactly what it read.
Pages › /pricing ›
Which bot got which version
v13d308deca200 · 134.2 kB
Oct 2 – Oct 3View source →
v12a91f04c7200 · 133.8 kB
Sep 27 – Oct 2View source →
v114be2d110200 · 129.4 kB
Sep 22 – Sep 27View source →
✓See exactly what each bot was served, on the day it visited.
On the Cloudflare Worker in analytics-only mode, requests are logged as served from origin, with origin-captured snapshots for view-source.
[ the funnel ]
Crawler reads → answer fetches → likely cited → visits from AI.
Reads, serves and visits are counted from real requests. Answer fetches are live retrievals by AI assistants while they compose a reply; likely cited is the subset we attribute to an answer.
[ HadoSEO does the work ]
12,840crawler reads
12,690served in full
[ proof it paid off ]
5,906answer fetches
824likely cited
189visits from AI
| stage | count | conversion |
|---|---|---|
| crawler reads | 12,840 | — |
| served in full | 12,690 | 99% served |
| answer fetches | 5,906 | 46% of reads |
| likely cited | 824 | 14% likely cited |
| visits from AI | 189 | 23% clicked |
12,840
crawler reads
12,690
served in full · 99%
5,906
answer fetches · 46% of reads
824
likely cited · 14%
189
visits from AI · 23%
[ per engine ]
[ setup ]
Same analytics on either path.
[ + ][ − ]compare the two paths
| feature | DNS | Cloudflare Worker |
|---|---|---|
| best for | DNSClient-side apps: Lovable, Base44, React, Angular | Cloudflare WorkerServer-rendered sites, or client-side apps you run on Cloudflare |
| setup | DNSAn A record at your domain provider. No code, no redeploy. About 5 minutes. | Cloudflare WorkerA small Worker on your Cloudflare zone, with your API key. About 10 minutes. |
| you need | DNSAccess to your domain's DNS settings | Cloudflare WorkerYour domain on Cloudflare |
| traffic flows | DNSThrough HadoSEO's edge | Cloudflare WorkerThrough your own Cloudflare zone |
| crawl analytics | DNS✓ every request | Cloudflare Worker✓ every request |
| prerendering for bots | DNS✓ automatic | Cloudflare WorkerYour choice: prerendered pages, or analytics-only |
Features that need prerendering (snapshot versions, served-from cache) carry the DNS + prerender chip.
[ export + api ]
Your crawl data, wherever you need it.
Export scoped JSON for your warehouse, or query the same records over the API with an API key. API docs →
[ what you'll know ]
Questions your logs can finally answer.
Have a week of access logs already? Run them through the free SEO log file analyzer to answer a few of these today, in your browser.
[ questions ]
Crawl analytics, asked directly.
[ start logging ]
