AEO & GEO skill 10 of 13

AI Crawler Access and Technical Readiness SKILL.md

The AI Crawler Access skill makes Claude, Codex or another AI agent set and enforce a deliberate policy for every type of AI crawler: search bots that power AI answers, fetchers that act for real users, and training crawlers. It aligns robots.txt, CDN and WAF rules and logs, verifies crawlers by IP, checks that they receive server-rendered content and takes an evidence-based view of llms.txt.

ai-crawler-access/SKILL.md, version 1.0.0, 1,272 words.

Most brands missing from AI answers aren't blocked on purpose. A CDN bot setting switched on during an attack, a WAF rule that challenges unfamiliar user agents, a robots.txt line copied from a template, or pages that only render in the browser can make a site invisible to AI search crawlers while Google still ranks it.

This skill sets a deliberate policy for each type of AI crawler, verifies that the policy works in practice and checks that crawlers receive the content you want them to read.

Three kinds of AI crawler

TypeExamplesPurposeTypical policy
Search and indexOAI-SearchBot, Claude-SearchBot, PerplexityBot, Bingbot, GooglebotBuild indexes used to ground and cite answersAllow, unless you don't want AI search visibility
User-triggered fetchersChatGPT-User, Claude-User, Perplexity-UserFetch a page because a person askedAllow; OpenAI and Perplexity document that robots.txt may not apply to these [Confirmed]
TrainingGPTBot, ClaudeBot, CCBot, Google-Extended (control token), Applebot-Extended (control token)Collect content that may train modelsBusiness decision: allowing helps future model knowledge; blocking protects content use

Google-Extended controls training use and grounding in Gemini Apps and Vertex AI, not Google Search or AI Overviews. [Confirmed, Google crawler documentation]

Operating principles

  1. Decide by type, not by fear. Blocking all "AI bots" usually removes search visibility the business wanted.
  2. Policy in robots.txt, enforcement at the edge, proof in the logs. All three must agree.
  3. Verify, don't trust user agents. Use published IP ranges (OpenAI publishes gptbot.json, searchbot.json and chatgpt-user.json; Google and Bing publish verification methods).
  4. Serve content in HTML. Many AI crawlers fetch HTML without running JavaScript. [Consensus]
  5. Ignore unproven files as levers. llms.txt is optional; Google Search ignores it, and an Ahrefs study of 137,210 domains found 97% of llms.txt files received no requests in May 2026. [Confirmed for Google; study result]

When to use, and when not to

Use it when AI engines never cite the site, after enabling CDN bot protection, when legal or editorial teams want a training policy, before launches and migrations, and when logs show no AI search crawler visits.

Don't use it for general robots.txt work (use the Technical SEO robots directives skill) or for content quality (use answer-ready-content).

Inputs to ask for, in one message

  1. robots.txt and any meta robots or X-Robots-Tag rules.
  2. CDN and WAF bot settings (for example Cloudflare AI crawler controls, bot fight mode, rate limits).
  3. 30 days of CDN or server logs with user agent, IP, path and status.
  4. The business's position on training use.
  5. Key templates and whether they render on the server.

Raw SKILL.md file

.md

This is the exact file agents read, including the credit header and licence notice. Save it as ai-crawler-access/SKILL.md.

---
name: ai-crawler-access
description: "Set and enforce a deliberate policy for AI crawlers: search and index bots (OAI-SearchBot, Claude-SearchBot, PerplexityBot, Bingbot), user-triggered fetchers (ChatGPT-User, Claude-User, Perplexity-User) and training crawlers and tokens (GPTBot, ClaudeBot, CCBot, Google-Extended), aligned across robots.txt, CDN and WAF rules and logs, verified by IP, with server-rendered content, IndexNow and an honest view of llms.txt. Use whenever someone asks whether to block AI crawlers, AI bots in robots.txt, Cloudflare blocking AI crawlers, GPTBot vs OAI-SearchBot, llms.txt, AI crawlers not visiting, or protecting content from AI training while staying visible in AI search."
license: CC-BY-4.0
metadata:
  author: Afeez Adebayo
  author_url: https://afeezadebayo.com
  author_linkedin: https://www.linkedin.com/in/afeez-adebayo/
  author_x: https://x.com/za_icon
  source: https://afeezadebayo.com/skills-md/marketing/aeo-geo/ai-crawler-access/
  category: marketing
  subcategory: aeo-geo
  version: "1.0.0"
  created: "2026-10-10"
  updated: "2026-10-10"
