Skip to content
Blog

How to audit AI crawler traffic on your website

Build a crawler inventory from request logs. Separate claimed names, verified operators, resource use, and policy outcomes before changing crawler access.

Frederick Jahn
Frederick JahnSeptember 5, 2026
How to audit AI crawler traffic on your website

An AI crawler audit should tell you which clients reach your site, which identities you can verify, what resources they use, and whether your access policy is working. A list of user-agent strings answers only the first part, and even then it records claims rather than verified operators.

Start with a bounded log window and the routes you care about. Keep unknown clients in the inventory so the audit does not become a report about only the bots that announce themselves.

Choose the observation point and time window

Decide whether you are auditing edge requests, origin requests, or both. A cache can answer requests without forwarding them to the origin. A control at the edge can also reject traffic before an application log exists. Comparing those totals without accounting for the boundary leads to misleading conclusions.

Use a recent complete window that covers the activity you want to understand. Record its start, end, time zone, and known collection gaps. Preserve sampling information if the logging system does not retain every request.

Collect only the fields needed for the investigation. Useful fields include a normalized route, time bucket, response status, cache outcome, bytes returned, claimed crawler name, verification result, and policy revision. Keep sensitive query parameters, cookies, and credentials out of the audit export. OWASP's logging guidance is a useful reference for deciding what to exclude.

Separate crawler purpose from its name

Different clients from the same operator can perform different jobs. OpenAI's crawler documentation distinguishes GPTBot's training-related role, OAI-SearchBot's search role, and ChatGPT-User's user-initiated visits. It also describes their separate controls and published network references.

Anthropic's crawler guidance distinguishes ClaudeBot, Claude-SearchBot, and Claude-User. Do not apply one operator's verification or robots behavior to another by analogy.

Record the purpose documented by the operator, the source, and when you checked it. Keep the raw observed name alongside the normalized label; names and versions change. The AI traffic taxonomy helps distinguish background crawling from other automated visits.

Verify identity before adding a trusted rule

Use the operator's documented method. For Google, the verification guide describes published IP ranges and reverse DNS followed by a forward lookup back to the original address. Use the correct crawler category and exact hostname boundaries, not a loose substring match.

Record separate outcomes: verified, contradicted, and unknown. A lookup timeout belongs in unknown. An address absent from a reference does not automatically establish malicious intent; check which client the reference actually covers.

Store the verification source and retrieval time. A request with a copied user-agent string must not inherit trust from another request with the same name. For a fuller procedure, see how to verify crawler and agent identities.

Build the audit table around decisions

Group by verified operator or unknown client category, normalized resource, and response. Avoid one hostname-wide total that hides which route is doing the work.

The following rows are hypothetical examples of decisions an audit could support. They are not observations from Centinel traffic.

Finding to investigateEvidence to retainDecision to review
A verified search crawler reaches public pages successfullyVerification reference, response distribution, affected routesPreserve intended search access
A verified training crawler reaches a route meant to be restrictedRoute policy, robots rules, actual response, policy revisionReconcile cooperative rules with enforced access
An unverified client claims a trusted crawler nameOriginal claim, trusted source address, verification outcomeInvestigate before granting an exception
An unknown client repeatedly reaches expensive search routesBounded request history, response cost, available client evidenceReview route budgets and automation evidence
An approved crawler begins receiving failures after a releaseChange time, rule revision, response detailsCheck for a policy or integration regression

Measure workload as well as request count. A cached detail page and an origin-generated search response can impose different work even when each appears once in a counter. Keep response bytes, cache results, and available origin-work indicators separate rather than inventing a single cost score.

Compare intended policy with actual responses

RFC 9309 defines cooperative crawler instructions, not an authorization boundary. Your audit should therefore compare three records: the robots rule, the enforced route policy, and what the requester actually received.

For an approved client, check successful access to its intended routes. For a restricted client, check whether protected data was returned. A block counter alone cannot answer either question if another endpoint returns the same data.

Use the crawler access-policy guide to document the decision. If you need to change enforcement, the crawler-blocking guide covers the rollout questions.

Leave a repeatable handoff

Save the window, scope, aggregation method, verification references, and policy revision with the result. Separate confirmed findings from questions requiring another observation. Assign one owner and a next action to each proposed change.

Repeat the same audit after a policy change and compare equivalent windows. Retain missing-data and unknown categories; a smaller unknown count is meaningful only if the evidence improved, not if the query stopped including those requests.

The scraping and AI crawler use case connects this inventory to response options. Start with the route where intended access and observed behavior disagree, and keep its evidence with the policy change.