AI Crawler Checker: robots.txt GPTBot, ClaudeBot & llms.txt avatar

AI Crawler Checker: robots.txt GPTBot, ClaudeBot & llms.txt

Pricing

from $1.60 / 1,000 site checkeds

Go to Apify Store
AI Crawler Checker: robots.txt GPTBot, ClaudeBot & llms.txt

AI Crawler Checker: robots.txt GPTBot, ClaudeBot & llms.txt

Bulk check which AI crawlers a website allows or blocks in robots.txt: GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended and 18 more. Adds llms.txt, Content-Signal, meta robots and a verdict (training vs AI search). Misses are free.

Pricing

from $1.60 / 1,000 site checkeds

Rating

0.0

(0)

Developer

William Jin

William Jin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

AI Crawler Access Checker tells you, for any list of websites, which AI crawlers are allowed or blocked in robots.txt: OpenAI's GPTBot, OAI-SearchBot and ChatGPT-User, Anthropic's ClaudeBot, Claude-SearchBot and Claude-User, PerplexityBot, Google-Extended, Applebot-Extended, Meta, Amazon, Common Crawl (CCBot), Bytespider and more (23 crawlers, plus any user-agent you add).

It separates AI training bots from AI search and assistant bots, so you see at a glance whether a site can still be cited in ChatGPT, Claude and Perplexity answers (aiSearchAllowed) or only blocks model training (blocks_ai_training_only). It also reads llms.txt / llms-full.txt, Cloudflare Content-Signal (ai-train, ai-input, search), meta robots and X-Robots-Tag (noai, noimageai, noindex).

Rules are evaluated like a real crawler, following RFC 9309: the bot's own group overrides *, longest match wins, Allow wins ties, * and $ wildcards, redirects followed. Only public files are read (robots.txt, llms.txt and the one page you test, if robots.txt allows it). No logins, no personal data.

When to use: GEO / AI SEO audits, checking whether your own site or clients are invisible to AI search, publisher and competitor research, lead lists of sites that block (or allow) AI, monitoring robots.txt changes, or filtering sites before an AI scraping job. Input: domains or URLs, e.g. {"domains":["nytimes.com","stripe.com"]}. Output: one row per site with aiAccessVerdict, aiSearchAllowed, blocked and allowed bot lists, per-bot matched rules, llms.txt details and meta robots. From $1.60 per 1,000 sites.

What can AI Crawler Access Checker do?

  • Bulk check robots.txt for AI bots: thousands of sites per run, 10 in parallel by default.
  • Training vs AI search, separated: trainingBotsBlocked, answerBotsBlocked, aiSearchAllowed and a one-word verdict: allows_all_ai, blocks_ai_training_only, blocks_some_ai_search or blocks_all_ai.
  • Explain every decision: for each bot, the user-agent group that matched and the exact rule (e.g. GPTBot → Disallow: /).
  • llms.txt check: found or not, title, summary, sections, link count and whether it follows the llms.txt format; plus llms-full.txt.
  • Content signals and meta tags: Cloudflare Content-Signal, meta robots, X-Robots-Tag, noai / noimageai, and a hint when a firewall answers 403 to bots.
  • Any path, any bot: test /blog/ instead of the whole site, or add your own tokens in customUserAgents.
  • Chain from other Actors: pass a datasetId from a lead list, Google Maps or SERP scrape and it reads the website field.

What data does it return?

FieldExampleMeaning
aiAccessVerdictblocks_some_ai_searchOne-word summary for AI crawlers (Googlebot and Bingbot not counted)
aiSearchAllowedfalseNo AI search or assistant bot is blocked, so the site can be cited in AI answers
blockedBots["GPTBot","ClaudeBot",…]Crawlers disallowed on the tested path
allowedBots["Bingbot","Applebot"]Crawlers allowed
trainingBotsBlocked / answerBotsBlocked10 / 8Counts by purpose
googlebotAllowed / bingbotAllowedtrueClassic search access (also feeds Google AI Overviews and Copilot)
bots[{"bot":"GPTBot","purpose":"training","access":"blocked","matchedRule":"Disallow: /"}]Per-bot details
contentSignal{"search":true,"ai-train":false}Cloudflare Content-Signal for all crawlers
llmsTxt{"found":true,"title":"Stripe","linkCount":308}llms.txt details
homepage{"httpStatus":200,"noai":false}Meta robots and X-Robots-Tag of the tested page
sitemaps, crawlDelaySecsFrom robots.txt
status, errorcheckedFree rows explain why a site could not be checked