---

# AI Crawler Access and Technical Readiness

Most brands missing from AI answers aren't blocked on purpose. A CDN bot setting switched on during an attack, a WAF rule that challenges unfamiliar user agents, a robots.txt line copied from a template, or pages that only render in the browser can make a site invisible to AI search crawlers while Google still ranks it.

This skill sets a deliberate policy for each type of AI crawler, verifies that the policy works in practice and checks that crawlers receive the content you want them to read.

## Three kinds of AI crawler
| Type | Examples | Purpose | Typical policy |
|---|---|---|---|
| Search and index | OAI-SearchBot, Claude-SearchBot, PerplexityBot, Bingbot, Googlebot | Build indexes used to ground and cite answers | Allow, unless you don't want AI search visibility |
| User-triggered fetchers | ChatGPT-User, Claude-User, Perplexity-User | Fetch a page because a person asked | Allow; OpenAI and Perplexity document that robots.txt may not apply to these [Confirmed] |
| Training | GPTBot, ClaudeBot, CCBot, Google-Extended (control token), Applebot-Extended (control token) | Collect content that may train models | Business decision: allowing helps future model knowledge; blocking protects content use |

Google-Extended controls training use and grounding in Gemini Apps and Vertex AI, not Google Search or AI Overviews. [Confirmed, Google crawler documentation]

## Operating principles
1. **Decide by type, not by fear.** Blocking all "AI bots" usually removes search visibility the business wanted.
2. **Policy in robots.txt, enforcement at the edge, proof in the logs.** All three must agree.
3. **Verify, don't trust user agents.** Use published IP ranges (OpenAI publishes gptbot.json, searchbot.json and chatgpt-user.json; Google and Bing publish verification methods).
4. **Serve content in HTML.** Many AI crawlers fetch HTML without running JavaScript. [Consensus]
5. **Ignore unproven files as levers.** llms.txt is optional; Google Search ignores it, and an Ahrefs study of 137,210 domains found 97% of llms.txt files received no requests in May 2026. [Confirmed for Google; study result]

## When to use, and when not to
Use it when AI engines never cite the site, after enabling CDN bot protection, when legal or editorial teams want a training policy, before launches and migrations, and when logs show no AI search crawler visits.

Don't use it for general robots.txt work (use the Technical SEO robots directives skill) or for content quality (use `answer-ready-content`).

## Inputs to ask for, in one message
1. robots.txt and any meta robots or X-Robots-Tag rules.
2. CDN and WAF bot settings (for example Cloudflare AI crawler controls, bot fight mode, rate limits).
3. 30 days of CDN or server logs with user agent, IP, path and status.
4. The business's position on training use.
5. Key templates and whether they render on the server.

## Workflow

### Step 1. Write the policy
A one-page table: crawler, owner, type, allowed paths, blocked paths, reason. Get sign-off from marketing, legal and engineering.

### Step 2. Implement robots.txt
One group per crawler where policies differ. Example for search visibility without training:
```text
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /
Disallow: /account/

User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
Disallow: /

User-agent: Google-Extended
Disallow: /
```
Check current crawler names in each provider's documentation before publishing; they change.

### Step 3. Align the edge
In the CDN and WAF, allow verified search and user-triggered crawlers past challenges and rate limits that would block them. Cloudflare began blocking AI crawlers by default for new domains in 2025 and offers per-crawler controls; check these settings explicitly.

### Step 4. Verify in logs
For each crawler: requests per day, status codes, paths and IP verification. Look for 403, 429 and challenge responses, and for crawlers that never appear at all.

### Step 5. Check what they receive
Fetch key pages without JavaScript (for example with curl) and confirm the main content, prices, FAQs and structured data are in the HTML. Fix with server-side or static rendering where needed.

