robots.txtの書き方と設定ガイド|SEOで失敗しないための基本ルール

この記事の目次
robots.txtとは?基本的な役割と仕組み
robots.txtは、Webサイトのルートディレクトリに設置するテキストファイルで、検索エンジンのクローラー(ロボット)に対して「どのページをクロールしてよいか」「どのページをクロールしないでほしいか」を伝えるためのファイルです。正式には「Robots Exclusion Protocol(ロボット排除プロトコル)」と呼ばれる仕組みの一部であり、1994年から使われている歴史あるWeb標準です。
検索エンジンのクローラーは、サイトを訪問する際にまず最初にrobots.txtを確認します。たとえば、Googleのクローラー(Googlebot)があなたのサイトを訪問する場合、最初に https://example.com/robots.txt にアクセスし、そこに記載されたルールに従ってクロールを行います。
robots.txtが重要な理由は大きく3つあります。
- クロールバジェットの最適化:検索エンジンがサイトをクロールできる量には限りがあります(クロールバジェット)。不要なページへのクロールをrobots.txtで制限することで、重要なページを優先的にクロールしてもらえます。
- サーバー負荷の軽減:大量のページを持つサイトでは、クローラーのアクセスがサーバーに負荷をかけることがあります。robots.txtで不要なクロールを制御することで、サーバーの安定稼働に貢献します。
- 非公開領域の保護:管理画面や開発環境など、検索エンジンにクロールされたくないディレクトリを明示的に指定できます。
ただし、robots.txtはあくまで「お願い」であり、強制力はありません。行儀の良いクローラーはルールに従いますが、悪意のあるボットは無視する可能性があります。また、robots.txtでクロールを禁止しても、外部からリンクされていればそのURLがインデックスされる可能性がある点にも注意が必要です。インデックスを防ぎたい場合は、noindexタグの使用が適切です。
SEOの基本を理解したうえで、robots.txtの正しい設定方法を身につけていきましょう。
robots.txtの基本的な書き方(Allow・Disallow・Sitemap)
robots.txtの記述はシンプルなテキスト形式で行います。基本的な構文は以下のとおりです。
基本構文
robots.txtは以下の要素で構成されます。
User-agent: [クローラー名]
Disallow: [クロールを禁止するパス]
Allow: [クロールを許可するパス]
Sitemap: [サイトマップのURL]User-agent(ユーザーエージェント)
User-agentは、ルールの対象となるクローラーを指定します。すべてのクローラーに適用したい場合はアスタリスク(*)を使用します。
# すべてのクローラーに適用
User-agent: *
# Googlebotにのみ適用
User-agent: Googlebot
# Bingbotにのみ適用
User-agent: BingbotDisallow(クロール禁止)
Disallowは、指定したパス以下のクロールを禁止する命令です。SEOにおいて最も重要なディレクティブの一つです。
# /admin/以下のすべてのページをクロール禁止
Disallow: /admin/
# 特定のファイルをクロール禁止
Disallow: /private-page.html
# すべてのページをクロール禁止
Disallow: /
# 空の場合はすべて許可(Disallowなし)
Disallow:Allow(クロール許可)
Allowは、Disallowで禁止した範囲の中で、特定のパスだけクロールを許可したい場合に使用します。
User-agent: *
Disallow: /private/
Allow: /private/public-page.htmlこの例では、/private/ディレクトリ全体のクロールを禁止しつつ、/private/public-page.htmlだけは許可しています。
Sitemap(サイトマップの指定)
Sitemapディレクティブを使って、XMLサイトマップの場所をクローラーに伝えることができます。
Sitemap: https://example.com/sitemap.xmlSitemapの指定はUser-agentブロックの外に記述するのが一般的です。複数のサイトマップがある場合は、複数行で記述できます。
実際の記述例
一般的な企業サイトでのrobots.txt例を紹介します。
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-includes/
Disallow: /tag/
Disallow: /author/
Disallow: /?s=
Disallow: /search/
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-news.xmlこの例では、WordPress管理画面やシステムディレクトリ、タグページ、著者アーカイブ、検索結果ページのクロールを禁止し、サイトマップの場所を2つ指定しています。admin-ajax.phpはフロントエンドでAjax処理に使われるため、Allowで例外的に許可しています。
AIクローラーへの対応設定(GPTBot・ClaudeBot・PerplexityBot)
近年、ChatGPTやClaude、Perplexityなどの生成AIサービスが急速に普及しています。これらのAIサービスは、Web上のコンテンツを学習データとして収集するために独自のクローラーを運用しています。自社コンテンツがAIの学習に利用されることを制御したい場合、robots.txtで設定が可能です。
LLMO(大規模言語モデル最適化)の観点からも、AIクローラーへの対応方針は慎重に検討する必要があります。
主要なAIクローラー一覧
現在、主要なAIサービスが使用しているクローラーは以下のとおりです。
- GPTBot:OpenAI(ChatGPT)のクローラー。AI学習用のデータ収集に使用されます。
- ChatGPT-User:ChatGPTがリアルタイムでWebを閲覧する際に使用するクローラーです。
- ClaudeBot:Anthropic(Claude)のクローラー。AI学習用のデータ収集に使用されます。
- PerplexityBot:Perplexity AIの検索クローラーです。
- Bytespider:ByteDance(TikTok)のクローラーで、AI学習にも利用されます。
- Google-Extended:GoogleのAI(Gemini等)の学習用クローラーです。通常のGooglebotとは別に制御できます。
AIクローラーをブロックする設定
すべてのAIクローラーをブロックしたい場合は、以下のように設定します。
# AIクローラーのブロック
User-agent: GPTBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: PerplexityBot
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: Google-Extended
Disallow: /部分的に許可する設定
AI検索エンジンからの流入を維持しつつ、学習データとしての利用は制限したいケースもあります。たとえば、PerplexityやChatGPTのリアルタイム検索は許可しつつ、学習用クローラーのみブロックするといった使い分けが考えられます。
# 学習用クローラーのみブロック
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
# AI検索は許可
User-agent: ChatGPT-User
Disallow:
User-agent: PerplexityBot
Disallow:AIクローラーへの対応方針は、ビジネスモデルやコンテンツ戦略によって異なります。AI検索からの流入が見込める場合は完全ブロックが機会損失になることもあるため、定期的に方針を見直すことをおすすめします。
WordPressでのrobots.txt設定方法
WordPressでは、robots.txtの設定方法がいくつかあります。サイトの規模や運用方針に合わせて最適な方法を選びましょう。
WordPressの仮想robots.txt
WordPressは、デフォルトで仮想的なrobots.txtを自動生成します。ルートディレクトリにrobots.txtファイルを置いていなくても、https://example.com/robots.txt にアクセスすると以下のような内容が表示されます。
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/wp-sitemap.xmlこのデフォルト設定は最低限のものであり、本格的なSEO対策を行う場合はカスタマイズが必要です。
方法1:物理ファイルを直接設置
最もシンプルな方法は、テキストエディタでrobots.txtファイルを作成し、FTPやファイルマネージャーでサーバーのルートディレクトリにアップロードする方法です。物理ファイルが存在する場合、WordPressの仮想robots.txtよりも優先されます。
方法2:SEOプラグインを使用
Yoast SEOやAll in One SEO Packなどのプラグインでは、管理画面からrobots.txtを編集できる機能が提供されています。
Yoast SEOの場合:
- WordPress管理画面 → Yoast SEO → ツール → ファイルエディターを開く
- robots.txtの編集画面で内容を編集
- 「変更を保存」をクリック
プラグインを使う方法は、FTPアクセスが不要で手軽ですが、プラグインのアップデートや設定変更で意図せず内容が変わるリスクがあるため、定期的な確認が大切です。
方法3:functions.phpでカスタマイズ
テーマのfunctions.phpに以下のようなコードを追加することで、WordPressの仮想robots.txtをカスタマイズすることも可能です。
function custom_robots_txt( $output, $public ) {
$output = "User-agent: *\n";
$output .= "Disallow: /wp-admin/\n";
$output .= "Allow: /wp-admin/admin-ajax.php\n";
$output .= "Disallow: /wp-includes/\n";
$output .= "Disallow: /tag/\n";
$output .= "Disallow: /?s=\n";
$output .= "\n";
$output .= "User-agent: GPTBot\n";
$output .= "Disallow: /\n";
$output .= "\n";
$output .= "Sitemap: https://example.com/sitemap.xml\n";
return $output;
}
add_filter( 'robots_txt', 'custom_robots_txt', 10, 2 );この方法はバージョン管理がしやすく、チーム開発にも向いています。
よくあるrobots.txtの設定ミスと注意点
robots.txtは記述がシンプルな反面、設定ミスがSEOに大きな悪影響を及ぼすことがあります。テクニカルSEOの観点から、よくあるミスと対策を紹介します。
ミス1:サイト全体をブロックしてしまう
最も深刻なミスは、意図せずサイト全体のクロールをブロックしてしまうケースです。
# 危険な設定例
User-agent: *
Disallow: /この設定はサイト全体のクロールを禁止します。テスト環境やステージング環境では適切ですが、本番環境で設定してしまうと検索結果から完全に消えてしまいます。サイト移行やリニューアル後にテスト環境の設定がそのまま残ってしまうケースが特に多いので注意してください。
ミス2:robots.txtの設置場所が間違っている
robots.txtはドメインのルートディレクトリに置く必要があります。サブディレクトリに置いても機能しません。
- 正しい:
https://example.com/robots.txt - 間違い:
https://example.com/blog/robots.txt
ミス3:Disallowでインデックス制御できると思い込む
robots.txtのDisallowは「クロールしないでください」という要求であり、「インデックスしないでください」という意味ではありません。クロールをブロックしても、外部リンク等からURLが発見されればインデックスされる可能性があります。インデックスを確実に防ぎたい場合は、noindexメタタグを使用しましょう。
ミス4:大文字・小文字やスペルの間違い
robots.txtのディレクティブは大文字・小文字を区別します。Disallowは正しいですが、disallowやDISALLOWでは正しく認識されない可能性があります。また、パスの大文字・小文字も区別されるため、正確に記述する必要があります。
ミス5:CSSやJSファイルをブロックする
以前はCSSやJavaScriptファイルへのクロールをブロックすることがありましたが、現在のGoogleはページのレンダリングにこれらのファイルを必要としています。CSSやJSをブロックすると、Googleがページを正しくレンダリングできず、SEO評価に悪影響を与えます。
ミス6:サイトマップのURLが間違っている
Sitemapディレクティブに記述するURLは絶対URLでなければなりません。相対パスで記述すると正しく認識されません。
# 間違い
Sitemap: /sitemap.xml
# 正しい
Sitemap: https://example.com/sitemap.xmlrobots.txtの確認・テスト方法
robots.txtを設定したら、必ず動作確認を行いましょう。設定ミスを早期に発見し、SEOへの悪影響を防ぐことが重要です。
ブラウザで直接確認
最も簡単な確認方法は、ブラウザで直接robots.txtのURLにアクセスすることです。
https://あなたのドメイン/robots.txtファイルの内容が正しく表示されること、文字化けしていないこと、意図したルールが記載されていることを確認しましょう。
Google Search Consoleで確認
Google Search Console(サーチコンソール)では、robots.txtテスターは2023年に廃止されましたが、URL検査ツールでクロール状況を確認できます。特定のURLがrobots.txtでブロックされていないかを確認するには、URL検査ツールにURLを入力し、「クロール」セクションの「robots.txtによるクロールの許可」を確認してください。
サードパーティツールでの確認
以下のツールでもrobots.txtの構文チェックや動作確認が可能です。
- Screaming Frog SEO Spider:サイト全体のクロール状況を確認でき、robots.txtでブロックされているURLも一覧表示されます。
- Ahrefs / SEMrush:サイト監査機能でrobots.txtの問題点を自動検出してくれます。
- Google Rich Results Test:特定ページがGooglebotからアクセス可能かを確認できます。
動作確認のチェックリスト
robots.txtを公開する前に、以下のポイントを確認しましょう。
- ファイルがドメインのルートディレクトリに設置されているか
- UTF-8エンコーディングで保存されているか
- 重要なページ(トップページ、主要カテゴリページ、個別記事ページ)がブロックされていないか
- CSS・JavaScriptファイルがブロックされていないか
- サイトマップのURLが正しい絶対URLで記述されているか
- AIクローラーへの設定が意図どおりになっているか
- テスト環境用の設定(Disallow: /)が残っていないか
関連記事
- SEOとは?基礎知識と対策方法を解説
- テクニカルSEOとは?内部対策の重要ポイント
- noindexタグの正しい使い方と設定方法
- LLMO(大規模言語モデル最適化)とは?AI時代のWebマーケティング
- Googleサーチコンソールの使い方と活用法
まとめ
robots.txtは、検索エンジンのクローラーに対してサイトのクロール範囲を指示する重要なファイルです。正しく設定することで、クロールバジェットの最適化、サーバー負荷の軽減、不要なページのクロール防止が実現できます。
本記事のポイントをまとめます。
- robots.txtはサイトルートに設置し、User-agent、Disallow、Allow、Sitemapの基本構文で記述する
- AIクローラー(GPTBot、ClaudeBot、PerplexityBot等)への対応は、ビジネス戦略に合わせて慎重に判断する
- WordPressでは物理ファイル、SEOプラグイン、functions.phpの3つの方法で設定可能
- Disallowはインデックス制御ではないため、インデックス除外にはnoindexを併用する
- 設定後は必ずブラウザやSearch Consoleで動作確認を行う
robots.txtの設定は一度行えば終わりではなく、サイト構造の変更やAIクローラーの登場など、環境の変化に合わせて定期的に見直すことが大切です。テクニカルSEOの基盤として、正確かつ最新の状態を維持しましょう。













