# TEMPLATE A: visible in AI search, opted out of model training. All business facts are placeholders (example.com).
# Checked against: RFC 9309 group and longest-match rules (scripts/rfc9309_check.py), Python urllib.robotparser,
# and the OpenAI, Anthropic, Perplexity, Meta, Apple, Common Crawl and Google crawler docs (October 2026).
# Replace every placeholder (host in the Sitemap line, the /api/ and /cart/ paths).
#
# A named group replaces the * group for that crawler, so every group repeats the Disallow lines.
# Disallow comes before Allow: / because simple parsers use the first match.

# 1. Everyone else, including Googlebot and Bingbot.
User-agent: *
Disallow: /api/
Disallow: /cart/
Allow: /

# 2. AI search indexes and user-triggered fetchers: allowed.
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Perplexity-User
User-agent: meta-webindexer
Disallow: /api/
Disallow: /cart/
Allow: /

# 3. Model training: opted out.
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Applebot-Extended
User-agent: CCBot
User-agent: meta-externalagent
Disallow: /

# Google-Extended also controls grounding in Gemini Apps and Vertex AI, not only training.
# Uncomment only if you accept that trade-off. It does not affect Google Search.
# User-agent: Google-Extended
# Disallow: /

Sitemap: https://www.example.com/sitemap.xml
