検索エンジンのクローラーがサイトを訪問する際、最初に取得するのが robots.txt というファイルです。1ページもクロールする前に、このファイルを読んでどこを巡回してよいかを判断します。

正しく設定すれば管理画面の保護やクロール効率の改善に役立ちますが、設定ミスをするとサイト全体がGoogleから消えることもある重要なファイルです。本記事では基本的な書き方から、AIクローラーのブロック設定、WordPress・Shopifyへの設置方法、よくある設定ミスまで実践的に解説します。

robots.txtとは?

robots.txt は、Webサーバーのルートに置くプレーンテキストファイルです。場所は必ず https://example.com/robots.txt で固定——サブディレクトリには置けません。「ロボット排除プロトコル(Robots Exclusion Protocol)」という業界標準に基づいており、善良なクローラーはこの指示に従います。

robots.txtとnoindexの違い

これはSEOの中で最も混同されやすい概念のひとつです:

  • robots.txt:クローラーがそのURLを訪問(クロール)するかどうかを制御する
  • noindexメタタグ:クロールされたページが検索結果に表示(インデックス)されるかどうかを制御する

robots.txtでブロックされたページでも、他サイトからリンクされていればGoogleがURLを発見して検索結果に表示することがあります。ページを検索結果から確実に除外したい場合は、クロールを許可した状態でnoindexを設定してください。

robots.txtの書き方(ディレクティブ解説)

ファイルは行ベースで記述します。「ディレクティブ: 値」の形式で、空行でブロックを区切ります。

User-agent(対象クローラーの指定)

User-agent: *          # すべてのクローラーに適用
User-agent: Googlebot  # Googleのみ
User-agent: GPTBot     # OpenAIのAIクローラーのみ

アスタリスク(*)はワイルドカードで、個別指定がないすべてのクローラーに適用されます。特定のクローラー名を指定したブロックがある場合、そちらが優先されます。

DisallowとAllow(クロール制御)

Disallowは指定パス以下のURLをクロール禁止にします。Allowは広いDisallowの中で特定パスだけを許可します。より具体的なルールが優先されます。

User-agent: *
Disallow: /admin/         # /admin/ 以下をすべてブロック
Disallow: /search?        # パラメーター付きURL(検索結果ページ等)をブロック
Disallow: /               # サイト全体をブロック(危険!)
Disallow:                 # 空欄=すべて許可

# 広くブロックしながら特定ページだけ許可する例
Disallow: /private/
Allow: /private/public-page.html

パスマッチングは前方一致です。Disallow: /blog/blog/blog//blog/post-1 をすべてブロックします。末尾スラッシュに注意:/admin はそのURLだけ、/admin/ はディレクトリ全体をブロックします。

→ 正しい構文を自動生成: robots.txt ジェネレーター | 設定を検証: robots.txt チェッカー

Sitemap(サイトマップの場所を指定)

クローラーにXMLサイトマップの絶対URLを伝えます。クロール制限ではなく、コンテンツ発見の手がかりです。

Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-news.xml  # 複数OK

Crawl-delay(クロール間隔)

クローラーにリクエスト間のウェイト時間(秒)を指示します。BingbotやBaiduspiderは対応していますが、Googlebotはこのディレクティブを無視します。Googleのクロール頻度を下げたい場合はGoogle Search ConsoleのCrawl Rate設定を使ってください。

User-agent: Bingbot
Crawl-delay: 10

よく使うrobots.txt設定パターン

すべて許可(一般的なサイトの基本設定)

User-agent: *
Allow: /

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

管理画面・ログインページをブロック

User-agent: *
Disallow: /admin/
Disallow: /wp-admin/
Disallow: /login
Disallow: /dashboard/

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

低品質URLをブロック(大規模サイト向け)

User-agent: *
Disallow: /search?
Disallow: /tag/
Disallow: /?sort=
Disallow: /?filter=
Disallow: /page/

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

ECサイトやブログなど大規模サイトで、ファセットナビゲーションやページネーションのURLがクロールバジェットを無駄に消費するのを防ぎます。

AIクローラーをブロックする方法

2023年以降、LLM(大規模言語モデル)の学習データを収集するクローラーが急増しています。主要なAI企業はクローラーのUser-agent名を公開し、robots.txtを遵守すると表明しています。

User-agent企業用途
GPTBotOpenAIChatGPT / GPTモデルの学習
ChatGPT-UserOpenAIChatGPTのブラウジング機能
ClaudeBotAnthropicClaudeモデルの学習
anthropic-aiAnthropicAnthropicのウェブ調査
Google-ExtendedGoogleGemini / Bardの学習
PerplexityBotPerplexity AIPerplexity AIの検索
BytespiderByteDanceTikTok AI / LLM学習
CCBotCommon CrawlAI学習データセット

AIクローラーをすべてブロック・検索クローラーは通す設定

User-agent: GPTBot
Disallow: /

User-agent: ChatGPT-User
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: anthropic-ai
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: PerplexityBot
Disallow: /

User-agent: Bytespider
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: *
Allow: /

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

この設定でGooglebot・Bingbotなどの検索クローラーはそのまま通しつつ、AI学習用クローラーだけをブロックできます。robots.txtジェネレーターでは「AIクローラーをブロック」のチェックを入れるだけで自動生成できます。

注意:主要AI企業はrobots.txtを遵守すると表明していますが、非公式のスクレイパーや悪意あるボットは無視します。robots.txtは技術的なアクセス制限ではなく慣習です。

