AI Visibility Tracker blog

AI Crawlers Crawling a Website: What a 5-Day Server Log Really Shows

A five-day log from a new website shows why crawler requests, live AI fetches, referral traffic, and actual brand visibility in AI answers must be measured separately.

· 14 min read

A brand-new website recorded roughly 750 bot requests and 207 human pageviews in its first five days, yet it received zero visits attributed to ChatGPT, Claude, Perplexity, or Gemini. On the final day, GPTBot requested 67 different URLs in a single sweep; earlier, ChatGPT-User opened the homepage, documentation, API pages, legal pages, and blog within one minute.

That observation is useful because it shows what AI crawlers crawling a website can reveal—and what it cannot. We can use server logs to identify likely crawler activity, validate whether a bot is genuine, improve access to important buyer-facing pages, and spot broken or invented URLs. But a crawl is not evidence that our brand will be mentioned, cited, or recommended in an AI-generated answer. For that, we need prompt-level visibility measurement.

The five-day observation: lots of AI activity, no AI referrals

The source observation came from a new site launched on October 7, where server-side requests were sent into analytics while human pageviews were counted separately through JavaScript. That setup matters: conventional analytics platforms frequently filter known bots, while a request log retains the raw HTTP activity needed for investigation.

Across days one through five, the reported picture was:

PeriodBot or activityPages requestedStatus / referral observationMost careful interpretation
Day 2Claude-UserFirst AI-related requestNo AI referral visit reportedA user-triggered fetch may have occurred before scheduled crawling
Days 2-5GoogleOther69 requests over four daysMostly documentation pagesA search-related automated visitor found product information early
Day 4ChatGPT-User9 fetches in about one minuteHomepage, docs, API docs, terms, privacy, blogThe request sequence resembles a product-evaluation session, but cannot prove intent
Day 5GPTBot67 unique URLs, one request eachA broad one-pass sweep aligned with the sitemapLikely automated discovery or collection activity, subject to verification
Days 1-5PerplexityBot, meta-externalagent, Bytespider1, 2, and 10 requests respectivelyLow-volume activitySmall samples; no conclusion about future traffic or citations

The report also logged about 750 bot requests versus 207 human pageviews, excluding some command-line testing. That is a sharp early contrast, but it is not a universal benchmark. A documentation-heavy SaaS site, a local business, an ecommerce catalog, and a publisher will have different URL counts, crawl paths, cache behavior, and bot exposure.

The practical point is simpler: do not expect referral traffic to be the first signal of AI interest. A crawler can access pages for training, search indexing, answer-generation retrieval, policy checks, or a user-initiated task without creating a normal browser session in GA4.

What GPTBot, ChatGPT-User, and Claude-related fetches actually mean

We should avoid treating every AI-branded user agent as the same thing. The source’s most interesting contrast was GPTBot reading a broad set of sitemap URLs on day five while ChatGPT-User made a compact, buyer-like journey through commercial and legal pages.

GPTBot is not the same as ChatGPT search

OpenAI documents GPTBot as a crawler related to improving generative foundation models. Separately, it identifies OAI-SearchBot as the crawler used for search features in ChatGPT. Those functions have different controls and different implications.

A GPTBot visit can show that an apparent OpenAI crawler accessed a page. It does not show that ChatGPT Search indexed the page, that a user asked a relevant question, or that the page will later become a cited source. We should not report a GPTBot crawl as “we rank in ChatGPT.”

The one-pass pattern in the five-day log is still operationally valuable. If a crawler reaches 67 URLs once each, our sitemap.xml, internal links, canonical tags, status codes, and page speed need to be ready before that pass happens. A clean information architecture does not guarantee visibility, but it removes avoidable access problems.

ChatGPT-User and Claude-User can be request-driven

OpenAI says ChatGPT-User is not an automatic web crawler; it is associated with actions initiated by users, and its robots.txt behavior may differ from automatic crawlers. That makes the reported one-minute path through homepage, docs, terms, privacy, and blog more plausibly connected to a real task than a broad scheduled crawl.

