AI Agent Allowlist
Home Page-Types Database Agent Guardrails 2026 Incidents API Docs Pricing
Resources
Use Cases Industries & Buyers Learn: Core Concepts Implementation Guides Comparisons Schema & Data Reference FAQ Glossary
Why It Matters
2026 Agent Incidents Category Targeting Database Refreshes Contact Customer Login
Download Free Sample
compare: robots.txt vs agent policy

robots.txt Speaks for the Site. An Agent Policy Speaks for the Agent.

Teams keep asking whether an AI agent allowlist replaces robots.txt, or whether robots.txt already covers agent behavior. Neither question has a clean yes, because the two files answer different questions for different audiences. robots.txt is a site publisher's own statement about which automated crawlers may index which paths. An agent allowlist is an operator's own policy about what its own autonomous agent may do once it reaches any of 40 million+ other domains it does not control. You need both, and they are not substitutes for each other.

2Different voices: the site's, and yours
28Page types verified per domain
40M+Domains — most publish no agent-specific robots rules at all
0Enforcement robots.txt performs on its own

robots.txt would not have stopped any of the 2026 agent incidents. Several high-profile cases — a Hugging Face breach, a wiki hijack on DseWiki, a JFrog Artifactory covert channel, and third-party account takeovers — all crossed pages that robots.txt files never even mention, like upload endpoints and login forms. Our database and egress rules would have prevented almost all of them.

How the Hugging Face breach could have been stopped
Where the confusion starts

Both files sit at the edge of a domain. That is where the similarity ends.

A file called robots.txt lives at the root of nearly every domain on the internet, and a policy engine that governs agent browsing also decides, per URL, whether to let a request through. From a distance the two look like they occupy the same job: telling automated software where it may go. Close up, they answer different questions, for different audiences, with different enforcement, and conflating them leaves a gap that neither one covers.

robots.txt is written by the operator of the site being visited. It says, in effect, "here is what I, the publisher, am comfortable with automated crawlers indexing." It was designed in 1994 for search-engine spiders deciding what to add to an index, and it has no concept of an autonomous agent that clicks a "start free trial" button, fills out a form, or reaches a checkout on behalf of a third party. Its enforcement is entirely voluntary: a well-behaved crawler reads the file and honors it, and a crawler that ignores it faces no technical barrier at all, only whatever consequence the site operator can impose after the fact.

An agent allowlist is written by the operator of the agent, not the operator of the site. It says, in effect, "here is what I, the company running this agent, will let it do once it reaches any domain on the open internet, whether that domain has an opinion about agents or not." Its enforcement sits inside your own gateway or framework, checking every outbound request before it leaves, regardless of what the destination site has or has not published. It does not depend on the other 40 million domains cooperating, because most of them never will.

That difference in authorship is the whole story. A site publisher cannot see your agent's task, your company's risk tolerance, or the fact that this particular agent should never touch a login form under any circumstances. Your own policy engine cannot see, and should not need to see, every site's editorial preference about search indexing. Each one is the right tool for the party who wrote it, and neither one was built to do the other's job.

Two definitions, side by side

What each file actually is

the site's voice

  robots.txt

A plain-text file a site publishes at /robots.txt, listing Disallow and Allow paths per user-agent, addressed to crawlers deciding what to fetch and index. It is a request, not a lock: nothing on the wire stops a client from fetching a disallowed path, and the file says nothing about what happens once a page loads — it cannot distinguish a search-indexing GET from an authenticated form submission, because both look the same to a text file matched against a URL path.

the operator's voice

  Agent (page-type) policy

A ruleset the company running an autonomous agent applies to every URL that agent is about to request, anywhere on the internet, based on the page's verified type — login, checkout, pricing, docs, and 24 more. It is enforced at your gateway or framework, before the request leaves, independent of whether the destination site published any crawler guidance at all. It answers "may my agent do this," not "should a search engine index this."

The comparison

robots.txt and agent (page-type) policy, dimension by dimension

This is the centerpiece comparison, because most confusion about "do we still need an allowlist if we already respect robots.txt" collapses once these dimensions are laid out next to each other.

