/ โ† AI Agent Compatibility Fixes / Agent Blocks
In this guide
  1. What a blocked agent looks like from both ends
  2. The layers that can refuse an agent
  3. How agents identify themselves
  4. Cloudflare, AWS WAF and WordPress specifics
  5. The fix, step by step
  6. Commands for testing from the outside
  7. Keeping protection without collateral damage
  8. Stopping it from happening again
  9. Questions and answers

What a blocked agent looks like from both ends

From the customer's side, the symptom is vague. They ask an assistant to check whether a product is in stock or to book a slot, and it replies that the site "could not be accessed", "returned an error" or "appears to be down". Some agents quietly move on to another site without saying why. You almost never hear about it, because the person never reached you.

From your side, the evidence sits in logs you may not normally read:

The last one is the easiest to miss, because nothing in your monitoring shows an error. Always look at what the body of the response contains, not only the status code.

The layers that can refuse an agent

A request passes through several systems before it reaches your page, and any of them can block it. Working out which one is responsible saves hours of changing the wrong setting.

LayerTypical examplesWhere to look
DNS-level CDN and bot managementCloudflare Bot Fight Mode, Super Bot Fight Mode, managed AI bot blocking; Akamai Bot Manager; Fastly bot rulesThe CDN dashboard security events, filtered by user agent or IP address
Cloud firewallAWS WAF with Bot Control, Azure Front Door WAF, Google Cloud ArmorThe WAF sampled requests or logs, which show the rule that matched
Hosting control panelPlesk or cPanel ModSecurity rules, Imunify360, fail2ban jails, host-wide anti-bot settingsThe panel's firewall or ModSecurity log, and fail2ban-client status
Web serverNginx or Apache rules that deny by user agent, country or IP rangeServer configuration files and the error log
ApplicationWordfence, Sucuri, iThemes or Solid Security, a Shopify bot app, custom middlewareThe plugin's live traffic or blocked requests view
Content gateAge gates, cookie walls, geo redirects, "select your country" pagesFetch the page with no cookies and read what comes back

A simple rule of thumb: if your origin server's access log shows no request at all when the agent visits, the block is happening before the server, at the CDN or cloud firewall. If the request is logged with a 403 or 429, it is the server or the application.

How agents identify themselves

Not all AI traffic is the same, and treating it as one thing is the root cause of most accidental blocks. Providers generally run separate systems for separate jobs:

Names and details change, so check each provider's current documentation rather than trusting a list copied from a blog post, including this one.

Three levels of proof

  1. User agent string. Easy to read, trivially faked. On its own it should never be enough to skip security.
  2. User agent plus published IP ranges. Several providers publish JSON files listing the address ranges their fetchers use. A request that claims to be ChatGPT-User and comes from OpenAI's published range is far more believable. Reverse DNS lookups serve the same purpose for some crawlers.
  3. Signed requests. Web Bot Auth, being worked on at the IETF, has the agent sign each request using HTTP Message Signatures. The request carries Signature, Signature-Input and a Signature-Agent header pointing to where the agent's public keys are published. Your CDN checks the signature against those keys. Cloudflare can verify these for you, and some providers sign their agent traffic already. This is the strongest check available and the only one that works well for cloud browsers with ordinary user agents.

Cloudflare, AWS WAF and WordPress specifics

Cloudflare

Cloudflare is where most accidental agent blocks start, because several features overlap. Check each of these under the security settings for the zone:

Cloudflare exposes fields such as cf.client.bot and a verified bot category that can be used in custom rules. A skip rule placed above your challenge rules can let verified agent traffic past, while everything else still meets the challenge.

AWS WAF

The Bot Control managed rule group labels requests by bot category and whether the bot was verified. Rather than removing the whole rule group, override the specific rule that is matching to count mode, then add your own rule that blocks based on labels for unverified bots only. The sampled requests view shows exactly which rule and label matched each request.

WordPress security plugins