Still, the correct phrase is “consistent with evaluation,” not “proof of a buyer.” It might reflect someone comparing vendors, checking whether a product is trustworthy, researching API terms, or asking for a summary. We cannot see the underlying prompt from our server log.

The same restraint applies to Claude-User and ClaudeBot labels. The source author explicitly noted that classification was based on user agents rather than verification against published network ranges. That caveat is not a footnote—it determines how much confidence we can place in the findings.

How to verify AI crawlers crawling a website

A user-agent string is a claim, not identity proof. Anyone can send a request that says GPTBot, ChatGPT, ClaudeBot, or Googlebot in the HTTP header. That is why suspicious impersonators should be separated from verified crawler activity in every report.

We recommend a four-part verification process:

  1. Capture the complete request record. Keep timestamp, IP address, user agent, requested URL, HTTP status, referrer, response bytes, and edge or WAF outcome. Do not rely on an analytics label alone.
  2. Compare the user agent with operator documentation. OpenAI publishes crawler descriptions and IP-range resources for GPTBot, OAI-SearchBot, and related agents. Use those current records rather than an old bot list copied into a spreadsheet.
  3. Validate network ownership and reverse DNS where the operator specifies it. A matching name without a matching IP range or verification procedure is not enough. Preserve the result of the lookup with the log record.
  4. Use infrastructure-level bot verification where available. Cloudflare’s verified-bot and AI-crawler controls can add an independent signal, although we should still retain origin or edge logs for forensic analysis.

A request that fails verification should be classified as “claimed AI bot” or “unverified impersonator,” not as OpenAI, Anthropic, or Perplexity traffic. This protects our reporting from a common mistake: adding spoofed traffic to a visibility narrative.

It also changes our security response. A verified crawler that respects a reasonable rate limit is an access-policy decision. An unverified bot repeatedly probing login, admin, or random paths is a security and abuse-management issue.

Why AI bots can crawl heavily without sending referral traffic

The zero AI referrals in the five-day source log should not be surprising. Crawling and referrals describe different events.

A crawler fetches a URL from our server. A referral occurs when a person clicks from an AI product to our site and the browser request preserves identifiable source information. The first may happen at scale while the second is absent, delayed, stripped, or simply not measured correctly.

OpenAI’s publisher guidance says ChatGPT can append utm_source=chatgpt.com to referral URLs from its search experience, which can help measurement. But we should not assume every AI-originated visit will carry a neat referrer or campaign parameter. Privacy settings, app-to-browser handoffs, copied URLs, redirects, analytics filters, and browser behavior can reduce attribution quality.

Cloudflare has highlighted the broader imbalance between AI crawler demand and traffic returned to publishers, and it now offers specific AI crawl controls. The point is not that every AI bot is harmful. The point is that request volume and commercial return are separate metrics.

For reporting, we keep these four measures apart:

  • Verified crawl requests: How often recognized crawlers fetched our pages.
  • AI referral sessions: Clicks that arrive with a detectable AI source or campaign tag.
  • AI answer visibility: Whether an engine names, cites, or recommends our brand for selected prompts.
  • Share of answer: How often our brand appears compared with named competitors across the same prompt set.

That last pair is where an AI visibility program becomes useful. Our guide to tracking brand mentions in ChatGPT explains the practical shift: we need to test what buyers actually ask, not infer answer presence from a server-side fetch.

Why terms, privacy, docs, and sitemap.xml are buyer-facing AI pages

The reported ChatGPT-User session opened the terms and privacy pages alongside product and API documentation. That should change how we treat pages often dismissed as legal or technical housekeeping.

A user asking an AI assistant to assess a product may prompt it to inspect:

  • pricing, plan limits, and cancellation terms;
  • documentation and API references;
  • security, privacy, data retention, and subprocessors;
  • integrations, implementation requirements, and support policies;
  • comparison pages, use cases, and customer evidence.