How to check which AI bots a website blocks (step by step)

  1. Open the Actor and paste your domains or URLs into Domains or website URLs.
  2. Optionally pick specific crawlers, a path to test, or turn off the llms.txt and page checks.
  3. Click Start. A few hundred sites take about a minute.
  4. Filter the dataset by aiAccessVerdict or aiSearchAllowed, or download it as CSV, Excel or JSON.

How much does it cost?

You pay only for sites checked, through pay-per-event pricing:

  • $1.60–2.00 per 1,000 sites, depending on your Apify plan: Free $2.00, Starter $2.00, Scale $1.80, Business and up $1.60.
  • Never charged: sites that don't resolve or answer, robots.txt behind a firewall (401/403/429), invalid inputs and duplicates. They're still listed as free rows with a reason.
  • A negligible start fee per run.
JobFree planStarterBusiness and up
Audit 50 client sites$0.10$0.10$0.08
10,000-site research list$20.00$20.00$16.00
Weekly check of your 200 competitors≈ $1.73 / month≈ $1.73 / month≈ $1.39 / month

Prices drop on bigger Apify plans (Starter = Bronze tier, Scale = Silver, Business and up = Gold). Set a maximum cost per run in the run options and the Actor stops cleanly at that limit.

Input example

{
"domains": ["nytimes.com", "stripe.com", "https://www.cloudflare.com"],
"bots": [],
"customUserAgents": ["YouBot"],
"testPath": "/",
"checkLlmsTxt": true,
"checkHomepage": true
}

Leave bots empty to check all 23 known AI and search crawlers.

Output example

Real result for nytimes.com (shortened):

{
"domain": "nytimes.com",
"status": "checked",
"robotsTxtUrl": "https://www.nytimes.com/robots.txt",
"aiAccessVerdict": "blocks_some_ai_search",
"blockedBots": ["GPTBot", "OAI-SearchBot", "ChatGPT-User", "ClaudeBot", "Claude-SearchBot", "Claude-User", "anthropic-ai", "PerplexityBot", "Perplexity-User", "Google-Extended", "Applebot-Extended", "Meta-ExternalAgent", "Meta-ExternalFetcher", "DuckAssistBot", "CCBot", "Bytespider", "cohere-ai", "Diffbot"],
"partiallyBlockedBots": ["Googlebot", "Amazonbot"],
"allowedBots": ["Bingbot", "Applebot", "MistralAI-User"],
"trainingBotsBlocked": 10,
"answerBotsBlocked": 8,
"aiSearchAllowed": false,
"googlebotAllowed": true,
"bingbotAllowed": true,
"bots": [
{"bot": "GPTBot", "operator": "OpenAI", "purpose": "training", "access": "blocked", "allowed": false, "matchedUserAgent": "GPTBot", "matchedRule": "Disallow: /"}
],
"llmsTxt": {"found": false, "url": "https://www.nytimes.com/llms.txt", "httpStatus": 404},
"homepage": {"fetched": true, "httpStatus": 403, "noindex": false, "noai": false, "note": "The page answered HTTP 403 to our checker; a firewall or bot protection may also block AI crawlers here even though robots.txt allows them."},
"checkedAt": "2026-11-02T17:30:09.328Z"
}

And stripe.com allows every crawler and publishes an llms.txt: "aiAccessVerdict": "allows_all_ai", "llmsTxt": {"found": true, "title": "Stripe", "linkCount": 308, "followsSpec": true}.

