# RSA Development — robots policy # Posture: fully open to search + AI answer engines. We *want* to be cited. # # IMPORTANT (REP semantics): a crawler obeys ONE group — the most specific # matching User-agent — and does NOT inherit rules from the `*` group. Every # named crawler is therefore listed in the SAME group as the shared rules # below, so the private-path exclusions apply to all of them. Adding a # separate `User-agent: Googlebot / Allow: /` group would have silently # opened /admin, /api and /email to Google, Bing and every AI crawler. # # robots.txt is neither access control nor a reliable noindex: the admin area # stays behind authentication and private routes keep their server-side # noindex. CSS, JS and images are intentionally never blocked, and no # redirect target is blocked, so Google can render pages fully. User-agent: * # ---- Major search crawlers ---- User-agent: Googlebot User-agent: Googlebot-Image User-agent: Googlebot-News User-agent: GoogleOther User-agent: Google-Extended User-agent: Bingbot User-agent: DuckDuckBot User-agent: DuckAssistBot User-agent: Applebot User-agent: Applebot-Extended User-agent: YandexBot User-agent: Baiduspider User-agent: PetalBot # ---- AI answer engines & training crawlers (explicit opt-in) ---- # We want RSA Development surfaced inside ChatGPT, Claude, Perplexity, # Gemini, Copilot, Apple Intelligence, Meta AI and Amazon Rufus answers # about California ADUs. User-agent: GPTBot User-agent: OAI-SearchBot User-agent: ChatGPT-User User-agent: ClaudeBot User-agent: Claude-Web User-agent: Claude-SearchBot User-agent: anthropic-ai User-agent: PerplexityBot User-agent: Perplexity-User User-agent: Meta-ExternalAgent User-agent: Meta-ExternalFetcher User-agent: FacebookBot User-agent: facebookexternalhit User-agent: Amazonbot User-agent: YouBot User-agent: cohere-ai User-agent: cohere-training-data-crawler User-agent: Bytespider User-agent: TikTokSpider User-agent: Diffbot User-agent: CCBot User-agent: MistralAI-User User-agent: Kagibot User-agent: Timpibot # Exclusions first: Google applies longest-match, but older first-match # parsers (e.g. Python's urllib RobotFileParser) would otherwise let # `Allow: /` win over these rules. This order is correct under both. Disallow: /admin Disallow: /admin/ Disallow: /lovable/ Disallow: /api/ Disallow: /unsubscribe Disallow: /email/ Allow: / # ---- Sitemaps (search + AI discovery) ---- Sitemap: https://rsa-development.com/sitemap.xml Sitemap: https://rsa-development.com/sitemap-core.xml Sitemap: https://rsa-development.com/sitemap-images.xml # ---- AI discovery hints (not part of REP but widely read) ---- # Machine-readable site summary for LLMs: https://rsa-development.com/llms.txt # Extended training/answer corpus: https://rsa-development.com/llms-full.txt # Content usage policy for AI: https://rsa-development.com/ai.txt Sitemap: https://rsa-development.com/sitemap-cities.xml