Dimensionrobots.txtAI Agent Allowlist / page-type policy
Who writes the ruleThe site being visited, for its own domain onlyThe company operating the agent, applied to every domain it visits
Who it is addressed toSearch-indexing crawlers, historicallyYour own agent's browsing decisions, at request time
Enforcement mechanismVoluntary; the crawler chooses to honor itEnforced in your gateway or framework before the request is sent
GranularityURL path patterns per user-agent string28 verified page types per domain plus ~40 method-aware egress patterns
Coverage if the site says nothingNo file, no rule — default is usually "crawl everything"Default-deny for unclassified destinations, regardless of what the site publishes
Covers login, checkout, signup specifically?Only if that site's author thought to list them, and most never doYes, by page type, on every classified domain, without per-site authoring
Distinguishes GET from a write actionNo — a path match is a path match regardless of methodYes — egress rules key on write methods (POST, PUT, MKCOL, and so on)
Where the audit trail livesNowhere; robots.txt keeps no log of who obeyed itIn your own policy engine: every allow, deny, and flag decision logged per request
Updated byThe destination site, on its own scheduleYour own policy plus a database refreshed on your license terms
What it protectsThe publisher's preference about search-index inclusionYour company's exposure from what its own agent does on someone else's site

Note the row that matters most in practice: robots.txt has no reliable way to name a login page, a checkout, or an upload form, because it was never designed to. A site's own author would have to specifically decide to list Disallow: /login, and the overwhelming majority never do — not because they welcome agent logins, but because robots.txt was built for search indexing, and search engines were never going to index a login form anyway. Silence in robots.txt is not permission. It is simply a file that was never asked the question.

The mistake teams make

"We already respect robots.txt" is not an agent policy

  robots.txt as the only control

  • Silent on login, checkout, signup for the vast majority of domains
  • No distinction between a read and a write once a path is allowed
  • Zero enforcement if the agent's own code simply ignores the file
  • Nothing to check against on domains that publish no robots.txt at all
  • No log of what the agent actually did, only what the site asked for
  • Says nothing about pages the site's crawler rules never anticipated an agent reaching

  Page-type policy as the operator's control

  • Denies login, checkout, signup, upload by default, on every domain, robots.txt or not
  • Distinguishes read page types from write and transaction page types
  • Enforced outside the agent, at the gateway, so it cannot be silently skipped
  • Default-deny covers unclassified and unlisted destinations the same way
  • Every navigation decision logged with the rule that fired
  • Still respects robots.txt separately, for the crawling your agent does for indexing purposes

The two are not in tension. A well-built agent stack respects robots.txt when it is doing anything resembling crawling or indexing — that remains good internet citizenship and, for search-style agents, keeps you off site operators' block lists. The same stack also runs a page-type policy check before every request, because robots.txt was never going to name a login page for you, and no amount of respecting it changes that.

Worked example

One agent, five vendor domains, two different checks

A vendor-research agent is told to pull pricing and product pages from five SaaS vendors. Here is what happens when its gateway checks both robots.txt and the page-type policy on the same five requests.