If these pages return 404 errors, require fragile JavaScript rendering, contradict one another, or hide basic answers behind vague marketing language, they create uncertainty for both people and automated retrieval systems. We do not need to write legal pages for bots, but we should make factual buyer information clear, accessible, internally linked, and consistent.

The sitemap.xml is equally practical. In the source report, GPTBot’s 67-URL burst resembled a sitemap-wide discovery pass. We would check that our sitemap contains only canonical, indexable URLs that return HTTP 200; excludes redirects, blocked pages, tracking parameters, and stale URLs; and is referenced from robots.txt.

For local businesses, this extends to service-area, location, and category pages. Our review of ChatGPT local-search citations and list pages covers why testing the pages AI systems actually surface matters more than assuming a crawl means local inclusion.

AI bots requesting nonexistent URLs: signal, noise, or a problem?

A bot requesting URLs that do not exist can feel alarming, especially when requests repeat. But a 404 is an observation, not a diagnosis.

There are several plausible explanations:

  1. The bot followed a stale internal or external link. A removed resource, old migration URL, or malformed canonical can keep attracting requests.
  2. A model or agent inferred a likely path. For example, it may try /pricing, /api, /docs, /security, or a route assembled from a prompt. That can suggest information demand, but it does not prove a user searched for that exact page.
  3. URL parameters or faceted navigation expanded the crawl space. Calendar pages, filters, internal search, and query-string variants can create unnecessary combinations.
  4. The request was from an impersonator or generic scraper. In that case, the AI-looking user agent may be irrelevant.

We investigate recurring 404s in a simple order: validate the bot identity, group URLs by path pattern, inspect referrers and prior URLs, look for site-generated links, then decide whether a redirect, a new page, a 410 response, or a rate-control rule is appropriate.

Do not build content for every invented path. If an unverified bot requests /best-enterprise-api-pricing 300 times, that is not enough evidence to launch a page. If verified user-triggered fetches and real search-console data repeatedly expose a genuine gap—such as missing documentation for data retention—then the pattern can inform a content or product-documentation decision.

Robots.txt and Cloudflare controls: choose policy by crawler purpose

The question is not simply “Should we block AI?” It is “Which access do we want to permit, for which purpose, and what are we willing to exchange for it?”

Robots.txt communicates a preference to compliant crawlers. It is not a firewall. Cloudflare explicitly notes that robots.txt is voluntary and recommends access controls when we need to technically enforce restrictions.

A practical policy can separate crawler functions:

ObjectivePossible approachTrade-off to document
Exclude content from OpenAI foundation-model crawlingDisallow GPTBot in robots.txt and enforce at the edge if neededDoes not by itself define ChatGPT Search eligibility
Preserve eligibility for ChatGPT search answersAllow OAI-SearchBot where appropriateCrawling still does not guarantee citations or traffic
Limit training-focused AI crawlers broadlyUse robots.txt plus Cloudflare AI-crawler controlsMay reduce discovery or future participation depending on vendor and policy
Protect staging, private, or expensive endpointsAuthentication, WAF rules, rate limits, and noindex controlsRobots.txt alone is insufficient for sensitive content

Cloudflare’s current controls distinguish AI crawler categories and can block recognized bots at the network edge. That is useful when crawl cost, server load, licensing policy, or content restrictions require enforcement. It is not a substitute for fixing an exposed staging environment or a public endpoint that should require authentication.

Perplexity also documents robots.txt controls for PerplexityBot, while its guidance distinguishes indexing from training. We should read each vendor’s current documentation before changing rules because bot names, IP ranges, and product roles can change.

A five-day log does not prove AI answer visibility

This is the critical separation. The source’s findings show that apparently AI-related agents accessed a new site early, and that no detectable AI referral click followed during the observed window. They do not establish whether the site was mentioned in ChatGPT, cited by Perplexity, recommended by Claude, or outranked by a competitor.

AI-generated answers are prompt-specific. A brand may appear for “best API monitoring tool for startups,” disappear for “enterprise observability platforms with SOC 2,” and be replaced by a competitor for “alternatives to [brand].” Crawling does not resolve those differences.

