Which hosts and firewalls block AI crawlers by default
Whether AI crawlers are blocked by default depends on what sits in front of your server, not on your robots.txt. Cloudflare has blocked them on new zones since July 2025; Vercel and Sucuri ship a toggle; Netlify and plain hosts block nothing; WordPress security plugins block by rate limit. Fetch your page as each crawler to find out.
By Jose Pollman, who built this checker and writes the guides. Published How the tool ranks fixes
Which of these does your robots.txt block?
Paste your robots.txt. It is read here in your browser and sent nowhere. For the live file plus the firewall and JavaScript checks, run the full check.
Showing the example above — a common “block AI” snippet that also blocks ChatGPT’s fetcher.
Cite pages in AI answers
- OAI-SearchBotAllowed
- ChatGPT-UserBlocked
- Claude-SearchBotAllowed
- Claude-UserAllowed
- PerplexityBotAllowed
- Perplexity-UserAllowed
- DuckAssistBotAllowed
- YouBotAllowed
- Meta-ExternalFetcherAllowed
Search indexes AI answers are built on
- GooglebotAllowed
- BingbotAllowed
- ApplebotAllowed
- AmazonbotAllowed
Model training only
- GPTBotBlocked (fine)
- ClaudeBotBlocked (fine)
- anthropic-aiAllowed
- cohere-aiAllowed
- Google-ExtendedAllowed
- Applebot-ExtendedAllowed
- CCBotAllowed
- meta-externalagentAllowed
- BytespiderAllowed
The short answer
AI crawlers are blocked by default on Cloudflare zones created since July 2025, on many Squarespace sites, and behind any WAF whose “bad bot” list predates the distinction between training crawlers and answer-time fetchers. They are not blocked by default on Netlify, on plain VPS hosting, on most shared hosting, or by WordPress itself. WordPress security plugins sit in between: they rarely block by name out of the box, but their rate limits and fake-crawler checks catch AI fetchers routinely.
None of that is in your robots.txt, which is why the file looks fine. The only way to know your own site’s answer is to fetch a page as each crawler and compare the status codes, which is what the AI visibility check does and what the curl lines at the end of this page reproduce.
Host by host
| Provider | Default | Where the setting is |
|---|---|---|
| Cloudflare | Blocked on zones created since 1 July 2025; earlier zones only if the toggle was clicked. Bot Fight Mode challenges unverified crawlers on the free plan. | AI Crawl Control → Crawlers; Security → Bots; WAF custom rules |
| Vercel | Not blocked unless Bot Protection or the AI Bots managed rule was enabled; when enabled, the list covers trainers and fetchers together. | Project → Firewall → Bot Protection / Managed rules |
| Netlify | Not blocked. No AI-specific setting; only traffic rules you add (paid plans) or an edge function of your own. | Site → Security → Traffic rules |
| WP Engine | Edge (Cloudflare-backed) filters unverified and high-volume bots; genuine AI fetchers are usually admitted, but there is no customer-facing toggle. | Support ticket; check the bot log |
| Kinsta | Cloudflare-backed edge with Kinsta's own bot rules; AI crawlers generally admitted, verified ones always. | MyKinsta → Security |
| Sucuri WAF | Aggressive by default: user-agent blocklists and challenge pages catch several AI crawlers. | Firewall → Settings → Access Control / Security |
| Wordfence | Not blocked by name. Rate limiting and 'block fake crawlers' catch fetchers that request several pages quickly. | Wordfence → Firewall → Rate Limiting; Blocking |
| Imperva / Incapsula | Blocked or challenged unless classified as a known good bot. | Bot Management → Known bots |
| AWS CloudFront + WAF | Only if Bot Control is enabled; its CategoryAI label then blocks the lot. | WAF → Bot Control rule group |
| Akamai | Bot Manager's AI category defaults vary by contract; often 'monitor', sometimes 'deny'. | Bot Manager → Known bots → AI |
| Shopify | robots.txt allows; Shopify's edge can challenge unverified automated traffic. No merchant toggle. | robots.txt.liquid for rules; nothing for the edge |
| Squarespace | A 'Block known artificial intelligence crawlers' switch; on by default for many sites. | Settings → Crawlers |
| Wix / Webflow | Not blocked by default; both offer robots.txt editing and Webflow a block toggle. | SEO settings → robots.txt |
| Plain nginx / Apache / VPS | Not blocked unless you copied a bad-bot list into the config. | nginx.conf `if ($http_user_agent ...)`, .htaccess BrowserMatch |
Defaults change; the table is what these providers did as of September 2026. Your own site’s answer comes from the fetch test, not from this table.
Cloudflare
The big one, because a large share of the web is behind it. Three defaults matter. Zones added since 1 July 2025 have Block AI bots on from the start; the setting now lives in AI Crawl Control with a per-crawler switch. Bot Fight Mode, common on free plans, challenges anything its heuristics score as automated and cannot exempt individual crawlers. And the managed robots.txt, when on, adds training-crawler disallows to the file you serve. Every one of these is covered setting by setting in the Cloudflare guide.
Vercel
Nothing is blocked on a new project. The Firewall page offers Bot Protection (challenge traffic that does not look like a browser) and a managed rule for AI bots that can be set to log, challenge or deny. Turn either on and the answer-time fetchers are caught with the trainers, because the managed list does not split them. The fix is a custom rule above it that allows the fetcher user-agents, or setting the managed rule to log only and handling training crawlers in robots.txt.
Netlify
Nothing is blocked. There is no AI-crawler setting; the paid Traffic Rules feature does rate limiting and geo-blocking, and an Edge Function can inspect the user-agent if you write one. A Netlify site that blocks AI crawlers is doing so because someone built it. The one Netlify-specific gotcha is a site whose content is client-rendered — that is a different problem and the check reports it separately.
WordPress hosts and plugins
WordPress itself blocks nothing; its default virtual robots.txt disallows /wp-admin/ and allows everything else. The blocking comes from what is installed around it.
- WP Engine and Kinsta both sit behind Cloudflare with their own rule sets. Verified crawlers get through; unverified or very fast ones may not. Neither exposes an AI-crawler toggle, so a 403 in the check means a support conversation, with the crawler name and timestamp.
- Sucuri’s WAF is the most aggressive of the common ones. Its default posture challenges or blocks traffic it classifies as bots, and its blocklists have historically included AI user-agents. The settings are under Firewall → Settings → Access Control, where you can whitelist user-agents, and Security, where the bot-blocking level is set.
- Wordfence does not block AI crawlers by name unless you add a pattern. What catches them is Firewall → Rate Limiting: a crawler fetching more pages per minute than the threshold is throttled or blocked, and “block fake Google crawlers” refuses anything claiming a name from an unexpected address. Raise the crawler threshold, or add the fetcher user-agents to the allow list, rather than turning rate limiting off.
- Other security plugins (iThemes/Solid Security, All In One WP Security, MalCare, Cloudways’ bot protection) ship user-agent blocklists of varying vintage. Search each plugin’s settings for “user agent” and look for GPT, Claude, Perplexity or a generic “bot” match.
Hosted platforms
Shopify serves a permissive robots.txt and lets you edit it through robots.txt.liquid; its edge does its own bot mitigation, which can challenge unverified automated requests, and there is no merchant control over that. Squarespace has an explicit switch, Settings → Crawlers → Block known artificial intelligence crawlers, which is on for many sites; it writes Disallow rules for a list that includes both trainers and fetchers, so if you want to be citable, switch it off and manage the trainers by hand. Wix and Webflow block nothing by default and expose a robots.txt editor; Webflow also offers a block toggle in its SEO settings.
The two-minute test
From any terminal, fetch one page four ways and compare the first line of each response:
U="https://example.com/"
curl -sI -A "Mozilla/5.0 (Linux; Android 13) Chrome/126" "$U" | head -1
curl -sI -A "Mozilla/5.0 (compatible; GPTBot/1.2; +https://openai.com/gptbot)" "$U" | head -1
curl -sI -A "Mozilla/5.0 (compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot)" "$U" | head -1
curl -sI -A "Mozilla/5.0 (compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "$U" | head -1
curl -sI -A "Mozilla/5.0 (compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)" "$U" | head -1Same status on every line: nothing in front of you distinguishes crawlers, and your robots.txt is the whole story. Different statuses: a user-agent rule is firing, and the headers of the refused response (server, cf-ray, x-sucuri-id, and so on) tell you whose. The check runs this with six crawlers, names the vendor from the headers, and tells you which setting to open.
Check it worked
After changing a setting, the fetch rows for the crawlers you allowed should read 200 within a minute; CDN rules apply immediately. Then look at the vendor’s own bot analytics a day later to see the genuine crawlers, from their verified ranges, being admitted. For pages that exist but return 404 to crawlers — a different symptom with different causes — see the 404 guide.
Common questions
- My robots.txt allows everything. Can AI crawlers still be blocked?
- Yes, and on a proxied site it is the most common case. robots.txt is consulted by the crawler after it receives a response; a CDN, firewall or security plugin that refuses the request first makes the file irrelevant. The check fetches the page as six crawlers precisely to catch this — a 403 or challenge for a crawler that robots.txt allows is the firewall.
- How do I find out what is in front of my site?
- Look at the response headers: cf-ray means Cloudflare, x-vercel-id Vercel, x-nf-request-id Netlify, x-sucuri-id Sucuri, x-wpe-* WP Engine, x-amz-cf-id CloudFront, x-shopid Shopify. The check reads them for you and names the vendor under 'in front of the server'. A plain nginx or Apache header with none of these means nothing is proxying you, and the block, if any, is on the server or in a plugin.
- Is 'blocked by default' the same everywhere on a platform?
- No. Cloudflare's default depends on when the zone was created; Squarespace's setting depends on the site's age and plan; a WordPress site's behaviour depends entirely on which plugins are installed. The only reliable answer for your site is a fetch test, not a table.
- Should I just allow everything?
- Allow the crawlers that cite pages — the answer-time fetchers and the search indexes — because blocking them costs visibility and protects nothing. The training crawlers are a genuine choice. Keep your bot defences for scrapers and credential stuffing; the mistake is only that the AI fetchers ended up in the same bucket.
- The check says blocked but my host says they allow AI crawlers.
- Both can be true. The check sends the crawler's user-agent string from our server; a host that verifies crawler IP ranges may refuse us while admitting the genuine crawler. Ask the host for the bot log, or check the request counts in their dashboard, before concluding either way.
Check a page against this
Enter any public URL. You’ll get the one thing stopping AI crawlers from reading the page (if anything is), a verdict per AI product, a crawler-by-crawler table, a corrected robots.txt when that is the problem, and what the HTML actually tells a machine.
Related guides
- Every Cloudflare setting that blocks AI crawlers, and how to allow-list — Five settings, several on by default, all invisible to robots.txt.
- Your firewall is blocking AI crawlers — robots.txt allows everyone, yet AI crawlers get a 403 before they read a byte.
- Why AI crawlers get a 404 on pages that exist — The page exists; the crawler is told it doesn't.