Use cases

  • GEO / AI SEO audits: make sure your site, or a client's, isn't accidentally invisible to ChatGPT search, Claude or Perplexity.
  • Agencies: audit a whole client list in one run and export it to a sheet.
  • Publisher and competitor research: which news, e-commerce or SaaS sites block AI training, and who still allows AI search.
  • Lead generation: find sites that block AI search (a GEO pitch) or that lack llms.txt.
  • Responsible scraping: check a list of sites before you crawl them with an AI agent.
  • Monitoring: schedule weekly runs to catch robots.txt changes.

Use with AI agents (MCP, ChatGPT, Claude, Cursor, n8n)

AI agents can find and run this Actor through the Apify MCP server. Add it to Claude Desktop, Cursor, VS Code or any MCP client:

{"mcpServers":{"apify":{"url":"https://mcp.apify.com?tools=swillz/ai-crawler-access-checker"}}}

Or run it locally: npx -y @apify/actors-mcp-server --tools swillz/ai-crawler-access-checker with APIFY_TOKEN set. In n8n or Make, use the Apify node with Actor swillz/ai-crawler-access-checker.

Example prompts:

  • "Does nytimes.com block GPTBot and ClaudeBot?"
  • "Which of these 100 sites block AI search bots, and which only block training?"
  • "Do my competitors have an llms.txt?"

Minimal input:

{"domains": ["nytimes.com"]}

Keep it fast: set checkHomepage and checkLlmsTxt to false to read only robots.txt.

Cap the cost: pass maxTotalChargeUsd ("Maximum cost per run") when you call the Actor. The run stops cleanly at the cap, keeps the results so far, lists unchecked sites as free skipped_charge_limit rows, and says why in the status message and the OUTPUT record.

Integrations and API

  • API and clients: run it from Python or JavaScript with the Apify client, or call the REST API and download the dataset as CSV or JSON.
  • No-code: use the official Apify apps for Make, n8n and Zapier. Choose Run Actor, then swillz/ai-crawler-access-checker.
  • AI agents (MCP): add it as a tool for Claude, Cursor or other MCP clients through https://mcp.apify.com?tools=swillz/ai-crawler-access-checker.
  • Google Sheets, Slack and webhooks: set these up from the Integrations tab of any run.

AI Crawler Access Checker vs alternatives

This ActorSingle-site web checkersGeneric robots.txt testers
Bulk (thousands of sites), API, MCP✅❌❌
23 AI crawlers incl. search vs training split✅Partly❌ (one bot at a time)
Matched group and rule per bot✅❌✅
llms.txt, Content-Signal, noai meta✅Partly❌
Free rows for unreachable sites✅——

FAQ

Is robots.txt the whole story? No. robots.txt is a request that well-behaved crawlers follow. Some sites also block bots at the firewall (e.g. Cloudflare's AI bot blocking). When robots.txt or the tested page answers 403/429 to our checker we flag it, but we can't see firewall rules directly.

What's the difference between training and search bots? Training bots (GPTBot, ClaudeBot, Google-Extended, CCBot…) collect data for model training. Search and user bots (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, PerplexityBot…) fetch pages to answer and cite in AI answers. Blocking training only keeps you citable.

Does blocking Google-Extended remove me from Google? No. Google-Extended only controls Gemini training and grounding. Googlebot (reported separately) controls Google Search, including AI Overviews.

What counts as one site? Each unique host. nytimes.com and www.nytimes.com are separate inputs only if you enter both.

What if there's no robots.txt? A 404 means every crawler is allowed (RFC 9309). The row says so and is charged as a normal check.

Is it legal? It reads only public files any crawler reads (robots.txt, llms.txt and one page, only if robots.txt allows it), identifies itself with a clear user-agent and collects no personal data.

More tools from the same developer, built to work together:

Popular workflows

Source code: https://github.com/williamjin02/apify-actors/tree/main/actors/ai-crawler-access-checker