Requestrobots.txt saysPage-type policy saysResult
/pricing on Vendor ANot mentionedpricing → allowallowed
/blog/* on Vendor BDisallow: /blog/drafts/ onlyblog → allowallowed
/login on Vendor CNot mentioned — most sites never list itlogin → denydenied by policy, robots.txt silent
/app/signup on Vendor DNo robots.txt file published at allsignup → denydenied by policy, no robots.txt to consult
/docs/api on Vendor EAllow: /docs/documentation → allowallowed

Three of the five requests would have looked identical with or without a page-type policy, because robots.txt happened to agree or say nothing relevant. The two that matter are the login and signup requests: robots.txt was silent on both, either because the site's author never listed them or because the site published no robots.txt file whatsoever. A stack that only checks robots.txt treats silence as "nothing to stop me" and proceeds. A stack that also runs page-type policy treats an unclassified or dangerous page type as deny by default, which is the entire reason default-deny exists as its own layer, independent of what any individual site chose to publish.

A related but separate trend

AI-crawler tokens in robots.txt are still about training data, not agent action

Over the past two years, many sites added new user-agent tokens to their robots.txt files aimed specifically at AI companies' training and retrieval crawlers — disallowing a named bot from harvesting content for model training or for a retrieval index. This is a real and useful development, and it is worth honoring if your organization runs that kind of crawler. It is also a different problem from the one an agent allowlist solves, and it is easy to conflate the two because both involve the letters "AI" and the same file.

A training-data or retrieval crawler is reading content to build or feed a model, and the site's concern is about how its content gets used downstream, not about what any single request does at the moment it happens. An autonomous agent acting on a user's or a company's behalf is doing something else entirely: clicking, filling forms, and navigating in real time, on a mission that has nothing to do with training data. A site's robots.txt entry disallowing a named training crawler says nothing about whether an unrelated agent, browsing under a generic user-agent string or a browser-automation stack, should be allowed to reach that same site's login form or checkout page. The two concerns do not overlap enough for one file to answer both.

This is also why page-type policy cannot be replaced by "just add more AI-specific tokens to robots.txt" as a fix. Even a robots.txt file with a dozen named AI-crawler disallow lines still has nothing to say about a login page on a site that never anticipated agent traffic at all, which describes the overwhelming majority of the 40 million+ domains an operator's agents might encounter. The token-based approach scales by the number of named crawlers a site's author remembered to list; page-type policy scales by page type, which is a fixed and small vocabulary that applies whether or not the destination site has heard of your agent.

How to combine them

Running both checks without treating either as optional

Keep robots.txt respect where it belongs

If your agent does anything resembling crawling or indexing, continue honoring robots.txt for that behavior. It remains the correct signal for that narrow job.

Add page-type policy as a separate, mandatory layer

Check every outbound request against a verified page-type map before it leaves, regardless of what robots.txt says or whether it exists on that domain.

Default-deny what neither file covers

A domain with no robots.txt and no page-type classification is not a green light. Unclassified destinations should fail closed, not open.

Log at the policy layer, not the robots.txt layer

robots.txt keeps no record of compliance. Your audit trail for what the agent actually did belongs in the policy engine that made the allow/deny call.

# minimal combined check, run in order, first match wins
policy: robots_plus_page_type_v1
step_1: if agent_role == crawler_indexing: respect robots_txt_disallow
step_2: check page_type against egress_rules_and_database
  - match: { page_type: [login, signup, password_reset, checkout, cart, upload] }
    action: deny  # regardless of robots.txt content or absence
  - match: { page_type: [pricing, product, documentation, blog, about] }
    action: allow
step_3: default: deny  # unclassified on both fronts

Notice the ordering: robots.txt only enters the decision at all when the agent is doing something crawler-like, and even then it never overrides a deny from the page-type layer. A site cannot use its robots.txt file to grant your agent permission to submit a form, because robots.txt has no vocabulary for permission of that kind — it only ever spoke about indexing.

Integration

One lookup before the click

The page-type check is a single HTTP request your gateway or framework makes before letting the agent navigate, independent of any robots.txt fetch you may also be doing:

GET https://www.aiagentallowlist.com/api/check?url=https://stripe.com/login
{ "result": "deny", "id": "login" }

High-volume or latency-sensitive deployments typically license the full database rather than call the API per request — a local lookup with no external dependency. Request and response examples live in the API docs; plan and license pricing is on the pricing page.

FAQ

robots.txt vs agent policy, answered

No. robots.txt is a site's own preference about crawler indexing and carries no concept of login pages, checkouts, or write actions. A governance review asking "what stops your agent from reaching a checkout" is not answered by "we honor robots.txt," because most sites never mention checkout in that file at all.
No robots.txt means no crawler guidance was published, not that every page is safe to act on. Page-type policy fills that gap with default-deny: an unclassified or dangerous page type is refused regardless of whether the domain published crawling rules.
Yes, for any crawling or indexing behavior your agent performs. The two controls answer different questions and neither replaces the other; a page-type policy governs what your agent may do, while robots.txt remains the correct signal for what a site wants indexed.
No. robots.txt has no syntax for authorizing actions, only for allowing or disallowing crawler access to paths for indexing purposes. Permission to act on a page, if it exists at all, is a separate authentication and authorization question that robots.txt was never built to answer.
Because login URLs are verified from the site's actual link structure across 40 million+ domains, not dependent on a site author remembering to list them. Most robots.txt files never mention login paths, since search engines were never going to index them anyway.
No, and it is not meant to. An agent allowlist governs what your own agents do when visiting other domains. Your own robots.txt file, published on your own site, remains the right tool for telling other parties' crawlers what you want indexed.
Related reading

See the same distinction from other angles

For the same read-vs-write, site-vs-operator distinction applied to what humans install and run rather than what agents browse, see AI Tools Blocklist, the sibling product covering 20,000+ AI-tool domains by risk category.

Add the layer robots.txt was never built to provide

28 page types, 40M+ domains, verified URLs. Start with the free sample, then pick a lookup plan or a database tier.

See Pricing