robots.txtガイド

robots.txtとnoindexの違い:クロールとインデックスを正しく制御

robots.txtでクロールを止めてもインデックス削除を保証できない理由、noindexやX-Robots-Tagの使い方、よくある設定ミスを解説します。

Robots.txt Tools Editorial Team による最終確認 2026-09-13約8分で読めます
robots.txtとnoindexの違い:クロールとインデックスを正しく制御

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: noindexPDFなども含むインデックス制御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を使い、その指示を読めるようクローラーを許可する必要があります。

迷ったときの判断順序

  1. 機密情報か? 認証・認可を使う。
  2. 公開ページだが検索結果には出したくないか? クロールを許可してnoindex。
  3. インデックスは必要だが不要なURLクロールを減らしたいか? robots.txtを検討。
  4. 特定クローラーだけ制御したいか? 専用User-agentグループを使い公式仕様を確認。
  5. 重複URLを整理したいか? canonical、リダイレクト、URL設計も先に検討。

公開後はライブの/robots.txt、HTMLまたはHTTPヘッダーのnoindex、サイトマップ、Search ConsoleのURL検査を確認してください。robots.txtはクロール制御、noindexはインデックス制御、認証はアクセス制御と役割を分けることが、最も予測しやすいSEO設計です。

実務では「見せたくない理由」を分けます

URLを検索結果から外したいだけなのか、crawlerの負荷を減らしたいのか、重複URLを整理したいのか、そもそも外部ユーザーに見せたくないのかで正しい手段は変わります。公開ページを検索結果から外す目的なら、crawlerがページを取得できる状態で noindex を返すことが重要です。PDFやfeedなどHTMLの <head> を持たないresourceでは X-Robots-Tag: noindex をHTTP responseに付ける方法もあります。

一方、個人情報や管理画面のように本当に非公開であるべきresourceは、robots.txtやnoindexではなくauthenticationやauthorizationで保護します。robots.txtは誰でも読めるpublic fileであり、秘密のURLを守る仕組みではありません。

変更後は三つの層を確認します

対象URLについて、robots.txtのcrawl判定、HTMLまたはHTTP headerのindex directive、最終的なHTTP statusを同時に確認します。Disallow と noindex を併用した場合、crawlerがpageを取得できずnoindexを読めないことがあります。検索結果からの削除が目的なら、その矛盾が起きていないかを最優先で確認します。

関連ガイド