robots.txtとnoindexは別の問題を解決します。覚え方はシンプルです。robots.txtはクローラーがURLを取得してよいかを制御し、noindexは対応する検索システムにそのページをインデックスしないよう伝えます。
Googleは、通常のWebページを検索結果から確実に除外する目的でrobots.txtを使わないよう案内しています。DisallowされたURLでも、外部リンク、サイトマップ、過去のクロールなどからURL自体を発見できるため、内容を取得できなくてもURLだけが検索結果に表示される場合があります。
4つの制御を区別する
| 制御 | 主な目的 | 設定場所 | ページ取得が必要? |
|---|---|---|---|
robots.txtのDisallow | クロールを減らす・止める | /robots.txt | いいえ |
<meta name="robots" content="noindex"> | HTMLをインデックスしない | HTMLのhead | はい |
X-Robots-Tag: noindex | PDFなども含むインデックス制御 | HTTPヘッダー | はい |
| 認証・認可 | アクセス自体を保護 | サーバー・アプリ | 公開アクセスさせない |
noindexはページやレスポンスの中にあるため、クローラーがそのURLを取得できなければ読み取れません。
よくある失敗設定
User-agent: *
Disallow: /members-preview/
同時にページへ次を設定したとします。
<meta name="robots" content="noindex">
意図は「クロールもインデックスも止める」ですが、robots.txtで取得を拒否するとGooglebotはnoindexを確認できません。URLが別経路から発見されれば、「robots.txtでブロックされているがインデックスされている」状態になることがあります。
公開ページを検索結果から外したいだけなら、一般にはクロールを許可し、ページ側でnoindexを返す方が明確です。
robots.txtを使う場面
robots.txtは、クロール負荷や不要なURL空間を制御したいときに向いています。たとえば内部検索、カート、セッション、重複するフィルターURLなどです。
User-agent: *
Disallow: /internal-search/
Disallow: /cart/
Allow: /
Sitemap: https://example.com/sitemap.xml
ただし、大きなディレクトリをブロックする前に重要ページが含まれていないか確認してください。
noindexを使う場面
URLは公開したまま、検索結果には表示したくない場合にnoindexを使います。HTMLではrobots meta、PDFなど非HTMLではX-Robots-Tagが便利です。
<meta name="robots" content="noindex">
X-Robots-Tag: noindex
どちらもクローラーがレスポンスを取得できることが前提です。
「クロール済みではないのにインデックス」がおかしくない理由
クロールとインデックスは同じ処理ではありません。検索エンジンはリンク、サイトマップ、リダイレクト、履歴などからURLの存在を知ることができます。したがって、robots.txtで現在の本文取得を止めてもURL自体が知られていることはあります。
Search Consoleでrobots.txtブロックに関するインデックス状態を見たら、まずそのURLを本当に非公開にしたいのか、公開だが検索結果だけ除外したいのかを整理します。前者なら認証、後者ならクロール可能な状態でnoindexが基本です。
robots.txt内のNoindexは使わない
古い記事には次のような例が残っています。
Noindex: /example/
Googleはrobots.txt内のnoindexをサポートしていません。インデックス制御はmeta robotsまたはX-Robots-Tagで行います。
AI検索でも同じ考え方
OpenAIの現在のFAQも、OAI-SearchBotをブロックすることとnoindexを区別しています。URLを別の経路で知った場合にリンクやタイトルだけ表示されることを避けたい場合、noindexを使い、その指示を読めるようクローラーを許可する必要があります。
迷ったときの判断順序
- 機密情報か? 認証・認可を使う。
- 公開ページだが検索結果には出したくないか? クロールを許可して
noindex。 - インデックスは必要だが不要なURLクロールを減らしたいか? robots.txtを検討。
- 特定クローラーだけ制御したいか? 専用User-agentグループを使い公式仕様を確認。
- 重複URLを整理したいか? canonical、リダイレクト、URL設計も先に検討。
公開後はライブの/robots.txt、HTMLまたはHTTPヘッダーのnoindex、サイトマップ、Search ConsoleのURL検査を確認してください。robots.txtはクロール制御、noindexはインデックス制御、認証はアクセス制御と役割を分けることが、最も予測しやすいSEO設計です。