Wordfence, Solid Security and similar plugins have options such as "block fake Google crawlers", rate limits for crawlers, and country blocking. Look at the live traffic view while the audit runs. Raise the crawler rate limit to something reasonable and make sure the action for exceeding it is throttle rather than block, so a single burst does not ban an address for hours.

The fix, step by step

Step 1

Confirm the block and capture the response

Run the AI Agent Compatibility audit on the page an agent would need, such as a product or booking page, and note whether it reports a block. Then repeat the fetch yourself from a server or cloud machine rather than your office connection, sending a user agent such as ChatGPT-User with curl -sS -A. Save the status code, the response headers and the first part of the body, because the headers usually name the system that answered, such as a CDN ray ID or a WAF request ID.

Step 2

Find which layer is refusing the request

Search the origin access log for the time of your test. No log line means the CDN or cloud firewall stopped it before your server. A logged 403 or 429 points to the server configuration, a ModSecurity rule or a plugin. Open the security event view of each layer in turn and filter by your test IP address until you find the rule that matched. Write down the rule name or ID so the change you make is targeted, not a guess.

Step 3

Separate user-triggered agents from training crawlers

Decide your policy for each kind of AI traffic instead of treating it as one group. Most businesses that sell or take bookings want user-triggered fetchers such as ChatGPT-User, Claude-User and Perplexity-User to succeed, whatever they decide about training crawlers like GPTBot and ClaudeBot. Check each provider's current documentation for its crawler names and published IP range files, and record the decision so the next person who changes a security setting knows it was deliberate.

Step 4

Write a narrow allow rule with verification

Create a skip or allow rule that matches only verified agent traffic: the CDN's verified bot flag, a valid Web Bot Auth signature, or a user agent combined with the provider's published IP ranges. Place it above the rule that was blocking, and make it skip only the bot challenge, not every protection. Never allow on user agent alone, because anyone can send ChatGPT-User from a laptop. Keep the rule in version control or document it with a date.

Step 5

Replace blanket challenges with rate limits

Look for rules that challenge whole countries, whole cloud providers or every request without cookies, and replace them with limits on behaviour. A sensible limit counts requests per IP address per minute on expensive paths such as search, login and basket, and slows down or challenges only the addresses that exceed it. Return 429 with a Retry-After header rather than 403, so well-behaved agents know to wait and try again rather than report the site as broken.

Step 6

Retest and watch the security log

Repeat your curl test and run the audit again, then ask an agent you have access to for a real task on the site, such as checking a price. Confirm the request reaches the origin with a 200 and your real page in the body. Keep the security event view open for a week and check the new rule's match count, so you can see both genuine agent traffic passing and any sign that someone is abusing the allowance.

Commands for testing from the outside

Test from a machine outside your own network. Many firewalls trust your office IP address or your logged-in session, so a test from your desk can pass while the rest of the world is blocked. A small cloud server, or a colleague's home connection, gives a truer picture.

# Status code, response size and the headers that name the responder
curl -sS -o /tmp/agent-body.html -D - \
  -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot" \
  https://www.example.co.uk/products/oak-side-table

# Does the body contain your real content or a challenge?
grep -i -c "oak side table" /tmp/agent-body.html
grep -i -E "captcha|challenge|checking your browser|access denied" /tmp/agent-body.html

# The same request with a plain browser user agent, for comparison
curl -sS -o /dev/null -w "%{http_code}\n" \
  -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0 Safari/537.36" \
  https://www.example.co.uk/products/oak-side-table

If the browser user agent gets a 200 and the agent user agent gets a 403, a rule is matching on the name. If both fail from a cloud server but work from home, the rule is matching on IP reputation or hosting provider. The user agent strings above are examples of the format; copy the exact current strings from each provider's documentation when you test.

On the origin, this finds any agent requests and the status your server gave them:

grep -E "ChatGPT-User|Claude-User|Perplexity-User" /var/log/nginx/access.log \
  | awk '{print $9}' | sort | uniq -c | sort -rn