### Step 6. Help discovery
Submit sitemaps to Google and Bing, enable IndexNow for Bing and other participating engines, and keep `lastmod` honest.

### Step 7. Monitor
Alert on sudden drops in AI crawler requests or spikes in blocked responses. Review the policy quarterly as new crawlers appear.

## Optional files and signals
| Item | Status | Recommendation |
|---|---|---|
| llms.txt | Proposal; Google Search ignores it; low observed usage | Fine to publish for developer tools and agents; never present it as a ranking lever |
| Cloudflare content signals in robots.txt | A Cloudflare proposal to state search, AI input and training preferences | Use if on Cloudflare and it matches policy; not an industry standard |
| Pay-per-crawl schemes | Emerging; limited adoption | Consider only for publishers with licensable content |

## Worked example
A SaaS company's marketing team believed it allowed all AI crawlers. Logs showed OAI-SearchBot and PerplexityBot receiving challenge pages from a CDN bot rule turned on during a credential-stuffing attack, while robots.txt allowed them. Pricing and integrations pages also rendered client-side. The team allowed verified AI search crawlers past the challenge, moved pricing into server-rendered HTML and documented the policy. Within a month, logs showed daily successful crawls, and the brand began appearing in Perplexity and ChatGPT answers for pricing prompts.

## Output format
```
# AI crawler access review: <site>, <date>
## Policy table (crawler, type, decision, reason)
## robots.txt (current vs proposed)
## Edge rules (CDN/WAF changes)
## Log verification (crawler, requests, status mix, verified IPs, issues)
## Rendering check by template
## Monitoring and review schedule
```

## Log check commands
```bash
# Requests and status codes for AI search crawlers (combined log format)
grep -E "OAI-SearchBot|Claude-SearchBot|PerplexityBot" access.log | awk '{print $9}' | sort | uniq -c
# Raw HTML check: is the price in the server response?
curl -s -A "Mozilla/5.0 (compatible; OAI-SearchBot/1.3; +https://openai.com/searchbot)" https://example.com/pricing/ | grep -i "per month"
```
A user-agent test like the second command only shows what your server sends to that string; verify real crawlers by IP in the logs.

## Edge cases and judgement calls
| Situation | What to do |
|---|---|
| Bot attack in progress | Keep protection on, but allowlist verified AI search crawler IP ranges |
| Paywalled content | Allow crawlers to the free summary; use paywall structured data where it applies |
| Staging or internal hosts | Block all crawlers there; never copy those rules to production |
| Multiple subdomains | Each host has its own robots.txt; apply the policy to every public host |
| Publisher licensing deals | Coordinate crawler policy with legal; some deals require specific blocks |

## Handoffs to related skills
- robots.txt syntax and testing: the Technical SEO `robots-directives` skill
- Rendering fixes: the Technical SEO `javascript-seo` skill
- Crawler verification and logs: the Technical SEO `log-file-analysis` skill
- Engine checks: `chatgpt-search-visibility`, `answer-engine-platforms`
- Agent browsing and checkout: `agent-readiness`

## Quality bar: what an excellent review includes
- A signed-off policy by crawler type.
- robots.txt, edge rules and logs that agree.
- Crawlers verified by IP and content checked in raw HTML.
- Optional files described accurately.

## Common mistakes
- Blocking every bot with "AI" in its name.
- Allowing crawlers in robots.txt while the CDN blocks them.
- Trusting user-agent strings without IP verification.
- Prices and key facts only in JavaScript.
- Treating llms.txt as a visibility strategy.

## Questions to ask before you recommend changes
- Does the business want AI search visibility, training use, both or neither?
- Who controls CDN and WAF rules?
- Are there paths that must never be fetched (accounts, internal search, APIs)?

## Self-check before you answer
- Is there a signed-off policy by crawler type?
- Do robots.txt, edge rules and logs agree?
- Did I verify crawlers by IP and check rendered HTML?
- Did I present optional files without overstating them?

