AI Crawler Access Test - Can ChatGPT & AI Bots Read Your Site? avatar

AI Crawler Access Test - Can ChatGPT & AI Bots Read Your Site?

Pricing

from $8.50 / 1,000 site testeds

Go to Apify Store
AI Crawler Access Test - Can ChatGPT & AI Bots Read Your Site?

AI Crawler Access Test - Can ChatGPT & AI Bots Read Your Site?

Tests whether AI search and answer bots (OpenAI, Anthropic, Perplexity, Google, Bing...) can actually read your site: robots.txt per bot (search vs training), a live fetch as each bot vs a browser to catch CDN/WAF blocks, JS-only content, llms.txt and entity schema, with fixes.

Pricing

from $8.50 / 1,000 site testeds

Rating

0.0

(0)

Developer

Centor Prat

Centor Prat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

AI Crawler Access Test — Can ChatGPT, Claude & Perplexity Read Your Site?

If AI search and answer bots can't fetch your pages, you can't be cited in ChatGPT search, Perplexity or Claude answers, however good your content is. Most "AI readiness" checkers only read robots.txt. This one actually fetches your page as each AI bot and compares the result with a normal browser, so it also catches the block robots.txt never shows: a CDN or firewall rule rejecting AI crawlers.

Passive: a handful of normal GET requests per site. Keyless. Runs as a batch Actor or an instant HTTP endpoint.

What it tests

TestDetail
robots.txt per bot18 crawlers from OpenAI, Anthropic, Perplexity, Google, Microsoft, Apple, Meta, Amazon, DuckDuckGo, Common Crawl and ByteDance. Exact RFC 9309 group matching and longest-rule wins, checked for the exact URL path you give.
Search vs trainingEach bot is classed as search, user-fetch (an assistant fetching a page for a user) or training. Blocking training bots (GPTBot, ClaudeBot, Google-Extended, CCBot…) is a legitimate choice. Blocking search / user-fetch bots (OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-User…) removes you from AI answers. The report keeps these apart.
Live fetch as each botThe page is fetched with each bot's published User-Agent and compared with a browser fetch. A spoofed Googlebot is used as a control. If it gets through but GPTBot doesn't, that's a confident, deliberate AI-bot block (e.g. a CDN "block AI bots" rule). If the site rejects the fake Googlebot too, it's impostor protection and the result is marked inconclusive rather than guessed.
Content in the HTMLAI crawlers don't run JavaScript. A page that is an empty JS shell is invisible to them, even if it looks fine in a browser.
llms.txtPresence and validity (H1, summary, linked sections), plus llms-full.txt.
Entity signalsOrganization / LocalBusiness JSON-LD, sameAs profile links, content schema (FAQ, Product, Article…), meta description and heading structure. These help models identify you correctly.
Index hygienenoindex, noai / noimageai directives (meta and X-Robots-Tag), sitemap.

Output

{
"url": "https://www.nytimes.com",
"verdict": "ai-invisible",
"aiReadinessScore": 28,
"majorSearchBotsBlocked": ["ChatGPT-User", "Claude-SearchBot", "Claude-User", "OAI-SearchBot", "Perplexity-User", "PerplexityBot"],
"trainingBotsBlocked": ["GPTBot", "ClaudeBot", "Google-Extended", "Applebot-Extended", "CCBot"],
"findings": [{"severity": "high", "code": "search-bots-disallowed", "detail": "robots.txt blocks AI SEARCH / answer bots: ..."}],
"summary": "www.nytimes.com -> ai-invisible (28/100): major AI search/answer bots 2/8 not blocked, training bots blocked: GPTBot, ClaudeBot, Google-Extended, Applebot-Extended; ..."
}

Real results from the same run: react.dev → ai-ready (88), notion.com → ai-ready (98), anthropic.com → ai-ready (80, no llms.txt).

Each report also has a bots matrix (owner, purpose, robots rule, live status and block reason), the rendering, llmsTxt, structuredData and directives details, and a prioritised fixes list.

Verdicts: ai-ready · ai-readable-with-gaps · partially-blocked · ai-invisible · allowed-by-robots-live-test-inconclusive (the site rejects even a browser-like automated fetch).

One API call, JSON back

Run it synchronously: one POST starts the run and returns the results in the same response. No run to poll, which is what an AI agent wants mid-task:

curl -X POST "https://api.apify.com/v2/acts/centorprat~ai-crawler-access-test/run-sync-get-dataset-items" -H "Authorization: Bearer <APIFY_TOKEN>" \
-H "Content-Type: application/json" -d '{"urls": ["example.com", "react.dev"]}'

The body takes the same fields as the normal input. Same pay-per-event price; failed checks aren't charged.

Ready-made tasks

For AI agents / MCP

https://mcp.apify.com/?tools=actors,docs,centorprat/ai-crawler-access-test

Use cases

  • GEO / AEO audits: the "why aren't we cited?" diagnostic (pair with AI Share of Voice).
  • After a CDN / WAF change: confirm you didn't silently block ChatGPT or Perplexity.
  • Agencies: batch-test client sites and hand over the fix list.
  • Publishers: verify your training opt-out doesn't also block AI search traffic.

FAQ

Is the live test the same as the real bot? It uses each bot's published User-Agent from Apify's servers. Rules that check the bots' real IP ranges can't be reproduced, which is why the Googlebot control exists and inconclusive cases are labelled as such.

Should I block training bots? That's your call. The report treats it as information, not a problem. Blocking search / user-fetch bots is what costs AI visibility.

Does it crawl my site? No. It makes one page fetch per tested bot, plus robots.txt, llms.txt and sitemap.xml.

Cost? One site-tested event per URL. No API keys, no paid scraper.