How the OpenForBots AI Discovery Audit Works

What the audit checks, how evidence is labelled, how crawler policy is interpreted, and what the results cannot prove.

OpenForBots examines a small set of public website resources and connects every finding to the evidence that produced it. It checks crawler policy, the public homepage response, initial HTML, business clarity, structured data, llms.txt, and public identity signals. It does not claim to reproduce an AI provider’s private index, ranking system, source-selection process, or model behaviour.

The audit is intended to answer practical questions such as:

What the audit requests

The audit accepts a public hostname, such as example.com. It does not accept credentials, private network addresses, local development hosts, arbitrary ports, or authenticated content.

For a normal check, OpenForBots may request:

Requests have time, response-size, redirect, and content-type limits. These limits protect the service and keep the check focused on information a normal public visitor or automated client could request.

What happens during a check

1. The hostname is validated

OpenForBots normalises the hostname and confirms that it points to a public destination. Redirect destinations are checked again before they are requested.

2. Public responses are collected

The audit records response availability, status, redirect information, relevant headers, and the safely limited content needed for the checks. Completed reports and raw page HTML are not intentionally stored after the request finishes.

3. Crawler policy is interpreted

The robots.txt response is evaluated for documented crawler tokens. Search discovery, model development, user-requested retrieval, ordinary search, and data-use controls are kept separate because providers often publish different controls for different purposes.

A block for GPTBot, for example, is not presented as proof that OAI-SearchBot is blocked. The result shows the token, tested path, matching rule, and the provider source used to describe that token’s purpose.

4. The initial HTML is inspected

OpenForBots reads the HTML returned in the first public response. It does not run an unrestricted browser session or click through interactive workflows.

The check looks for signals including:

A page that relies heavily on client-side rendering may receive a caution. That caution means the initial response contains less useful information; it does not prove that a particular provider cannot render the page.

5. Optional llms.txt information is reviewed

When /llms.txt is available, OpenForBots checks response availability, basic document structure, sections, links, and obvious maintenance issues. A missing file is treated as an optional opportunity, not as proof that the website is blocked or unable to appear in AI-supported experiences.

6. Findings are organised into practical next steps

The report keeps access, content, structure, identity, and verification findings separate. It highlights strong foundations, important concerns, and the first useful action without combining everything into a single visibility score.

Each recommended action should explain:

How evidence labels work

OpenForBots uses evidence labels so a reader can tell how strongly a statement is supported.

Observed

The relevant public response or value was collected during the check. Examples include an HTTP status, a matching robots.txt rule, or text present in the initial HTML.

Documented

The statement comes from a provider-maintained source or a primary standard. Provider documentation can change, so crawler references include a source and review date.

Simulated

OpenForBots sent a controlled request using a documented token or request pattern. This can reveal a response difference, but it does not authenticate the request as coming from the real provider.

Heuristic

A repeatable rule found a pattern that requires interpretation, such as very little meaningful initial HTML or an unclear opening explanation. A heuristic is a useful warning, not a proven provider outcome.

Inferred

The conclusion follows from several observations but was not directly measured. The report should show the supporting evidence and make the inference clear.

Manual review

The question cannot be answered reliably from the public check alone. Examples include whether a provider has indexed the newest page, why a particular answer selected one source, or whether a complex interactive workflow is fully usable by an external agent.

How to interpret crawler results

Crawler settings reflect the website owner’s policy. The same rule can be appropriate for one business and unsuitable for another.

The audit report includes an optional declared policy goal comparison on the crawler-policy result. It is off by default: nothing on the report changes unless a goal is selected, and the underlying robots.txt observation is identical either way. Selecting a goal only adds an extra column of interpretation on top of the same evidence.

Six goals are available:

GoalWhat it asks for
Maximum visibilitySearch discovery, general search, user-triggered retrieval, and training/data-use crawlers are all allowed.
Search visibility, training opt-outSearch discovery, general search, and user-triggered retrieval are allowed; training and data-use crawlers are blocked.
Training and data-use opt-outTraining and data-use crawlers are blocked; no preference is expressed for search or user-triggered retrieval.
User-triggered retrieval onlyUser-triggered retrieval is allowed; no preference is expressed elsewhere.
Conventional search preservedGeneral search crawling stays allowed; no preference is expressed for AI-specific crawlers.
Review onlyNo preference is expressed anywhere. The current policy is recorded, not evaluated.

For each documented crawler token, comparing the observed robots.txt rule against the selected goal produces one of five results:

The underlying observation never changes with the selected goal. Only which of these five labels is shown changes — and a blocked training crawler is never treated as a discovery failure just because a goal was selected.

Delivery diagnostics for selected paths

The homepage check on its own cannot show whether other important pages — a pricing page, a key blog post — are delivered normally. Delivery diagnostics is an optional addition: enter up to four same-site paths before running the audit, and OpenForBots checks the homepage plus those paths for redirects, denials, rate limits, errors, or unsupported responses. Leaving the field blank skips this check entirely; nothing else about the audit changes.

Each path is requested twice, under two request profiles:

Both profiles are real requests made by OpenForBots. Neither impersonates a specific AI provider’s crawler — that is a deliberate boundary, not a limitation of what was technically possible. The simulated profile exists only to reveal whether a broad bot-mitigation rule treats any non-browser-shaped request differently, which is a legitimate delivery signal on its own.

Each checked path receives one of these outcomes: available, redirected off-site, not found, denied, rate limited, server error, timed out, oversized, or an unsupported content type. A same-site redirect is followed (up to two hops); a redirect to a different hostname is recorded but never followed. When the two request profiles disagree on a path, the report shows the difference as a review signal — for example, “the default request was available, but the simulated automated-client request was denied” — without asserting a cause. A difference between two OpenForBots-originated requests is not proof that a specific provider is blocked.

Suggested fixes and remediation guidance

Where the evidence supports it, the report includes a suggested robots.txt snippet or short guidance note alongside a finding, so acting on a result doesn’t require re-deriving the fix by hand.

Two kinds of remediation appear, both generated deterministically from evidence already in the report — no AI model is involved, and identical evidence always produces identical output:

A suggested snippet is a proposed addition, not a change OpenForBots has made to the site. Copying or downloading it does not alter robots.txt; the change still has to be deployed by the site owner, after which “Re-run audit” confirms whether it took effect. Remediation is only ever offered for the same five-way alignment result described above — a crawler whose purpose is undocumented or not determined never receives a snippet, since suggesting a fix for an ambiguous finding would overstate what the evidence actually shows.

Security and privacy safeguards

The audit is limited to public website information. It does not intentionally request private or authenticated content.

Safeguards include:

robots.txt is a crawler-policy file, not a security control. Sensitive information should never rely on robots.txt for protection.

What the audit cannot determine

A public technical check cannot establish:

These questions require different evidence. OpenForBots states that boundary rather than replacing it with a speculative score.

How to reproduce or challenge a finding

A useful finding should identify the public URL, check time, relevant evidence, provider source where applicable, and the condition a fresh check should pass.

To challenge a finding:

  1. confirm that the deployed public response has not changed since the check;
  2. identify the exact observation or interpretation that appears wrong;
  3. provide a current primary source when disputing a crawler purpose or standard;
  4. send the reproducible details through the methodology feedback route.

Corrections should improve both the affected explanation and the checks that protect it from returning.

Next step

Run website audit and use the evidence, limitations, and verification condition to decide whether a change is appropriate for your website.

Related context

Useful context for this page