## Official documentation and research
- OpenAI crawlers: https://platform.openai.com/docs/bots
- Perplexity crawlers: https://docs.perplexity.ai/guides/bots
- Google common crawlers, including Google-Extended: https://developers.google.com/crawling/docs/crawlers-fetchers/overview-google-crawlers
- Verifying Googlebot: https://developers.google.com/crawling/docs/crawlers-fetchers/verifying-googlebot
- IndexNow: https://www.indexnow.org/
- Ahrefs llms.txt study, June 2026: https://ahrefs.com/blog/llmstxt-study/
- llms.txt proposal: https://llmstxt.org/

---
Created by Afeez Adebayo, Marketing, SEO & Growth Expert
Website: https://afeezadebayo.com
LinkedIn: https://www.linkedin.com/in/afeez-adebayo/
X: https://x.com/za_icon
Source: https://afeezadebayo.com/skills-md/marketing/aeo-geo/ai-crawler-access/

Licence: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). You may copy, share and adapt this skill, including for commercial use, as long as you credit Afeez Adebayo and link to the source URL above. Keep this notice in any copy or adapted version.

Workflow

Step 1. Write the policy

A one-page table: crawler, owner, type, allowed paths, blocked paths, reason. Get sign-off from marketing, legal and engineering.

Step 2. Implement robots.txt

One group per crawler where policies differ. Example for search visibility without training:

User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /
Disallow: /account/

User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
Disallow: /

User-agent: Google-Extended
Disallow: /

Check current crawler names in each provider's documentation before publishing; they change.

Step 3. Align the edge

In the CDN and WAF, allow verified search and user-triggered crawlers past challenges and rate limits that would block them. Cloudflare began blocking AI crawlers by default for new domains in 2025 and offers per-crawler controls; check these settings explicitly.

Step 4. Verify in logs

For each crawler: requests per day, status codes, paths and IP verification. Look for 403, 429 and challenge responses, and for crawlers that never appear at all.

Step 5. Check what they receive

Fetch key pages without JavaScript (for example with curl) and confirm the main content, prices, FAQs and structured data are in the HTML. Fix with server-side or static rendering where needed.

Step 6. Help discovery

Submit sitemaps to Google and Bing, enable IndexNow for Bing and other participating engines, and keep lastmod honest.

Step 7. Monitor

Alert on sudden drops in AI crawler requests or spikes in blocked responses. Review the policy quarterly as new crawlers appear.

Optional files and signals

ItemStatusRecommendation
llms.txtProposal; Google Search ignores it; low observed usageFine to publish for developer tools and agents; never present it as a ranking lever
Cloudflare content signals in robots.txtA Cloudflare proposal to state search, AI input and training preferencesUse if on Cloudflare and it matches policy; not an industry standard
Pay-per-crawl schemesEmerging; limited adoptionConsider only for publishers with licensable content

Worked example

A SaaS company's marketing team believed it allowed all AI crawlers. Logs showed OAI-SearchBot and PerplexityBot receiving challenge pages from a CDN bot rule turned on during a credential-stuffing attack, while robots.txt allowed them. Pricing and integrations pages also rendered client-side. The team allowed verified AI search crawlers past the challenge, moved pricing into server-rendered HTML and documented the policy. Within a month, logs showed daily successful crawls, and the brand began appearing in Perplexity and ChatGPT answers for pricing prompts.

Output format

# AI crawler access review: <site>, <date>
## Policy table (crawler, type, decision, reason)
## robots.txt (current vs proposed)
## Edge rules (CDN/WAF changes)
## Log verification (crawler, requests, status mix, verified IPs, issues)
## Rendering check by template
## Monitoring and review schedule

Log check commands

# Requests and status codes for AI search crawlers (combined log format)
grep -E "OAI-SearchBot|Claude-SearchBot|PerplexityBot" access.log | awk '{print $9}' | sort | uniq -c
# Raw HTML check: is the price in the server response?
curl -s -A "Mozilla/5.0 (compatible; OAI-SearchBot/1.3; +https://openai.com/searchbot)" https://example.com/pricing/ | grep -i "per month"

A user-agent test like the second command only shows what your server sends to that string; verify real crawlers by IP in the logs.