クロールバジェットとは

Googlebotは1サイトに対して1日にクロールできるページ数(クロールバジェット)が決まっています。小規模サイトでは問題になりにくいですが、数千ページ以上の大規模サイトでは重要です。

クロールバジェットが低品質なURLに消費されると、重要なページが頻繁にクロール・再インデックスされなくなります。バジェットを無駄にしやすいURL例:

  • ページネーションURL(/page/2/page/3...)
  • ファセットナビゲーション(/products?color=red&size=M
  • セッションIDやトラッキングパラメーターを含むURL
  • 複数のURLパターンに存在する重複コンテンツ
  • ソフト404ページ(200を返すが「結果なし」と表示するページ)

robots.txtでこれらのパターンをブロックすることで、クロールバジェットを重要ページに集中させられます。

よくある設定ミス

サイト全体を誤ってブロックしてしまう

最も致命的なミスは、User-agent: * の下に Disallow: / を書いてしまうことです。すべてのクローラーがサイト全体をスキップし、時間とともにGoogleのキャッシュが切れてランキングが消えます。

デプロイ後は必ず https://yoursite.com/robots.txt をブラウザで確認してください。 robots.txt チェッカーで構文エラーやサイト全体ブロックを自動検出できます。

CSSやJavaScriptをブロックしてしまう

Googlebotはブラウザと同じようにページをレンダリングします。/wp-content//assets/ をブロックすると、Googlebotがページを正しく描画できず評価が下がります。ブロックするのは管理画面・検索結果ページ・プライベートAPIのみにしてください。

セキュリティ対策としてrobots.txtを使う

robots.txtは誰でもアクセスして内容を見ることができます。Disallow: /secret-admin-panel/ と書くと、その存在を全世界に教えることになります。機密コンテンツには認証やサーバーレベルのアクセス制御を使ってください。

ファイルの置き場所が違う

robots.txtはドメインルートにのみ有効です。https://example.com/blog/robots.txt はすべてのクローラーに無視されます。

サービス別 robots.txt の設置方法

WordPress

  • Yoast SEO:「SEO」→「ツール」→「ファイルエディター」→「robots.txt」タブから直接編集できます(FTP不要)。
  • Rank Math:「Rank Math」→「一般設定」→「robots.txt編集」から設定できます。
  • 手動:FTPまたはホスティングのファイルマネージャーで、wp-config.php と同じWordPressルートディレクトリに robots.txt をアップロードします。

Shopify

  1. 「オンラインストア」→「テーマ」→「アクション」→「コードを編集」を開く。
  2. テンプレートフォルダの robots.txt.liquid を選択(なければ作成)。
  3. 本ツールで生成したルールに置き換えると即時反映されます。

静的サイト(Next.js・Astro・Hugo)

Next.jsやCreate React Appは public/ フォルダ、Hugo・Astroは static/ フォルダに robots.txt を置くと、ビルド時に自動的にサイトルートに配信されます。

設置後の確認方法

  • ブラウザで https://yoursite.com/robots.txt を開いて内容を確認する。
  • Google Search Console の「設定」→「robots.txt」から特定URLのブロック状態をテストできます。
  • robots.txt チェッカーで構文エラー・AIクローラーブロック状況を一括診断できます(アカウント不要)。
  • URLインスペクションツールで、Googlebotが実際にそのページにアクセスできるか確認できます。

よくある質問(FAQ)

robots.txtでブロックすればGoogleの検索結果から消えますか?
消えるとは限りません。robots.txtはクロールを止めるだけで、インデックスからの除外を保証しません。外部サイトからリンクされているページはURLをクロールなしで検索結果に表示することがあります。確実に除外するにはnoindexメタタグを設定するか、Google Search Consoleの削除ツールを使ってください。
変更はどのくらいで反映されますか?
Googleはrobots.txtを約24時間ごとに再取得しますが、古いバージョンを数日キャッシュすることがあります。緊急の変更はGoogle Search ConsoleからCacheの更新リクエストができます。
小規模サイトでもrobots.txtは必要ですか?
必須ではありませんが推奨します。Sitemapディレクティブをrobots.txtに記載するだけでGoogleがコンテンツをより早く発見できます。管理画面や非公開ページがあれば、それをブロックするためにrobots.txtは有効です。
サブドメインでも同じrobots.txtが有効ですか?
いいえ。各サブドメインに独自のrobots.txtが必要です。example.comのrobots.txtはblog.example.comには適用されません。
特定のファイル形式(PDF等)をブロックできますか?
できます。ワイルドカードを使います:Disallow: /*.pdf でPDFファイルを、Disallow: /*.json でJSONファイルをすべてブロックできます。

まとめ

  • robots.txtはクロールを制御するもの——検索結果からの除外にはnoindexを使う。
  • Sitemapディレクティブを必ず記載し、クローラーがコンテンツを効率よく発見できるようにする。
  • 管理画面・検索結果URL・低品質ページネーションをブロックしてクロールバジェットを節約する。
  • AIクローラー(GPTBot・ClaudeBot等)をブロックしたい場合、User-agentごとにDisallow: /を設定する。
  • CSSやJavaScriptは絶対にブロックしない——Googlebotがレンダリングできなくなる。
  • robots.txtはセキュリティ対策にならない——公開ファイルなので機密情報を書かない。
  • 変更後は必ずGoogle Search Consoleでテストする。

今すぐ使う: robots.txt ジェネレーターチェッカーで検証テンプレート集