โš ๏ธ Successful curl tests with a fake user agent prove only that your rules match on the name. They do not prove genuine agent traffic will pass a check based on IP range or signature. For that, use the audit and a real agent task.

Keeping protection without collateral damage

Opening a door for agents raises a fair worry: will scrapers pretend to be agents to get through? They will try, which is why each step above insists on verification. Some further safeguards:

robots.txt is a separate matter. It tells crawlers what they may fetch, and some providers say their user-triggered fetchers do not follow it in the same way because a person asked for the page. It is a statement of your wishes, not an enforcement tool, so it cannot explain a 403 and it cannot stop a determined scraper.

Stopping it from happening again

Questions and answers

1. How do I know if my site is blocking AI agents?

Run the AI Agent Compatibility audit, then test yourself from a cloud server using curl with an agent user agent such as ChatGPT-User. Look at the status code and at the body of the response, since a challenge page can come back with a 200. Finally, search your origin access log for the test. If no request appears there, something in front of the server, usually a CDN or cloud firewall, stopped it before it arrived.

2. If I block GPTBot in robots.txt, does that stop ChatGPT agents too?

No. GPTBot is the crawler OpenAI uses to gather training data, and a robots.txt rule for it has no bearing on ChatGPT-User, which fetches a page because a person asked, or on ChatGPT agent, which drives a browser. Most providers keep these separate on purpose so site owners can refuse training use while still being reachable by customers. Check each provider's documentation for the names it uses and what each one respects.

3. Is it safe to allow traffic by user agent?

Not on its own. Anyone can send a request that claims to be ChatGPT-User or Claude-User, so a rule that skips security for that name alone is an open door for scrapers. Combine the name with the provider's published IP ranges, use your CDN's verified bot flag, or check signed requests through Web Bot Auth. Keep rate limits and attack signatures applied even to verified agents, and allow only the challenge to be skipped.

4. What is Web Bot Auth?

Web Bot Auth is a proposal being developed at the IETF that lets an automated client prove who it is by signing its HTTP requests with a private key. The request carries signature headers and a Signature-Agent header that says where to find the public key. Your CDN or server checks the signature, which is very hard to fake. Cloudflare supports verifying these signatures, and some AI agent providers already sign their traffic, although adoption is still growing.

5. Why does the agent work from my office but not for customers?

Firewalls often trust your own IP address, your logged-in session cookie or traffic from your country, so tests from your desk skip rules everyone else meets. Cloud agents run from data centres, often in other countries, and arrive with no cookies. Rules based on IP reputation, hosting provider or geography hit them hard. Test from a small cloud server with no cookies to see what an agent actually receives from your site.

6. Should an agent be able to get past my CAPTCHA?

Reputable agents are built not to solve CAPTCHAs; they stop and ask the person to do it. That means a CAPTCHA shown to every visitor on the first page turns every agent task into a hand-over, and many will simply give up. Keep CAPTCHAs for moments of real risk, such as repeated failed logins or unusually fast form submissions, and use invisible or risk-based checks elsewhere so ordinary visits never see a puzzle.

7. Will allowing AI agents increase my server load?

User-triggered agents visit because one person asked for something, so their volume usually tracks human interest and is modest. Each visit loads a page much as a browser would. The traffic that causes heavy load is bulk crawling and scraping, which you can still limit or block separately. Keep per-IP rate limits on expensive paths such as search and basket, and watch your logs for a week after changing rules to see the real effect.

Check whether agents can get through the door

The AI Agent Compatibility audit tests your page for bot blocks, content hidden behind JavaScript, unlabelled forms and controls, navigation agents cannot follow and missing structured data, and links each finding to the guide that fixes it.

Open AI Agent Compatibility Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All AI Agent Compatibility Fixes  ·  AI Agent Compatibility Guide  ·  Fixing Slow Rendering for Agents  ·  Fixing Checkouts That Stop Agents  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.