AI agents · websites · security · 18.10.2026

Why the AI agent won't open a site: 403, robots.txt, and safe fallback

A browser agent might see a page yesterday and get a CAPTCHA or 403 today. This isn't always an "AI failure": the site might have blocked agents, the WAF might have mistaken them for bots, the session might have lost permission, or the action might require a human. Below is a diagnosis without bypassing protection and a ready-made plan for developers.

The developer sees a blocked browser route and switches to a verified server path
Original AI illustration Vibe Coding: a blocked route doesn't need to be broken — a controlled fallback is needed

An AI agent and a regular browser are not the same thing

On October 17, The Verge gathered evidence regarding the blocking of browser agents on major services: from online stores to airlines and financial websites. Some companies explicitly do not allow agents to perform actions, some only agree through partnerships or licensed access, and elsewhere, automated traffic is stopped by standard anti-bot protection. This is a journalistic collection, not proof that every mentioned service blocks all agents in all countries.

OpenAI's official documentation also warns: a site may restrict a cloud browser, even if the same page opens on your device. The site owner decides whom to let in. A user's permission to open a domain does not override the site's rules, and permission to access a site is not automatic permission to confirm a payment or other irreversible action.

Main idea: "I as a user have access" does not always mean "my agent has the right to automate this access." You need to consider the service's rules, technical agent identification, the risk of the action, and specific permissions.

What 401, 403, 429, or CAPTCHA actually mean

SignalLikely explanationSafe action
401 UnauthorizedNo active session or authentication is required.Hand over control to a human for login; do not ask for a password in the chat.
403 ForbiddenThe server understood the request, but policy or permissions rejected it.Do not repeat endlessly. Check the rules, official API, or allowlist.
429 Too Many RequestsRate or quota exceeded.Slow down, apply backoff, cache, and respect the documented limit.
CAPTCHA / challengeWAF or anti-bot system does not trust the client.Pause and manual takeover. Do not automate CAPTCHA solving.
robots.txt: DisallowThe owner asks conscientious robots not to bypass a certain path.Respect the rule; it is not authentication or private data protection.
Page has changedSelector, form, or business process no longer matches expectations.Stop the action, show the user the new state, and re-verify the scenario.

robots.txt — a voluntary protocol. It helps well-behaved crawlers but does not protect secret URLs: a malicious client can ignore it. Real restrictions are enforced by authentication, access rights, WAF, rate limits, and server-side request verification.

Don't do this: do not mask the agent as a human, do not spoof the User-Agent, do not rotate IPs, do not bypass CAPTCHA, and do not continue after an explicit prohibition. This creates legal, security, and product risks and does not turn an unstable scenario into a reliable feature.

AI feature architecture that doesn't break from a single 403

  1. First, look for an official connector or API. It has more stable contracts, explicit permissions, and machine error codes. Leave the browser for supported UI scenarios.
  2. Separate reading from consequences. Price searching can be automated more cautiously than payment, booking cancellation, or changing bank details.
  3. Add fail-closed. If the agent does not see the final amount, domain, or confirmation, it stops rather than "guessing."
  4. Preserve the manual path. The user should receive a direct link, a brief explanation of the blocker, and the ability to continue manually.
  5. Design for re-runs. Steps must be idempotent: a retry after failure should not create a second order, email, or charge.
  6. Log state, not secrets. Domain, error category, stage, and time are sufficient. Passwords, tokens, payment data, and private page content must not enter analytics.

A useful agent response format: "The site rejected automated access during the availability check. I did not bypass protection. Here is a direct link; check the price and complete the final confirmation yourself." This is worse than the magical one-click seen only in demos, but better for real trust.

As a site owner, do not confuse a useful agent with a scraper

In its documentation, Cloudflare distinguishes between search crawlers, training bots, and agents acting in real-time on behalf of a human. A single global "block all AI" button is simple, but it can cut off indexing, citations, or real customers along with unwanted data scraping.

Public content

Define search, AI citations, model training, and real-time agents separately. Establish rules in an accessible policy.

Accounts and personal data

Requires authentication, least privilege, short sessions, auditing, and additional confirmation for risky actions.

Commercial actions

Show the full price before the final step, require explicit confirmation, and protect against duplicate retries.

Trusted agent

Verify cryptographic signatures or official provider mechanisms, not just User-Agent or IP.

OpenAI describes Web Bot Auth: cloud browser requests contain signed headers that a site owner can verify using a public key. This helps confirm the request's origin, but it does not mean automatic permission for any action. User authorization and specific endpoint rules are still required.

Local checker: will your site blocking function survive

Mark only what has already been implemented. Responses are counted in this browser and are not sent to the server; only the result range will be sent to analytics, without the site name.

Readiness check

The result will appear here.

Example: agent searches for and books a service

A reliable scenario has three different levels. First—the agent collects available options and sources. Second—the user chooses an offer and verifies the terms. Third—final booking or payment occurs only after explicit confirmation.

Implementation contractGoal: find three available options for [date/city]. Allowed: - read public pages and official APIs; - create a comparison with direct links; - prepare the form for the final step. Prohibited without new confirmation: - paying, booking, or agreeing to terms; - bypassing CAPTCHA, 403, rate limits, or site policy; - transferring passwords, tokens, or payment data to chat or logs. If the site blocks the agent: 1. stop automation; 2. name the stage and type of blocker; 3. provide a direct link; 4. suggest an official API, another allowed service, or manual continuation.

For functions with custom tools, continue with the material on secure function calling. If the agent works with code—use change verification checklist. Secret protection basics are collected in the guide on API keys in Vibe Coding.

Primary sources and journalistic signal

Is your agent hitting a 403 or CAPTCHA?

Bring the bare minimum to Telegram: status code, scenario stage, and expected result. Do not post cookies, tokens, private URLs, or personal data.

Analyze the blocker in Telegram

One practical AI scenario per week: view the email example and subscribe with address confirmation.

Was this helpful? Pass it on

Send it to someone with a similar task.

Share in Telegram ↗

Read via RSS · Weekly newsletter in Ukrainian

Discussion

Share your opinion or ask about the material. Your nickname and comment text will be visible to everyone.

Loading comments...

Telegram chat ↗