robots.txtとnoindexの違い|検索に表示されない原因と正しい使い分け
2026/08/18
リニューアル・運用ノウハウrobots.txtとnoindexの違い|まず結論から理解しよう
robots.txtとnoindexは、どちらも検索エンジンに関係する設定ですが、役割はまったく異なります。
最初に結論を整理すると、
robots.txt
→ 検索エンジンのクローラーに「このURLをクロールしないで」と伝える
noindex
→ 検索エンジンに「このページを検索結果へ掲載しないで」と伝える
という違いがあります。
Googleは、robots.txtについてクローラーがどのページやファイルをリクエストできるかを制御する仕組みとして案内しています。一方、noindexはページをGoogleのインデックスから除外し、検索結果に表示されないようにするためのルールです。
この違いを理解しないまま設定すると、
- 検索から消したかったのに残っている
- Googleに見てほしいページをブロックしてしまった
- noindexを設定したのに反映されない
といったSEOトラブルにつながります。
そもそも「クロール」と「インデックス」は何が違う?
robots.txtとnoindexを理解するには、まずクロールとインデックスの違いを知っておく必要があります。
簡単に整理すると、
クロール
→ Googlebotなどの検索エンジンがページを訪れて内容を取得すること
インデックス
→ 取得したページの内容をGoogleが解析し、検索結果に表示できる状態として登録すること
です。
イメージすると、
Googleがページを見に来る=クロール
↓
ページの内容を理解する
↓
検索データベースへ登録する=インデックス
↓
検索結果に表示される可能性が生まれる
という流れです。
robots.txtは最初の「クロール」に関係し、noindexは主に「インデックス」に関係します。
この違いが、今回の記事で最も重要なポイントです。
robots.txtとは?検索エンジンのクロールを制御するファイル
robots.txtでできること
robots.txtは、検索エンジンのクローラーに対して、サイト内のどのURLへアクセスしてよいか、またはアクセスしてほしくないかを伝えるためのテキストファイルです。
通常は、
https://example.com/robots.txt
のように、サイトのルート直下へ設置します。
Googleもrobots.txtは対象ホストのルートに配置する必要があり、サブディレクトリ内に置いても有効にならないと案内しています。
例えば、
- 管理上クロールさせる必要がないURL
- サイト内検索結果など大量にURLが生成される領域
- 重要性の低い類似ページ
などについて、クロールを制御する用途があります。
Googleはrobots.txtを、クロールトラフィックの管理や、重要性の低いページ・類似ページへのクロールを防ぐ用途として案内しています。
robots.txtでできないこと
ここが非常に重要です。
robots.txtは「Google検索に表示しないための設定」ではありません。
Googleは、robots.txtでクロールを禁止したページであっても、他のページからそのURLがリンクされている場合などには、ページ内容をクロールせずURLだけをインデックスする可能性があると説明しています。
つまり、
robots.txtでブロック=検索結果から必ず消える
ではありません。
「検索結果に表示したくない」という目的なら、原則としてnoindexなど別の方法を検討します。
基本的な記述例
例えば、すべてのクローラーに対して/private-directory/以下へのクロールを許可しない場合、考え方としては次のようになります。
User-agent: *
Disallow: /private-directory/
一方、すべてのページをクロール可能にする場合は、特別な制限を設けない構成にします。
robots.txtは書き方を間違えると、サイト全体をクロールできなくしてしまう可能性があります。
そのため、「何となくSEO対策として設定する」ものではありません。
noindexとは?検索結果への掲載を防ぐための設定
noindexとは、検索エンジンに対して、
「このページを検索結果に表示しないでください」
と伝えるためのルールです。
Googlebotがページをクロールし、noindexを確認すると、そのページはGoogle検索結果から除外されます。
Googleは、他サイトからリンクされている場合でも、Googlebotがnoindexを検出すればGoogle検索結果から除外すると説明しています。
HTMLページでnoindexを設定する方法
代表的なのは、HTMLのrobots metaタグを使う方法です。
例えば、
<meta name="robots" content="noindex">
という設定です。
この設定によって、対応する検索エンジンへ「インデックスしない」という指示を出します。
WordPressなどのCMSでは、HTMLを直接編集しなくても、管理画面やSEO関連機能から設定できる場合があります。
PDFなどHTML以外ではX-Robots-Tagを使える
PDFなど、HTMLの<head>内へmetaタグを設置できないファイルについては、HTTPレスポンスヘッダーのX-Robots-Tagを使ってnoindexを指定できます。
Googleも、PDF・動画・画像などHTML以外のリソースについてX-Robots-Tagを利用できると案内しています。
例えば、
- 営業資料PDF
- 過去資料
- 検索から見つけてもらう必要のないファイル
などで検討するケースがあります。
noindexを設定してもすぐ消えるとは限らない
noindexは設定した瞬間にGoogle検索からページを消すスイッチではありません。
Googlebotがそのページを再度クロールし、
「noindexが設定されている」
と認識する必要があります。
Googleは、ページの重要度などによって再クロールまで時間がかかる場合があり、必要に応じてSearch ConsoleのURL検査ツールから再クロールをリクエストできると説明しています。
そのため、
「昨日noindexを入れたのに、今日も検索結果に出ている」
からといって、必ず設定失敗とは限りません。
robots.txtとnoindexの決定的な違いを比較
| 項目 | robots.txt | noindex |
|---|---|---|
| 主な目的 | クロール制御 | インデックス制御 |
| Googlebotのアクセス | ブロックできる | アクセスさせる必要がある |
| 検索結果から除外 | 保証されない | Googlebotが認識すれば除外 |
| 主な設定場所 | ドメイン直下のrobots.txt | metaタグ/HTTPヘッダー |
| ページ単位の検索除外 | 不向き | 適している |
| 機密情報の保護 | 不向き | 不向き |
特に覚えておきたいのは、
検索結果に表示させたくない=noindex
クロールそのものを制限したい=robots.txt
という基本です。
絶対に注意したい「robots.txt+noindex」の組み合わせ
初心者の方が最も間違いやすいのが、この設定です。
「検索に出したくないから、robots.txtでブロックして、さらにnoindexも付けておこう」
一見すると二重に対策できて安全そうですが、逆効果になる可能性があります。
理由は、robots.txtでクロールをブロックすると、Googlebotがページへアクセスできなくなるからです。
Googlebotがページを開けなければ、ページ内にあるnoindexも確認できません。
Googleは明確に、noindexを機能させるにはrobots.txtでページをブロックせず、クローラーがアクセスできる状態にする必要があると案内しています。
つまり、
robots.txt:入るな
noindex:中に入ったら「検索に載せるな」と書いてある
という状態になります。
入れないので、中の指示を読めません。
検索結果から除外したいページなら、
クロールを許可する
↓
Googlebotにnoindexを読ませる
という流れが基本です。
目的別|robots.txtとnoindexの正しい使い分け
検索結果に表示させたくないページ
例えば、
- 検索結果ページ
- ユーザーにとって検索流入させる必要のない完了ページ
- 一部の管理上必要な公開ページ
など、公開状態ではあるもののGoogle検索には載せたくない場合は、noindexを検討します。
ただし「そのページを本当に検索から除外すべきか」は慎重に判断しましょう。
SEO上価値がないと思ってnoindexにしたページが、実は検索流入を持っていた、というケースもあります。
Googlebotのクロールを抑えたいページ
大量のURLが生成されるなど、Googlebotに積極的にクロールしてもらう必要がない領域ではrobots.txtを検討します。
Googleも、robots.txtをクロールトラフィックの管理などに利用できるとしています。
ただし、小規模な企業サイトで、
「SEOに良さそうだから、とりあえずrobots.txtで色々ブロックする」
必要はありません。
むしろ重要なCSS・JavaScriptやページを誤ってブロックするリスクに注意が必要です。
会員限定・社内限定・機密情報を守りたいページ
これはrobots.txtでもnoindexでもありません。
ログイン認証やパスワード保護など、アクセス自体を制限する仕組みが必要です。
robots.txtは誰でも閲覧できるファイルであり、セキュリティ機能ではありません。
noindexも検索結果への掲載を制御するもので、URLを知っている人からページを守る機能ではありません。
Googleも、検索結果に出したくないページについて、必要に応じてパスワード保護などを利用するよう案内しています。
機密情報を守る目的でrobots.txtやnoindexだけを使うのはNGです。
テスト環境・ステージングサイト
リニューアルで特に注意したいのが、制作中のテストサイトです。
テストサイトがGoogleにインデックスされると、
- 本番サイトとほぼ同じ内容が検索される
- 制作途中の情報が一般公開される
- 会社名検索でテストサイトが出る
といった問題につながります。
テスト環境では、noindexだけに依存するのではなく、認証をかけて一般ユーザーや検索エンジンからアクセスできない状態にするのが安全です。
そして本番公開時には、認証・noindex・robots.txtなどのテスト用設定が残っていないか必ず確認します。
検索に表示されない時に確認すべきポイント
noindexが残っていないか
リニューアル後に検索へ出なくなった場合、最優先で確認したいのがnoindexです。
制作中に設定していたnoindexを、本番サイトでもそのまま残してしまう事故があります。
特に、
- トップページ
- サービスページ
- ブログ・お知らせ
- 施工事例
- 採用ページ
など重要ページのnoindexは致命的です。
robots.txtで重要ページをブロックしていないか
robots.txtの設定ミスによって、重要なページ群をGooglebotがクロールできなくなっている可能性もあります。
例えば、
Disallow: /
のような設定は、対象ユーザーエージェントに対してサイト全体へのクロールを禁止する意味になります。
制作環境用の設定を本番へそのまま移さないよう注意しましょう。
WordPressの検索エンジン表示設定を確認する
WordPressでは管理画面に、検索エンジンがサイトをインデックスしないよう促すための設定があります。
制作中に有効にしていた場合、公開時の解除忘れに注意が必要です。
リニューアル公開時のチェックリストに、
「検索エンジン関連設定の確認」
を必ず入れておきましょう。
HTTPヘッダーのX-Robots-Tagを確認する
HTMLを見てもnoindexが見つからないのに検索へ出ない場合、HTTPレスポンスヘッダーにX-Robots-Tagが設定されている可能性があります。
Googleでは、X-Robots-Tagでもnoindexなどのルールを指定できます。
特に、
- サーバー設定
.htaccess- NGINX設定
などが関係する場合は、制作会社やエンジニアへ確認しましょう。
そもそもGoogleにクロールされているか
noindexもrobots.txtも問題がないのに表示されない場合、
- 新しく公開したばかり
- 内部リンクがない
- XMLサイトマップに含まれていない
- GoogleがまだURLを発見していない
など、別の理由も考えられます。
「検索に出ない=noindex」と決めつけず、Search Consoleで状況を確認することが大切です。
リニューアル時に起こりやすいrobots.txt・noindex事故
テスト環境のnoindexを本番に残す
最も危険な事故の一つです。
デザインもフォームも正常なのに、検索流入だけが急激に落ちる可能性があります。
robots.txtでサイト全体をブロックしたまま公開する
制作中にクロールを抑える目的で設定し、そのまま本番公開するケースです。
公開前チェックで必ずrobots.txtを確認します。
noindexページをrobots.txtでもブロックする
先ほど説明した通り、Googlebotがnoindexを確認できなくなる可能性があります。
検索から外したいなら、Googlebotがnoindexを読み取れる状態にすることが必要です。
robots.txt内に「Noindex:」と書く
robots.txtへnoindexを記述して検索結果から除外しようとする方法は、Googleではサポートされていません。
Googleは、noindexはmetaタグまたはHTTPレスポンスヘッダーで実装するよう案内しています。
インデックスさせたい重要ページまでnoindexにする
カテゴリページやサービス詳細などを、「重複しそうだから」という理由だけでnoindexにするのも注意が必要です。
そのページがユーザーの検索意図に応えられるなら、検索流入の入口になる可能性があります。
noindexは、
「SEO評価が低そうだから」ではなく、「検索結果に存在する必要があるか」
で判断しましょう。
設定を確認する方法|Search Consoleでチェックする
robots.txtやnoindexの状態を確認する際は、Google Search Consoleを活用します。
特に便利なのがURL検査ツールです。
対象URLについて、
- Googleにインデックスされているか
- クロールできているか
- noindexが検出されているか
- GoogleがどのURLを正規URLとして認識しているか
などを確認できます。
Googleも、noindexが正しく実装されているか確認する方法としてURL検査ツールやページのインデックス登録レポートを案内しています。
robots.txtについても、Search Consoleのrobots.txtレポートなどを利用して公開済みファイルの問題を確認できます。
「設定したつもり」で終わらず、Googleから実際にどう見えているかを確認することが重要です。
robots.txt・noindexチェックリスト
robots.txt
- robots.txtがドメインのルート直下にある
- 重要ページを誤ってDisallowしていない
- サイト全体を意図せずブロックしていない
- 制作環境用の設定が本番に残っていない
- 「検索から消す目的」でrobots.txtを使っていない
- robots.txtにNoindexルールを書いていない
noindex
- 検索結果に必要なページへnoindexが付いていない
- noindexページをrobots.txtで同時にブロックしていない
- WordPress等の検索エンジン設定を確認している
- HTTPヘッダーのX-Robots-Tagも確認している
- noindex設定後、Search Consoleで認識状況を確認している
リニューアル公開時
- トップページをURL検査した
- 主要サービスページをURL検査した
- robots.txtを確認した
- noindexを全ページ横断で確認した
- XMLサイトマップを確認した
- 旧URL→新URLの301を確認した
- 公開後もSearch Consoleでインデックス状況を監視している
まとめ:検索に出したくない=robots.txtではない
robots.txtとnoindexは似ているようで、役割が明確に違います。
robots.txt
→ クロールを制御する
noindex
→ 検索結果へのインデックスを制御する
そして最も注意したいのが、
robots.txtでクロールを止めると、Googlebotがnoindexを読めなくなる
という点です。
Googleも、noindexを有効にするには、そのページをrobots.txtでブロックせずGooglebotがアクセスできる状態にする必要があると明記しています。
また、robots.txtもnoindexもセキュリティ機能ではありません。
社内限定・会員限定・機密情報など、本当に第三者へ見せたくない情報については、認証などアクセス自体を制限する仕組みが必要です。
特にサイトリニューアルでは、制作中の設定が本番へ残り、検索流入が失われる事故があります。
公開前には、
- robots.txt
- noindex
- X-Robots-Tag
- Search Console
- XMLサイトマップ
をセットで確認し、検索エンジンが正しくサイトをクロール・インデックスできる状態を整えましょう。
無料相談
Refuでは、リニューアル時のrobots.txt・noindex設定確認から、Search Consoleを使ったインデックス状況の調査、301リダイレクト、XMLサイトマップ、公開後のSEO監視まで一括で対応しています。
「リニューアル後に検索に出なくなった」
「noindexが残っていないか確認したい」
「Search Consoleにエラーが出ているけれど原因が分からない」
など、お気軽にご相談ください。
その他おすすめ記事はこちら
301リダイレクト完全ガイド|SEOを落とさずURL変更する手順と注意点
リニューアル後に検索順位が落ちた時の原因チェック|最短で戻す改善手順