Edge cases and judgement calls

SituationWhat to do
Bot attack in progressKeep protection on, but allowlist verified AI search crawler IP ranges
Paywalled contentAllow crawlers to the free summary; use paywall structured data where it applies
Staging or internal hostsBlock all crawlers there; never copy those rules to production
Multiple subdomainsEach host has its own robots.txt; apply the policy to every public host
Publisher licensing dealsCoordinate crawler policy with legal; some deals require specific blocks
  • robots.txt syntax and testing: the Technical SEO robots-directives skill
  • Rendering fixes: the Technical SEO javascript-seo skill
  • Crawler verification and logs: the Technical SEO log-file-analysis skill
  • Engine checks: chatgpt-search-visibility, answer-engine-platforms
  • Agent browsing and checkout: agent-readiness

Quality bar: what an excellent review includes

  • A signed-off policy by crawler type.
  • robots.txt, edge rules and logs that agree.
  • Crawlers verified by IP and content checked in raw HTML.
  • Optional files described accurately.

Common mistakes

  • Blocking every bot with "AI" in its name.
  • Allowing crawlers in robots.txt while the CDN blocks them.
  • Trusting user-agent strings without IP verification.
  • Prices and key facts only in JavaScript.
  • Treating llms.txt as a visibility strategy.

Questions to ask before you recommend changes

  • Does the business want AI search visibility, training use, both or neither?
  • Who controls CDN and WAF rules?
  • Are there paths that must never be fetched (accounts, internal search, APIs)?

Self-check before you answer

  • Is there a signed-off policy by crawler type?
  • Do robots.txt, edge rules and logs agree?
  • Did I verify crawlers by IP and check rendered HTML?
  • Did I present optional files without overstating them?

Official documentation and research

When to use this skill, and when not to

Use it when AI engines never cite the site, after turning on CDN bot protection, when legal or editorial teams want a training policy, before launches and migrations, and when logs show no visits from AI search crawlers.

Most brands missing from AI answers aren’t blocked on purpose. A bot rule switched on during an attack, a template robots.txt line or pages that only render in the browser are enough. The skill writes the policy by crawler type, then proves it works at every layer.

Don’t use it for general robots.txt work (use Robots.txt and Robots Directives) or content quality (use Answer-Ready Content).

Example prompts

  • “We want AI search visibility but no training use. Write the robots.txt and CDN rules.”
  • “Are AI crawlers actually reaching us? Here are 30 days of Cloudflare logs.”
  • “Should we block GPTBot, ClaudeBot and Google-Extended? Explain the trade-offs.”
  • “Is our llms.txt doing anything? Check the logs.”
  • “Our pricing loads with JavaScript. Can AI crawlers see it?”

Example output

The skill returns a fixed structure. A shortened example for an imaginary site:

# AI crawler access review: example.com, 10 October 2026

## Policy
| Crawler | Type | Decision | Reason |
| OAI-SearchBot, Claude-SearchBot, PerplexityBot | Search | Allow | AI search visibility |
| ChatGPT-User, Claude-User, Perplexity-User | User-triggered | Allow | Real users |
| GPTBot, ClaudeBot, CCBot, Google-Extended | Training | Block | Content licensing policy |

## Log verification
OAI-SearchBot: 0 successful (WAF challenge). PerplexityBot: 1,120 hits, 98% 200.

## Rendering
Pricing table missing from raw HTML on /pricing/.

robots.txt, edge rules and logs are checked against each other, because the policy only counts if all three agree.

What the agent needs from you

The skill asks for robots.txt and any meta robots or X-Robots-Tag rules, CDN and WAF bot settings, 30 days of CDN or server logs with user agent, IP, path and status, the business’s position on training use, and which key templates render on the server.

Research behind this skill

FindingSourceLabel
ChatGPT-User and Perplexity-User act for users, and robots.txt may not apply to themOpenAI and Perplexity documentationConfirmed
Google-Extended controls Gemini training and grounding, not Google Search or AI OverviewsGoogle crawler documentationConfirmed
97% of llms.txt files received no requests in May 2026Ahrefs, June 2026 (137,210 domains)Study
Google Search ignores llms.txtGoogle Search Central, 2026Confirmed