We measure actual AI visibility by creating a prompt set that reflects real buyer stages:

  • discovery prompts, such as “best [category] tools for [audience]”;
  • comparison prompts, such as “[brand] vs [competitor]”;
  • evaluation prompts about pricing, security, integrations, setup, and limitations;
  • local or category prompts where citations and list pages matter;
  • replacement and alternative prompts that expose competitor gaps.

Then we run the same prompts across ChatGPT, Claude, Gemini, Perplexity, and Grok, record brand mentions and citations, identify competitors named instead, and calculate share of answer. That is the difference between “a crawler read our page” and “our brand appears when a buyer asks a high-intent question.”

Our desktop product is built for this workflow: it uses the customer’s own API key to track prompt-level mentions, citations, competitor gaps, and share of answer across major AI engines. For teams comparing approaches, see our AI Visibility Tracker versus ChatGPT brand-monitoring software.

The operating model we recommend

We treat crawl logs, technical accessibility, referral traffic, and AI answer presence as a connected—but deliberately separate—measurement system.

Weekly: monitor access and anomalies

Review verified AI-bot requests by crawler, URL group, status code, bytes served, and error rate. Flag sudden bursts, repeated 404 patterns, crawl loops, unusually expensive endpoints, and requests claiming to be a major vendor without verification.

Monthly: improve the pages being fetched

Prioritize pages that answer buyer questions: product overview, integrations, pricing, implementation, documentation, security, privacy, terms, and key category pages. Fix sitemap errors and make sure robots.txt matches our actual policy rather than an outdated copy-paste rule.

On a defined cadence: test real AI visibility

Run a stable, versioned prompt set across the engines that matter to our customers. Track whether our brand is cited or mentioned, which domains are cited, which competitors appear, and where our share of answer changes. This is also where we decide whether a documentation update, comparison page, stronger evidence, or a technical fix had any measurable effect.

We should resist a tempting shortcut: declaring success because GPTBot made one pass through the sitemap. A clean crawl is a readiness signal. A mention or citation in a buyer-relevant answer is a market-visibility signal. They require different evidence.

FAQ

How can I tell whether ChatGPT or another AI bot is crawling my website?

Start with server or CDN logs, not GA4. Capture user agent, IP address, timestamp, requested URL, referrer, and HTTP status, then compare the request against the crawler operator’s current documentation and published verification method. A user agent alone is not proof because any scraper can claim to be GPTBot, ChatGPT-User, ClaudeBot, or PerplexityBot.

Why do GPTBot and ClaudeBot crawl pages without sending referral traffic?

A crawl is a machine-to-server fetch; a referral is a person clicking through to your site. They are different events. Automated collection, indexing, retrieval, and user-triggered fetches may produce no visit at all, while some genuine AI-originated clicks can lose attribution through apps, redirects, browser settings, or copied links.

What does it mean when AI bots repeatedly request pages that do not exist?

Repeated nonexistent URL requests can come from stale links, parameter explosions, inferred paths, malformed internal links, or spoofed bots. Verify the crawler first, then group the 404s by pattern and inspect referrers. Treat a recurring request as an investigation lead, not automatic proof of buyer demand or a reason to create a new page.

How can I stop or block AI crawlers from accessing my site?

Use robots.txt to communicate rules to compliant crawlers, but use edge controls, WAF rules, authentication, and rate limits when technical enforcement matters. Cloudflare offers AI crawler controls for recognized bots. Separate training, search, and user-triggered access where vendor controls permit, because blocking every bot may have visibility trade-offs.

How much AI crawler activity is normal compared with the visitors it sends?

There is no reliable universal ratio. The five-day observation reported roughly 750 bot requests, 207 human pageviews, and no detectable AI referrals, but a new documentation-oriented site is not a benchmark for every domain. Track your own verified crawler requests, costs, referral sessions, and prompt-level brand visibility instead of judging performance from bot volume alone.