Can ChatGPT, Claude and Google actually read your site?
We read your robots.txt, look for llms.txt and indexing signals, and request your page as each AI crawler, search engine and SEO bot.
Try a live report:stripe.comgithub.combbc.comtheverge.com
- Googlebot
- Bingbot
- DuckDuckBot
- Applebot
- PetalBot
- YandexBot
- Baiduspider
- OAI-SearchBot
- PerplexityBot
- Claude-SearchBot
- DuckAssistBot
- Amazonbot
- YouBot
- GPTBot
- ClaudeBot
- Google-Extended
- CCBot
- Applebot-Extended
- GoogleOther
- Meta-ExternalAgent
- Bytespider
- ChatGPT-User
- Claude-User
- Perplexity-User
- MistralAI-User
- Meta-ExternalFetcher
- AhrefsBot
- SemrushBot
- MJ12bot
- DotBot
- 01 · robots.txtWhich bots your rules allowrobots.txt rules
- 02 · live requestThe HTTP status each bot getsLive request per bot
- 03 · signalsllms.txt, noindex, noai and TDMllms.txt and signals
Checking…
Let canaicrawl through in Cloudflare (two minutes, keeps your protection on):
- Open Security → WAF → Custom rules and create a rule.
- Switch to Edit expression and paste:
- Set the action to Skip, tick All remaining custom rules and, under Skip features, the bot-protection and challenge features, and place the rule first.
- Deploy, wait a few seconds, then .
Let canaicrawl through in your firewall or CDN, then re-check:
- Allow requests from our address, below, or skip bot protection for user agents containing
canaicrawl. - Keep
/robots.txtopen to everyone; a crawler that can’t read it treats the site as closed.
- Our address
- Our user agent
- Rather not?
- Check what the real crawlers get in your own logs or Cloudflare’s Security Events; the Cloudflare guide shows where.
View robots.txt
How the check works
robots.txt rules
We fetch /robots.txt and apply it the way crawlers do (RFC 9309): the group naming the bot wins, then User-agent: *, and the longest matching path rule decides.
A live request per bot
For every bot the rules allow, we request your page with that bot’s user agent and record the status, time and size. This is how you catch firewall and CDN blocks.
llms.txt and signals
We look for /llms.txt, a short Markdown file that points AI tools to your most useful pages, and read the page’s indexing signals: noindex, noai, TDM-Reservation, Content-Signal and your sitemap.
Adding an llms.txt
Put a plain Markdown file at https://your-site.com/llms.txt. Start with a heading for your site and a one-line summary, then list the pages you’d want an AI assistant to read first. Serve it as text/plain or text/markdown, not as an HTML page. The llms.txt generator writes one for you and checks an existing file. To decide which bots to allow or block, use the robots.txt generator.
# Acme Store
> Handmade kitchenware, shipped across the EU.
## Docs
- [Shipping & returns](https://acme-store.com/shipping): costs, times, how to return
- [Size guide](https://acme-store.com/sizes): measurements for every product
## Optional
- [Company history](https://acme-store.com/about)
Questions
Why check robots.txt and a live request?
robots.txt is what you ask bots to do. The live request shows what your server actually does. Firewalls, CDNs and bot-protection services often refuse crawlers that robots.txt allows, and nothing in robots.txt shows it.
How is the score worked out?
Pick a goal first: open to everything, search and AI answers without training, or search engines only. Only the bots in that goal count. Each group of bots has a weight (search engines 40, AI search 25, user-triggered fetchers 10, AI training 10, SEO tools 5), the groups in your goal share 90 points in proportion to their weights, and each group earns its share by the fraction of its bots that can read the page. Having an llms.txt adds the last 10. Bots outside your goal are still checked and shown, but blocking or allowing them doesn’t move the score.
Why is there no score for some sites?
When a site refuses even our plain browser request, we can only read robots.txt. A live 403 then tells you nothing about the bot, so those bots are marked unverified and no score is shown, rather than a number that looks earned. Your firewall or CDN logs show what each bot really gets.
Why are some bots marked “token”?
Google-Extended and Applebot-Extended aren’t crawlers. They are names in robots.txt that tell Google and Apple whether they may use pages their normal crawlers fetched for AI training. There is nothing to request, so only the rules are checked.
Can a 403 here be wrong?
Yes. We send each request from our server with the bot’s user agent, not from the bot operator’s IP addresses. Some firewalls let a verified bot in but refuse the same user agent from anywhere else. If a bot shows as refused, check your firewall or CDN logs for that bot.
What are the “signals”?
Things beyond robots.txt that change what bots do with a page: a noindex or nofollow directive in the X-Robots-Tag header or a robots meta tag, the noai and noimageai directives, a TDM-Reservation header that reserves text-and-data-mining rights, Content-Signal lines in robots.txt, and whether a sitemap is declared. A page can be crawlable and still be kept out of search results by a noindex.
Are results cached?
Yes, for ten minutes, so a shared link opens instantly. After you change robots.txt or a firewall rule, press “Re-check” to run a fresh scan.
Guides
Monitoring early access
A robots.txt deploy, a new CDN rule or a bot-protection update can lock crawlers out without anyone noticing. Monitoring will re-run this check every week and email you when a result changes.
It isn’t open yet. Leave your email and the site, and we’ll write to you when it is. Nothing is charged and nothing is set up until then.