Allow AI search and user fetches, block the rest

Be findable and citable in assistants without contributing to training corpora.

curl -s https://www.pathwren.workers.dev/robots/allow-ai-search-only.txt >> robots.txt

The inverse framing of block-ai-training, written as an allowlist so the default for anything new is deny. Fetches a user explicitly asked for stay allowed, because refusing those produces a visible error for a real person who wanted your page.

Names 28 crawlers

Amazonbot · Applebot · Baiduspider · bingbot · ChatGPT-User · Claude-SearchBot · Claude-User · Claude-Web · cohere-ai · DuckAssistBot · DuckDuckBot · facebookexternalhit · Google-CloudVertexBot · Googlebot · Googlebot-Image · Googlebot-News · meta-externalfetcher · MistralAI-User · OAI-SearchBot · Perplexity-User · PerplexityBot · PetalBot · SeznamBot · Storebot-Google · Timpibot · YandexBot · Yeti · YouBot

The file

/robots/allow-ai-search-only.txt · json

# AI Crawler Index — policy: allow-ai-search-only
# Allow AI search and user fetches, block the rest
# Be findable and citable in assistants without contributing to training corpora.
# Generated 2026-09-01 from https://www.pathwren.workers.dev/policy/allow-ai-search-only.html
# 28 crawlers named. Paste into robots.txt at your document root.

User-agent: Amazonbot
Allow: /

User-agent: Applebot
Allow: /

User-agent: Baiduspider
Allow: /

User-agent: bingbot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: Claude-User
Allow: /

User-agent: Claude-Web   # control token, no crawler uses this user-agent
Allow: /

User-agent: cohere-ai
Allow: /

User-agent: DuckAssistBot
Allow: /

User-agent: DuckDuckBot
Allow: /

User-agent: facebookexternalhit
Allow: /

User-agent: Google-CloudVertexBot
Allow: /

User-agent: Googlebot
Allow: /

User-agent: Googlebot-Image
Allow: /

User-agent: Googlebot-News
Allow: /

User-agent: meta-externalfetcher
Allow: /

User-agent: MistralAI-User
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: Perplexity-User   # operator states robots.txt does not apply; enforce at the edge
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: PetalBot
Allow: /

User-agent: SeznamBot
Allow: /

User-agent: Storebot-Google
Allow: /

User-agent: Timpibot
Allow: /

User-agent: YandexBot
Allow: /

User-agent: Yeti
Allow: /

User-agent: YouBot
Allow: /

# Anything not named above is refused.
User-agent: *
Disallow: /

Sitemap: https://www.pathwren.workers.dev/sitemap.xml