Blog Posts

AI Crawler Log Analysis: A Practical GEO Measurement Guide

Data analyst reviewing AI crawler traffic in server access logs
Furkan Lüleci

AI Crawler Log Analysis: A Practical GEO Measurement Guide

What does an AI crawler log audit measure?

An AI crawler log audit measures which verified bots reached a website, which URLs they requested, and how the server responded. It begins with access records from the CDN, load balancer, web server or firewall rather than browser analytics, because many automated clients do not execute the JavaScript that powers analytics tags.

The audit is a technical availability test, not proof that a brand will be cited in an answer. It confirms whether an answer engine can retrieve the pages that contain the brand’s facts, expertise and evidence. When access data is combined with referral visits and citation checks, the infrastructure layer of GEO-oriented communications becomes measurable.

Each log event should preserve a timestamp, source IP, request path, HTTP method, response status, user-agent, referer, bytes transferred and response time. Query parameters should be normalised before URLs are grouped, while fields that may contain personal data should be minimised according to the organisation’s security and retention policy.

  • Reach: Did a verified crawler request the intended page?
  • Identity: Does both the user-agent and the source IP match official documentation?
  • Response: Did the server return 200, redirect, block, rate-limit or fail?
  • Coverage: Are service, expert, case study and article pages being discovered?
  • Latency: How long passed between publication and the first verified request?

A useful report separates confirmed traffic from unverified claims. It also distinguishes automated discovery from a fetch triggered by a person. Without those controls, a dashboard may celebrate spoofed bots, treat a user action as continuous crawling or hide a firewall rule that blocks the very pages the communications team is promoting.

Which bot maps to search, training or a user fetch?

Search discovery, model improvement and user-triggered retrieval are separate functions and must be reported as separate crawler classes. The label “AI bot” is too broad for a robots.txt decision, a security rule or a GEO performance claim.

According to OpenAI’s official crawler documentation, OAI-SearchBot supports the inclusion of websites in ChatGPT search results. GPTBot identifies content that may be used to improve generative AI models. ChatGPT-User handles actions initiated by a person or a custom GPT, so it is not an automatic crawler that continuously maps the web.

This design allows a publisher to permit search visibility while making a different choice about training. OAI-SearchBot can be allowed while GPTBot is disallowed. OpenAI notes that a robots.txt adjustment can take about 24 hours to be reflected by its search systems, so the first requests after a policy change need a reasonable transition window.

Perplexity documents a similar functional split. PerplexityBot gathers pages for search results and is not used for foundation-model training. Perplexity-User supports a person’s explicit request and is not an automatic crawler. A user-triggered fetch may therefore behave differently from a scheduled bot in relation to robots.txt.

Google requires a different reading. Google-Extended is a robots.txt product token, not a distinct HTTP user-agent that will appear in server logs. It governs whether crawled content may support Gemini training and certain grounding uses. Blocking Google-Extended does not block Google Search or change ranking because Googlebot is controlled separately.

Why is a user-agent string insufficient evidence?

A user-agent string is insufficient because any client can copy the name of a recognised crawler. A hostile request can call itself Googlebot, GPTBot or another known agent, and an unverified dashboard will count that traffic as legitimate access.

Verification should match the request IP against the provider’s published ranges. OpenAI maintains separate machine-readable IP lists for OAI-SearchBot, GPTBot and ChatGPT-User. Perplexity publishes ranges for PerplexityBot and Perplexity-User. These files should be fetched on a recurring schedule and retained with a version timestamp rather than pasted permanently into a spreadsheet.

Google supports automatic matching against its published crawler IP ranges. Its manual verification method starts with a reverse DNS lookup of the source IP, checks that the hostname ends in an approved Google domain and then resolves that hostname forward. The returned address must match the original source IP. A failure at either stage means the identity is not verified.

The resulting taxonomy should be explicit. “Verified” means that the expected user-agent and an official IP range agree. “Suspicious” means that a known bot name arrives from an unlisted address. “Unknown” means that neither provider documentation nor internal ownership can explain it. “User-triggered” means that the fetch follows an explicit user action rather than routine crawling.

Firewall policy should use the same dual test. An allow rule based only on the user-agent can create a security gap, while a block based only on an old IP list can reject a legitimate crawler after the provider changes its infrastructure. Scheduled list refreshes, change logs and alerting for unmatched traffic keep the control accurate.

How should a 30-day crawler baseline be built?

A 30-day crawler baseline should be built in five stages: collect, verify, classify, diagnose and report. A shorter sample can miss weekly variation, delayed discovery of new pages and the transition period after a robots.txt or firewall change.

Technical specialist comparing server log records with official crawler IP ranges
A reliable crawler audit joins the claimed user-agent with official IP ranges and the server’s response record.