How this skill hands off to related skills

Access work links technical and AI skills. Robots.txt syntax follows Robots.txt and Robots Directives, rendering fixes follow JavaScript SEO and Rendering, crawler verification follows Log File Analysis, and engine-specific checks go to ChatGPT Search Visibility and Perplexity, Copilot, Claude and Gemini. Agent access for browsing and checkout continues in Agent Readiness.

How to run the AI Crawler Access skill step by step

  1. Install the skill as ai-crawler-access/SKILL.md.
  2. Share robots.txt for every public host, plus meta robots and X-Robots-Tag rules.
  3. Export CDN and WAF bot settings and 30 days of logs with user agent, IP, path and status.
  4. State the business position on AI search visibility and AI training use.
  5. Review the policy table, rules and log verification by crawler.
  6. Fix rendering gaps for key templates and set monitoring alerts.

Situations this skill handles

AI crawler problems are usually accidental. The skill handles these situations:

SituationWhat the skill does
robots.txt allows, CDN blocksAligns edge rules with the policy and confirms in logs
Blocking every “AI bot”Separates search, user-triggered and training crawlers
Bot attack in progressKeeps protection while allowlisting verified search crawler IPs
Prices load with JavaScriptMoves key facts into server-rendered HTML
llms.txt as a strategyExplains Google’s position and the log evidence
Several subdomainsApplies the policy to every public host

What makes this skill different

Most AI crawler advice is a list of user agents to block. This skill writes a policy by crawler type, then proves it works where it matters: robots.txt, CDN and WAF rules and server logs must all agree, and crawlers are verified by published IP ranges, not user-agent strings.

It also checks what crawlers receive. Many AI crawlers read HTML without running JavaScript, so key facts in client-rendered components may be invisible to them even when access is allowed.

Practical tips from real projects

  • Policy in robots.txt, enforcement at the edge, proof in the logs.
  • User-triggered fetchers represent real people asking about your pages.
  • Check Cloudflare’s AI crawler settings explicitly; defaults changed in 2025.
  • Review quarterly as new crawlers appear.

A worked example: a SaaS company believed it allowed all AI crawlers. Logs showed OAI-SearchBot and PerplexityBot receiving challenge pages from a CDN rule added during a credential-stuffing attack, while robots.txt allowed them. Pricing and integrations pages also rendered client-side. Allowing verified search crawlers, moving pricing into server HTML and documenting the policy led to daily successful crawls within a month and the first AI answer citations for pricing prompts.

The policy also gives legal and editorial teams what they usually want: a clear record of which companies may use content for training, which may use it for search answers and why.

A typical policy for brands that want AI search visibility without training use allows OAI-SearchBot, Claude-SearchBot and PerplexityBot, allows the user-triggered fetchers, and blocks GPTBot, ClaudeBot, CCBot and the Google-Extended token. The skill checks current crawler names in each provider’s documentation before publishing, because names and purposes change.

Frequently asked questions

Decide by type. Search crawlers such as OAI-SearchBot, Claude-SearchBot and PerplexityBot power AI answers; blocking them removes you. User-triggered fetchers represent real people. Training crawlers are a business decision.

Not from ChatGPT search. GPTBot is for training. OAI-SearchBot controls whether your pages can appear in ChatGPT search answers.

Possibly. Cloudflare began blocking AI crawlers by default for new domains in 2025 and offers per-crawler controls. Check its AI crawler settings and bot rules, then confirm in logs.

Not for visibility. Google Search ignores it and a 137,210-domain study found almost no AI crawler requests. Publish one only if developer tools or agents you care about use it.

Many fetch HTML without running JavaScript. Put prices, FAQs and key facts in the server-rendered HTML.

Match the request IP against the provider’s published ranges, such as OpenAI’s searchbot.json, or use reverse and forward DNS where providers document it.

Changelog

  • 1.0.0, 10 October 2026: first release.

Use, adapt and share this skill under CC BY 4.0: credit Afeez Adebayo and link to this page.