# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
#
# RESUME(https://www.resume.id)のクロール方針
# 1. 通常の検索エンジン(Googlebot / Bingbot など)は従来どおり全ページを許可する
# 2. 生成 AI の**学習データ収集**を目的とするクローラは全パスを拒否する
# 3. AI 検索・ユーザー操作による取得(ChatGPT 検索、Perplexity、リンクプレビュー等)は
# 許可する。RESUME とユーザーの作品が AI 検索から見つかる状態は維持したいため
# 4. ただし /ai/ 配下と /mcp(運営が用意した内容)だけは 2 の例外として学習用クローラにも開放する。
# 条件は /ai/policy.json に書いてある。/mcp は POST の JSON-RPC でクロール対象にはならないが、
# 同じ内容を返す以上ここでも意思表示を揃えておく(4 箇所で食い違わせない)
#
# 同じ意思表示を以下でも行っている(robots.txt を読まない事業者への保険)
# - /.well-known/tdmrep.json (W3C TDM Reservation Protocol)
# - /
# - HTTP レスポンスヘッダー X-Robots-Tag: noai, noimageai / tdm-reservation: 1
#
# 追加・削除の判断基準とクローラ一覧は docs/ai-crawler-policy.md を参照すること
# ------------------------------------------------------------------
# サイトマップ(索引 + セクション別。app/controllers/sitemaps_controller.rb)
# Sitemap 指令は User-agent グループに属さないため、ここに 1 行だけ置く
# ------------------------------------------------------------------
Sitemap: https://www.resume.id/sitemap.xml
# ------------------------------------------------------------------
# 既定: すべてのクローラに公開ページを許可する
# ------------------------------------------------------------------
# 例外はログイン・本人用・検索結果・API だけ(公開コンテンツではなく、クロールされる意味がない)。
# 2026-08-27 に sitemap を公開した直後からクローラのリクエストが 1 日 8〜10 万 → 40 万に跳ね、
# その大半がログインページ(/users/sign_in が最多パス)と検索結果に向いていた。
# 1 リクエストごとに OS へ返らない native メモリが積み上がり R14 の直接原因になったため、
# 意味のないクロールを止める(経緯は docs/memory-r14-investigation.md)。
# Crawl-delay は Bing・Yandex 等が尊重する(Google は無視するので影響なし)。
# **Disallow: の空行は先頭に残すこと**(spec が「全拒否になっていない」ことをこの行で確認している)
User-agent: *
Disallow:
Disallow: /users/
Disallow: /me/
Disallow: /current_user
Disallow: /search
Disallow: /api/
Crawl-delay: 10
# 取得後の使い道の表明。Cloudflare Content Signals(3 シグナル)と
# IETF aipref の Content-Usage を併記する。どちらも未対応のパーサーには無視される
Content-Signal: search=yes, ai-input=yes, ai-train=no
Content-Usage: train-ai=n
Content-Usage: /ai/ train-ai=y
Content-Usage: /mcp train-ai=y
# ------------------------------------------------------------------
# 生成 AI の学習データ収集クローラ(全パス拒否)
# ------------------------------------------------------------------
# OpenAI(基盤モデルの学習用)
# ChatGPT-User / OAI-SearchBot は AI 検索・ユーザー操作用のため許可している
User-agent: GPTBot
Disallow: /
Allow: /ai/
Allow: /mcp
# Anthropic(学習用。Claude-Web / anthropic-ai は旧名)
# Claude-User / Claude-SearchBot は許可している
User-agent: ClaudeBot
User-agent: Claude-Web
User-agent: anthropic-ai
Disallow: /
Allow: /ai/
Allow: /mcp
# Google(Gemini / Vertex AI の学習・グラウンディング用)
# Googlebot とは別枠のため、通常の Google 検索の掲載順位には影響しない
User-agent: Google-Extended
Disallow: /
Allow: /ai/
Allow: /mcp
# Apple(Apple Intelligence の学習用)
# Applebot 本体(Siri / Spotlight 検索)は許可している
User-agent: Applebot-Extended
Disallow: /
Allow: /ai/
Allow: /mcp
# Meta(AI モデルの学習用)
# OGP のシェアカードを取得する facebookexternalhit と
# ユーザー操作によるリンクプレビューの meta-externalfetcher は許可している
User-agent: meta-externalagent
User-agent: Meta-ExternalAgent
User-agent: FacebookBot
Disallow: /
Allow: /ai/
Allow: /mcp
# ByteDance(LLM の学習用)
User-agent: Bytespider
User-agent: TikTokSpider
Disallow: /
Allow: /ai/
Allow: /mcp
# Common Crawl(収集データが各社の LLM 学習に広く使われている)
User-agent: CCBot
Disallow: /
Allow: /ai/
Allow: /mcp
# Amazon(Alexa および AI モデルの改善用)
User-agent: Amazonbot
Disallow: /
Allow: /ai/
Allow: /mcp
# Cohere
User-agent: cohere-ai
User-agent: cohere-training-data-crawler
Disallow: /
Allow: /ai/
Allow: /mcp
# Allen Institute for AI(学習用データセット Dolma の収集)
User-agent: AI2Bot
User-agent: Ai2Bot-Dolma
Disallow: /
Allow: /ai/
Allow: /mcp
# 学習用データセットの構築・販売を行う事業者
User-agent: Diffbot
User-agent: omgili
User-agent: omgilibot
User-agent: Webzio-Extended
User-agent: ImagesiftBot
User-agent: img2dataset
User-agent: Timpibot
User-agent: PanguBot
User-agent: Kangaroo Bot
User-agent: SemrushBot-OCOB
Disallow: /
Allow: /ai/
Allow: /mcp
# 汎用スクレイピングフレームワーク(学習用の一括収集に使われることが多い)
User-agent: Scrapy
Disallow: /
Allow: /ai/
Allow: /mcp