Collection starts by aligning timestamps from the CDN, WAF and origin to UTC. Duplicate retries are preserved but tagged, URL parameters are normalised, and internal monitoring traffic is excluded through documented rules. The raw record should remain available for investigation, while the reporting table contains only the fields needed for measurement.

Verification assigns a candidate identity from the user-agent and confirms it with the current official IP file. Classification then maps every URL to a business page type: home, service, expert profile, case study, article, category or technical file. That step changes the question from “How many hits occurred?” to “Which evidence and expertise could the crawler retrieve?”

Status diagnosis groups 2xx, 3xx, 4xx and 5xx outcomes. A 200 response confirms successful delivery; 301 or 302 may expose a long redirect chain; 403 identifies a policy or firewall block; 404 signals a broken resource; 429 points to rate limiting. Repeated 5xx responses require an infrastructure fix before they are interpreted as a GEO problem.

The report should show verified requests, unique URLs, successful-response rate, time to first crawl for new content, bytes delivered, error distribution and suspicious impersonation attempts. A weekly baseline is more actionable than a single monthly total because teams can connect a shift to a deployment, content release or security-rule change. The same measurement discipline that connects SEO signals with PR decisions prevents crawler counts from becoming an isolated technical vanity metric.

How should robots.txt and WAF controls be separated?

Robots.txt communicates a crawling preference, while a WAF enforces technical access; the two layers solve different problems. Compliant crawlers may follow robots.txt, but an impersonator or malicious client can ignore it completely.

The organisation should first decide which use cases it permits. A company may allow OAI-SearchBot for ChatGPT search discovery while disallowing GPTBot for training, because the services have distinct tokens. It may disallow Google-Extended without affecting Google Search, provided Googlebot remains accessible. These are content-governance decisions that should be documented with legal, communications and technical owners.

The WAF then verifies identity and protects capacity. Requests whose user-agent and source IP match an approved crawler can be allowed under a suitable rate policy. A familiar user-agent from an unapproved range can be challenged, throttled or blocked. If legitimate crawling produces a sudden load spike, caching and measured rate limits should be tuned before every crawler is denied.

Changes should move through observation, simulation and enforcement. Measure the traffic that a proposed rule would affect, run the rule in logging mode, observe it for 24–72 hours and confirm that no important page or verified bot is rejected. A shared PR and SEO measurement plan keeps these infrastructure choices aligned with the pages the brand expects people and answer engines to discover.

Which metrics are useful for GEO decisions?

The most useful GEO metrics connect verified crawler access to citation, answer accuracy and source authority rather than treating bot hits as the outcome. Access is the first checkpoint in an evidence chain; it cannot prove that the system understood, trusted or cited a page.

Technical metrics should include verified requests by crawler, unique high-value URLs reached, successful-response rate, median time to first verified fetch after publication, 403 and 429 rates, redirect depth and suspicious spoof attempts. A practical operating target is to keep successful access above 95% on priority pages and assign every recurring failure to an owner.

Outcome metrics then test whether accessible evidence travels into answers. These include cited appearances in ChatGPT and Perplexity, visibility in AI-generated Google experiences, accuracy on branded questions, diversity of independent editorial sources and qualified referral sessions. The comparison should use a stable question set, a recorded date and market, and consistent evaluation criteria because answer outputs can vary.

The diagnosis follows a simple sequence. If a priority page is not reached, fix discovery, policy or infrastructure. If it is reached but not cited, review answer structure, factual completeness, entity consistency and the strength of independent sources. If it is cited but the answer is wrong, correct ambiguous claims across owned pages and trusted editorial references.

FL PR & Communications brings infrastructure, content and communications evidence into one decision table. Technical teams own access and server errors; content teams own page coverage and answer clarity; communications teams develop credible third-party references and expert visibility. The monthly review links each error to a URL and owner, each content gap to a question cluster, and each authority gap to an earned-media opportunity that can be independently verified.

Frequently Asked Questions

The five most common questions about AI crawler log analysis are answered below.

What is the difference between OAI-SearchBot and GPTBot?

OAI-SearchBot supports website inclusion in ChatGPT search, while GPTBot identifies content that may help improve generative AI models. A publisher can set separate robots.txt rules for the two agents.

Will AI crawler traffic appear in Google Analytics?

Much of it will not appear because automated clients may not run the JavaScript analytics tag. CDN, WAF, load-balancer and origin access logs are the dependable sources for crawler requests.

How is an AI crawler identity verified?

Use the user-agent as a candidate label, then match the source IP against the provider’s official JSON or CIDR ranges. Google also supports reverse and forward DNS verification.

Why does Google-Extended not appear in access logs?

Google-Extended is a robots.txt product token, not a separate HTTP user-agent. Googlebot performs Search crawling, while Google-Extended governs certain Gemini training and grounding uses.

When should measurement resume after a crawler block is removed?

Check for valid requests after 24 hours, then compare performance using 7–14 days of new log data. Track time to first crawl for new pages alongside changes in 403 and 429 responses.