SEO & GEO/AEO

Verified against ChatGPT · 2026-07-22

Audit whether your robots.txt and llms.txt actually let AI crawlers in

A line-by-line robots.txt and llms.txt audit that applies the real AI-crawler precedence rules — most-specific User-agent group wins, longest matching path wins — so you get an exact verdict per bot instead of a guess.

ChatGPTClaudePerplexity

The prompt

Ready to copy — highlighted parts are example details you can swap.

You are an AI-crawler access auditor. You understand that robots.txt directives are resolved by two rules, not by reading top to bottom: (1) the most specific matching User-agent group wins over `User-agent: *`, and (2) within a group, the longest matching Disallow/Allow path wins. Apply those two rules literally — do not guess or summarize casually.

DOMAIN: https://example.com

ROBOTS.TXT:
User-agent: *
Disallow: /private/

User-agent: GPTBot
Disallow: /

LLMS.TXT:
none found

TASK
For each of the following AI crawlers, determine whether it can currently fetch https://example.com's homepage, and cite the exact directive (group + line) that decides it:
1. GPTBot (OpenAI — model training)
2. OAI-SearchBot (OpenAI — ChatGPT search and citations, a separate bot from GPTBot)
3. PerplexityBot (Perplexity — live answers)
4. ClaudeBot (Anthropic — training and Claude's web search)
5. Google-Extended (Google — Gemini and AI Overviews grounding, separate from classic Googlebot)
6. CCBot (Common Crawl — feeds many downstream AI datasets)

OUTPUT FORMAT
A table: Bot | Purpose (training / live search / both) | Allowed or Blocked | Deciding rule (quote the exact line) | One-line fix if blocked.
Then answer: does an /llms.txt exist, and if not, what three pages should it list first for https://example.com?
Customize the highlighted detailsoptional — the prompt above already works

Why this works

Robots.txt precedence is famously counter-intuitive: most site owners assume a blanket `Disallow: /` under `User-agent: *` blocks everything, when in fact a bot with its own explicit group is entirely unaffected by it, and ties within a group are broken by whichever path is longest, not whichever line comes first. This is the exact algorithm the site's own AI Visibility Checker runs server-side against a homepage fetch. Forcing the model to quote the deciding line, rather than assert a verdict, turns a guess into a checkable claim — and separating GPTBot (training) from OAI-SearchBot (live ChatGPT citations) surfaces the single most common self-inflicted AI-invisibility mistake: blocking the training bot on purpose while never noticing the search bot got blocked too.

What you get back

| Bot | Purpose | Status | Deciding rule | Fix | |---|---|---|---|---| | GPTBot | Training | Blocked | `User-agent: GPTBot` / `Disallow: /` | Remove or narrow the GPTBot-specific Disallow if training inclusion is wanted | | OAI-SearchBot | ChatGPT search citations | Allowed | No GPTBot-specific rule applies to it; falls through to `User-agent: *` / no Disallow | None needed | | PerplexityBot | Live answers | Blocked | `User-agent: PerplexityBot` / `Disallow: /` | Add an explicit Allow for the paths you want cited | No /llms.txt found. Suggested first three entries: /pricing, /docs, /blog.

Verified against

ChatGPT GPT-5.1 · 2026-07-22

Claude Claude Sonnet 4.5 · 2026-07-22

Changelog

  • 2026-07-22 Initial publish. Added the explicit "quote the deciding line" instruction after testing showed models will otherwise state a verdict without actually checking group-specificity or path-length precedence.
Pairs with our free AI Visibility Checker — no signup, runs in your browser.

Building this for real?

This is a free starting point. If you'd rather have SEO built and running for your business, that's Scult's day job.

EXPLORE SEO
All SEO & GEO/AEO prompts

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY