How to See Which Pages AI Bots Crawl Most on Your Site
See exactly which pages AI bots like GPTBot and ClaudeBot crawl most, why per-page crawl data is your GEO input, and how to spot accidental blocks.
The pages AI bots crawl most are the pages generative models learn about you from — and you can see them in your server-side request data, grouped by path per bot. That per-page breakdown is not a vanity metric. It is the raw input to your visibility in ChatGPT, Perplexity, Gemini, and Claude: an AI engine can only mention, quote, or cite a page it has actually read. If GPTBot has crawled your comparison page forty times this month and never touched your pricing page, those two facts predict very different things about how AI answers describe you.
The catch is that you cannot get this data from JavaScript analytics. AI crawlers don’t run your tracking script, so Google Analytics, Plausible, and every other tag-based tool report zero crawler activity — not because there is none, but because they physically can’t see it. You need server-side detection. This guide covers what the per-page view tells you, the patterns worth looking for, and how to catch the pages that should be crawled but silently aren’t.
Why per-page crawl data matters
Generative engines build answers from up to three layers — training data, live retrieval, and answer synthesis — and the first two are fed by crawling. When a model “knows” your product, that knowledge came from pages a crawler like GPTBot or ClaudeBot fetched and passed into a training corpus. When an engine cites you live, it retrieved a specific URL at answer time. Both paths start with a fetch of a specific page.
So the per-page crawl distribution is effectively a map of what AI models have the raw material to say about you. A page no bot has read is a page no engine can quote. This makes crawl data the first stage of the GEO funnel — crawl, then citation, then referral — and the only stage you can measure before you’ve earned a single AI mention. It’s the leading indicator. Everything downstream (whether answers actually cite you, whether that drives traffic) depends on the engines being able to read the right pages first.
The practical framing: treat your most-crawled pages as your de facto GEO surface area. Those are the pages doing the work of teaching models about your category. If the wrong pages top that list, your AI presence is being built from the wrong material.
The patterns worth looking for
Once you can group crawler hits by path, a handful of patterns tell you most of what you need to know.
Docs, blog, and comparison pages should dominate. Well-behaved AI crawlers gravitate to text-dense pages with stable URLs and real answers — documentation, blog posts, “X vs Y” comparisons, glossaries. This is consistent with what the GEO research found makes content citable: direct answers, statistics, and quotable claims. If your top-crawled list is dominated by exactly these pages, that’s healthy. If it’s dominated by your homepage and login screen while your best comparison content is nowhere on the list, you have a reachability problem hiding in plain sight.
Watch for /llms.txt and /robots.txt fetches. Some AI agents fetch /robots.txt before crawling (that’s expected and good — it means they’re checking your rules) and some will request /llms.txt if you publish one. Seeing /llms.txt in your logs is one of the few direct signals that an engine is actually looking at that file — worth knowing, since whether llms.txt does anything is still an open question and your own logs are the only evidence you’ll get.
Crawl frequency is a proxy for perceived importance. A page crawled weekly is on the model’s radar; a page crawled once six months ago is a page the model’s picture of you may already be stale on. Recrawl cadence has no published schedule — it ranges from multiple fetches a day on large, fast-changing sites to weeks between visits on small ones — so the only way to know your numbers is to track them.
Compare bots against each other. GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, and Googlebot don’t crawl the same pages at the same rate. If Perplexity is fetching your blog heavily but OpenAI’s crawlers aren’t touching it, that asymmetry is a real, actionable difference in how each engine’s picture of you is being built.
flowchart LR A["Top-crawled pages<br/>docs, blog, comparisons"] --> B["Material models<br/>learn you from"] B --> C["What AI answers<br/>can mention and cite"] D["Pages absent from<br/>the crawl list"] --> E["Reachability gap<br/>models can't quote them"]
Spotting pages that should be crawled but aren’t
The most valuable read of the per-page view is often the negative one: which important pages are missing from it entirely. A page that never appears in your crawler data is invisible to the training and retrieval layers, no matter how good it is.
When a page you’d expect to see is absent, the usual culprits are:
- It’s noindexed or disallowed. A
robots.txtrule or anoindexheader meant for one crawler that’s catching more than you intended. - It’s not linked. Crawlers follow links. An orphan page with no internal links pointing at it may never be discovered.
- It’s too new. Crawlers haven’t gotten to it yet — expected for recently published content, worth watching to confirm they eventually do.
- It’s rendered client-side. AI crawlers fetch server-rendered HTML and generally don’t execute JavaScript. Content that only appears after client-side rendering is effectively blank to them — a strong argument for SSR on marketing and docs pages, and the same reason you’d want crawler tracking on a Next.js site even though it renders on the server.
Cross-reference your list of high-value pages against the crawled-paths list. Every important page that’s missing is a hypothesis to investigate.
Spotting accidental blocks
The failure mode that costs the most and is noticed the least is the accidental block. A WAF rule, a CDN bot-protection toggle, an overzealous robots.txt edit — any of these can silently cut off an AI crawler, and because nothing errors on your side, you’d never know unless you were watching crawl volume.
The signature is a sudden drop to zero for a specific bot or a specific section of the site. GPTBot was crawling your docs daily, and then last Tuesday it stopped. Nothing in your dashboards flagged it, because a tag-based analytics tool never saw the crawler in the first place and a server without monitoring just quietly serves fewer requests. In the per-page, per-bot view, that drop is obvious — one bot’s line falls off a cliff — and it’s usually traceable to a config change you can date to the same day.
This is why crawl data is worth monitoring continuously rather than auditing once. A one-time server-log audit is a great way to establish a baseline, but the accidental block that happens three weeks later is the one that quietly erodes your AI presence.
Seeing it in Kitbase
Kitbase’s bot & crawler detection turns this into a view instead of a grep. You forward your server or edge requests to Kitbase, it classifies every request server-side, discards the human traffic in memory, and stores only the bot and crawler hits — each labelled by bot, verified-or-spoofed, and attributed to the exact path it requested.
The top-paths view answers “which pages does each AI bot crawl most?” directly: paths ranked by fetch count, filterable per bot, so you can see GPTBot’s favorites separately from Perplexity’s, and watch the trend over time. Because classification is server-side, it catches the crawlers your JS analytics can’t — and because it flags verified vs. spoofed, a scraper wearing a GPTBot user agent doesn’t get counted as the real thing. Setup is a copy-paste forwarder for Next.js, WordPress, Vercel, nginx, and more, with a guided wizard that verifies data is flowing before you leave the page.
The payoff is that “which pages do AI bots read most” stops being a question you answer once with a log file and becomes a dashboard you can check the day after you publish something — and the day a WAF rule quietly breaks everything.
FAQ
What pages do AI bots crawl most? On most sites, text-dense pages with stable URLs: documentation, blog posts, comparison and “best X” pages, and glossaries. These are the pages that answer questions directly, which is exactly what makes them citable. Your own per-page crawl data is the only way to know your specific distribution, because it varies by site and by bot.
How do I see which pages GPTBot crawls?
You need server-side data — GPTBot doesn’t run JavaScript, so tag-based analytics can’t see it. Either grep your raw access logs for the GPTBot token and count paths, or forward requests to a server-side detection tool like Kitbase that groups crawler hits by path and bot for you.
Why isn’t my most important page being crawled?
Common reasons: it’s blocked by robots.txt or noindex, it has no internal links pointing to it, it’s too new, or it renders client-side so the crawler sees an empty page. Check each against the page that’s missing from your crawl data.
Does crawl frequency affect AI visibility? Indirectly. A page has to be crawled to be part of what a model knows or can retrieve, and pages crawled more often keep the model’s picture of them current. Crawling is necessary but not sufficient — being read doesn’t guarantee being cited, which is why you measure AI visibility separately from crawl data.
Can Google Analytics show me AI crawler pages? No. Google Analytics and every other JavaScript-based tool only record requests that execute their tracking snippet, and AI crawlers don’t run JavaScript. You need server-side or edge-level detection to see crawler traffic at all.
Want to see which pages every AI crawler reads most on your site? Start your free trial — 7 days, no credit card required — and the setup wizard will have your first per-page crawler data flowing in minutes.