A crawler access check should answer a narrow question: what is this named agent permitted to fetch from this URL, and what document does the server return? Its output is a reproducible trace. A green badge without the matched rule, response path and page controls leaves too much unexplained.

Access checks are valuable at release boundaries, after infrastructure changes and during an indexing investigation. They cannot prove that a page will be indexed, cited or recommended. They can identify the technical condition that deserves the next check.

Identify the agent’s job

Training collection, search discovery and user-requested retrieval carry different policy consequences.

Purpose OpenAI Anthropic Meaning for a check
Model development GPTBot ClaudeBot Test the organisation’s model-development collection policy.
Search OAI-SearchBot Claude-SearchBot Test access intended for the vendor’s search and discovery systems.
User-initiated retrieval ChatGPT-User Claude-User Log a user-requested fetch separately from automatic crawling.

OpenAI documents independent controls for GPTBot and OAI-SearchBot. It says OAI-SearchBot is used to surface sites in ChatGPT search, while ChatGPT-User supports certain actions initiated in ChatGPT and is not used to determine Search inclusion.

Anthropic documents ClaudeBot for potential training collection, Claude-SearchBot for search quality and Claude-User for retrieval at a user’s direction. Its page says the three bots honour standard robots.txt directives. OpenAI states that robots.txt may not apply to ChatGPT-User because the request is user initiated.

One combined “AI bot” result can therefore misstate the configured policy. The checker should show the selected identity and preserve separate results.

What the checker can verify

A useful check spans more than a parser for robots.txt. The wider crawl and index eligibility chain covers what begins after access is allowed.

Matched robots rule

Retrieve the live file from the tested host, select the named user-agent group, apply the matching path rule and show the source lines. Google’s guide explains that robots rules manage crawler access, while a blocked URL can still be known or indexed from links elsewhere (Google robots.txt documentation).

Network response

Send a request using the documented agent string, follow redirects under a declared limit and retain each status. A 2xx response allows Google to consider the content for processing; it does not guarantee indexing (Google HTTP status guidance).

Canonical target

Extract the HTML canonical and any canonical response header. Compare both with the final URL. Google recommends an absolute self-referential canonical on the preferred page and treats redirects, canonicals, sitemaps and internal links as related signals (Google canonical guidance).

Initial and rendered content

Save the initial response and, where the site relies on JavaScript, a rendered document. Google queues successful pages for rendering and uses the rendered HTML for indexing (Google JavaScript SEO basics). Other agents may have different rendering capabilities, so the checker should report what it observed instead of assuming parity.

Index and preview controls

Read robots meta tags, agent-specific meta values and X-Robots-Tag headers. Google notes that a crawler must fetch a page before it can discover these controls (Google robots meta documentation).

Use cases worth adding to release QA

For a bounded release sequence that assigns owners and acceptance checks, use the 14-day GEO sprint alongside the access test.

Staging and production policy drift

Compare the two environments before launch, then retrieve production again after deployment. The evidence includes the full robots file, the selected agent and the matched rule. A copied environment rule becomes visible without relying on a traffic decline or delayed index report.

CDN, firewall and bot-management changes

A robots parser can say “allowed” while the edge returns 401, 403, 429 or a challenge page. Check the response from the public edge and compare it with an ordinary browser request. Escalate the discrepancy to the infrastructure owner with headers and request identifiers.

URL migration and canonical changes

Trace old URLs, redirect targets and canonicals together. This catches chains that end on a generic page, canonicals that still reference the previous host and alternate URLs that return the same document without consolidation.

JavaScript framework releases

Compare the response source with the rendered document after a routing or rendering change. Flag missing headings, absent internal links, late canonical changes and error views that return 200.

CMS and SEO plugin updates

Inspect robots meta tags and response headers after an update. Two configuration layers can emit conflicting directives. The checker should show every value and its location.

A release trace from request to result

This trace is illustrative. The domain, paths, values and outcomes are fictional, and they demonstrate a reporting format rather than a real test.

URL requested:      https://example.com/guides/solar-rebates
Agent selected:     OAI-SearchBot
robots.txt:         Allowed by User-agent: OAI-SearchBot / Allow: /
First response:     308 -> https://www.example.com/guides/solar-rebates
Final response:     200 text/html
HTML canonical:     https://www.example.com/guides/solar-rebates
Header canonical:   Absent
Initial document:   Title, H1 and main explanation present
Rendered document:  Same title, canonical and main explanation
Robots meta:        index,follow
X-Robots-Tag:       Absent
Preview controls:   No restrictive directive observed

The trace supports a limited conclusion: the selected search agent was allowed by the retrieved robots policy, the public edge returned a viable page, and the observed document carried coherent canonical and index signals at the time of the check.

It says nothing about ranking, citation, recommendation frequency or future crawling. Those outcomes require separate measurement.

Interpret common combinations

Observation Likely layer Next verification
Robots allowed, edge returns 403 Firewall or bot-management policy Verify published agent IP ranges and edge rule logs.
Final response is 200, canonical points elsewhere Canonicalisation Compare internal links, sitemap and duplicate pages.
Final response is 200, robots meta is noindex Index control Find the owning CMS, template or header rule.
Initial HTML is an empty shell, rendered copy appears later Rendering dependency Test with clean rendering and preserve both documents.
Search agent blocked, training agent allowed Policy mismatch Confirm the intended search and training choices with the owner.
User-initiated agent appears in logs User-requested retrieval Report it separately from scheduled crawler traffic.

Avoid collapsing these combinations into “blocked” or “healthy”. Each points to a different owner and a different remedy.

Verify the requester before trusting a log label

A user-agent string can be copied. OpenAI’s crawler documentation publishes IP ranges for its search, training and user agents. Anthropic’s crawler policy links to its published crawler IP list. Use those vendor sources when a log event needs stronger attribution.

The evidence record needs to state the verification method. “User agent matched” and “source address matched the vendor’s current published range” are different confidence levels. IP ranges can change, so store the source URL and the time of verification rather than hard-coding an old list into an article or runbook.

Save the result another operator can reproduce

For every check, retain:

  • requested and final URLs;
  • selected agent and its documented purpose;
  • retrieved robots file and matched rule;
  • redirect chain, response codes and relevant headers;
  • canonical values;
  • initial and rendered document extracts;
  • robots meta and X-Robots-Tag values;
  • identity-verification method;
  • test time, environment and tool version;
  • conclusion, limitation and assigned owner.

With those details, another operator can repeat the request, challenge the interpretation and confirm the fix without relying on a screenshot of a coloured status.