robots-txt について
robots.txt の設定と監査を行い、検索エンジンや AI クローラーのアクセスを管理するテクニカル SEO スキルです。クロール制御とインデックス制御の違いも説明します。
主な機能
- 01Allow・Disallow ルールの指針
- 02Sitemap・Clean-param ディレクティブ
- 03パス単位のクロール監査
- 04AI クローラーのアクセス方針
- 05クロール制御とインデックス制御の区別
活用シーン
- 01robots.txt の意図しないブロックの監査
- 02管理用またはステージング用パスのクロール制限
- 03検索用・学習用クローラーのアクセスルール設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ kostja94/ marketing-skills --skill robots-txtインストール後、Claude Code で/robots-txtを入力して読み込まれたか確認します。
詳細
SEO テクニカル:robots.txt
検索エンジンや AI クローラーを制御するための robots.txt の設定と監査について説明します。
呼び出し時:初回は、このスキルの対象範囲と重要性を1〜2文で簡潔に説明してから、主な出力を提示すると役立ちます。2回目以降、またはユーザーから省略するよう求められた場合は、直接主な出力を提示してください。
対象範囲(テクニカル SEO)
- Robots.txt:Disallow/Allow、Sitemap、Clean-param を設定し、誤ってブロックしていないか監査します
- クローラーアクセス:パス単位のクロール制御、AI クローラーの許可/ブロック方針
- 使い分け:robots.txt はクロール制御(どのクローラーがどのパスにアクセスするか)、noindex はインデックス制御(何をインデックスするか)を行います。ページ単位の除外については indexing を参照してください。
初期評価
プロジェクトのコンテキスト: ルートに contextus.md がある場合は読み込み、このタスクに関連するモジュールのみを読み込んでください。Contextus がない場合は、利用可能なプロジェクト資料またはユーザー提供の情報を使用し、不足している情報を尋ねてください。別のコンテキスト管理システムは作成しないでください。
以下を特定します。
- サイト URL:ベースドメイン(例:
https://example.com) - インデックス対象範囲:サイト全体、一部、または除外する特定のパス
- AI クローラー方針:検索/インデックスを許可するか、学習データ用クローラーをブロックするか
ベストプラクティス
目的と制限事項
| 項目 | 注意点 |
|---|---|
| 目的 | クローラーのアクセスを制御します。インデックス登録は防止しません(ブロックされた URL も、スニペットなしで検索結果に表示される場合があります) |
| 強制力 | ルールには強制力がなく、悪意のあるクローラーは無視することがあります |
| 公開性 | robots.txt は誰でも閲覧できます。機密コンテンツには noindex または認証を使用してください。indexing を参照してください |
クロール、インデックス、リンクエクイティ(クイックリファレンス)
| ツール | 制御対象 | インデックス登録を防止するか |
|---|---|---|
| robots.txt | クロール(パス単位) | いいえ。ブロックされた URL も SERP に表示される場合があります |
| noindex(meta/X-Robots-Tag) | インデックス(ページ単位) | はい。indexing を参照してください |
| nofollow | リンクエクイティのみ | いいえ。インデックス登録は制御しません |
robots.txt と noindex の使い分け
| 用途 | ツール | 例 |
|---|---|---|
| パス単位(ディレクトリ全体) | robots.txt | Disallow: /admin/、Disallow: /api/、Disallow: /staging/ |
| ページ単位(特定のページ) | noindex meta/X-Robots-Tag | ログイン、サインアップ、サンクスページ、404、法律関連ページ。全リストは indexing を参照してください |
| 重要 | robots.txt でブロックしないでください | noindex を使用するページ。クローラーが指示を読み取るには、そのページにアクセスできる必要があります |
robots.txt でブロックするパス:/admin/、/api/、/staging/、一時ファイル。noindex を使用するパス(クロールは許可):/login/、/signup/、/thank-you/ など。indexing を参照してください。
配置場所と形式
| 項目 | 要件 |
|---|---|
| パス | サイトのルート:https://example.com/robots.txt |
| エンコーディング | UTF-8 のプレーンテキスト |
| 標準 | RFC 9309(Robots Exclusion Protocol) |
主なディレクティブ
| ディレクティブ | 目的 | 例 |
|---|---|---|
User-agent: | 対象とするクローラーを指定 | User-agent: Googlebot、User-agent: * |
Disallow: | パスのプレフィックスをブロック | Disallow: /admin/ |
Allow: | パスを許可(Disallow を上書きできます) | Allow: /public/ |
Sitemap: | サイトマップの絶対 URL を指定 | Sitemap: https://example.com/sitemap.xml |
Clean-param: | クエリパラメーターを除去(Yandex) | 以下を参照 |
パス形式のルール(重要)
ディレクティブごとに異なるパス形式を使用します。これはよくあるエラーの原因です。
| ディレクティブ | 形式 | 正しい例 | 誤った例 |
|---|---|---|---|
| Disallow / Allow | ルート相対パスのみ(/ で始まる) | Disallow: /admin/ | Disallow: https://example.com/admin/ |
| Sitemap | 絶対 URL のみ | Sitemap: https://example.com/sitemap.xml | Sitemap: /sitemap.xml |
ワイルドカード:* は任意の文字列に一致します(Disallow: /tmp/*)。$ は URL の末尾との完全一致を示します(Allow: /news/.html$)。
優先順位:より具体的なパスが優先されます。Allow: /shop/shoes/ は Disallow: /shop/ より優先されます。パスの照合では大文字と小文字が区別されます。Disallow: /PDF/ は /pdf/ には一致しません。
重要:ブロックしないでください
| ブロックしない対象 | 理由 |
|---|---|
| CSS、JS、画像 | Google がページをレンダリングするために必要です。ブロックするとインデックス登録に支障が出ます |
/_next/(Next.js) | CSS/JS の読み込みに支障が出ます。GSC で静的アセットが「クロール済み - インデックス未登録」と表示されるのは想定内です。indexing を参照してください |
| noindex を使用するページ | クローラーが noindex ディレクティブを読み取るには、ページにアクセスする必要があります。robots.txt でブロックすると、それができなくなります |
ブロックするのは、クロールする必要のないパスのみです:/admin/、/api/、/staging/、一時ファイル。
AI クローラー戦略
robots.txt は、測定対象のすべての AI クローラーに有効です。ユーザーエージェントごとにルールを設定し、各ベンダーのドキュメントで現在のトークンを確認してください。
| User-agent | 用途 | 一般的な設定 | 備考 |
|---|---|---|---|
| OAI-SearchBot | ChatGPT 検索 | Allow | robots.txt に従います |
| GPTBot | OpenAI の学習 | Disallow | robots.txt に従います。両方を許可すると、OAI-SearchBot とクロールデータを共有します |
| ChatGPT-User | ユーザーが開始した閲覧 | N/A | robots.txt に従わなくなりました(2025 年 12 月)。代わりにサーバー側の制御を使用してください |
| Claude-SearchBot | Claude 検索 | Allow | robots.txt に従います |
| Claude-User | Anthropic のユーザーが開始した閲覧 | Allow | robots.txt に従います(ChatGPT-User とは異なります) |
| ClaudeBot | Anthropic の学習 | Disallow | robots.txt に従います |
非推奨:
anthropic-ai— Anthropic によって廃止され、ClaudeBot / Claude-User / Claude-SearchBot に置き換えられました。robots.txt のanthropic-aiに関する記述は効果がありません。 | PerplexityBot | Perplexity 検索 | Allow | robots.txt に従います | | Google-Extended | Gemini の学習 | Disallow | robots.txt に従います | | CCBot | Common Crawl(LLM の学習) | Disallow | robots.txt に従います | | Bytespider | ByteDance | Disallow | robots.txt に従います | | Meta-ExternalAgent | Meta | Disallow | robots.txt に従います | | AppleBot | Apple(Siri、Spotlight)。JS をレンダリングします | インデックス登録には Allow | robots.txt に従います |
Allow と Disallow:検索/インデックス登録用ボット(OAI-SearchBot、Claude-SearchBot、PerplexityBot)は Allow にします。コンテンツをモデルの学習に使わせたくない場合は、学習専用ボット(GPTBot、ClaudeBot、CCBot)を Disallow にします。
重要 — ChatGPT-User の例外:2025 年 12 月時点で、ChatGPT-User は robots.txt のディレクティブに従わなくなりました。OpenAI は、人間が開始した閲覧のプロキシとして扱っています。ブロックする必要がある場合は、robots.txt ではなく、サーバー側の制御(WAF ルール、IP レート制限)を使用してください。AI クローラー向けの最適化(SSR、URL 管理)については、site-crawlability を参照してください。
Clean-param(Yandex)
Clean-param: utm_source&utm_medium&utm_campaign&utm_term&utm_content&ref&fbclid&gclid
出力形式
- 現在の状態(監査の場合)
- 推奨する robots.txt(ファイル全体)
- コンプライアンスチェックリスト
- 参考資料:Google robots.txt
関連スキル
- indexing:noindex を使用するページタイプの一覧、noindex と robots.txt の使い分け、GSC のインデックス登録に関する診断
- page-metadata:Meta robots(noindex、nofollow)の実装
- xml-sitemap:robots.txt で参照するサイトマップ URL
- site-crawlability:クロールと構造に関する幅広いガイダンス、AI クローラー向けの最適化
- rendering-strategies:SSR、SSG、CSR。クローラー向けの初期 HTML 内コンテンツ