noindexが効かない原因はrobots.txt|確実な削除手順
noindexを付けたのに、なぜか検索結果に残り続ける
不要になった古いページや、検索結果に出したくない管理用ページに noindex(検索結果にページを表示させないための指示タグ)を設定した——それなのに、何週間経っても検索結果に出続ける。しかも表示されるのは、説明文(スニペット=検索結果に出るページの要約文)が空っぽで、タイトルとURLだけが寂しく残った状態。自分のサイトを運用していると、これは意外とよく踏む落とし穴です。
原因の多くは、noindex の設定ミスではありません。noindex を「robots.txt でクロールを止めているページ」に付けてしまっている——この組み合わせが、削除を効かなくしています。この記事では、なぜこの2つが矛盾するのかを仕組みから説明し、確実にインデックス(検索エンジンにページが登録されること)から消し去るための5ステップを、実装担当者が手を動かせる粒度で解説します。
なぜ「noindex+robots.txtブロック」だと消えないのか
まず、2つの指示がそれぞれ何をするものかを分けて理解します。混同されがちですが、役割はまったく別物です。
| 指示 | 何をするものか(公式ドキュメントの説明) |
|---|---|
robots.txt の Disallow | クローラー(サイトを巡回するロボット)にどのURLを処理してよいかを伝える指示。クロールのリクエスト数を制限してサーバーの負荷を下げるために使う |
| noindex(metaタグ / HTTPヘッダー) | ページを索引に入れないための指示。機能するには、ページがクローラーからアクセス可能で robots.txt でブロックされていない必要がある |
robots.txt について、Google の公式ドキュメントは「クローラーがどのURLを処理してよいかを伝える指示を書くファイルで、クロールのリクエスト数を制限してサーバーの負荷を下げるために使う」ものだと説明しています。つまり robots.txt が担うのは巡回の交通整理です。
一方 noindex は、<meta> タグやHTTPレスポンスヘッダーで指定する「このページを索引に入れないで」というルールです。ここが今回の核心なのですが、Google のドキュメントには noindex が機能するには、ページがクローラーからアクセス可能で、robots.txt でブロックされていない必要がある と明記されています。この2つを突き合わせると、検索結果から外したいときに頼るべきは noindex 側で、robots.txt のブロックだけでは目的を果たせない、と整理できます。
論理を並べると矛盾が一目で分かります。
- robots.txt で
Disallowすると、Googlebot(Googleの巡回ロボット)はそのページを開きに来ません。 - ページを開かなければ、HTML の中に書いた
<meta name="robots" content="noindex">を読み取れません。 - 読み取れない指示は、当然実行されません。
だから「消したいから robots.txt でブロックし、念のため noindex も付けた」という一見厳重な設定が、実際には noindex を封印してしまい逆効果になるのです。しかも robots.txt でブロックされていても、他サイトからリンクされているとURL自体は検索結果に残ることがあり、これが冒頭の「説明文が空っぽのまま残る」状態を生むことがあります。中身を読めていないので、Google は要約文を作れないわけです。
確実に消す5ステップ(実機での順序)
ここからが本題です。すでにインデックスされてしまったページを、確実に検索結果から消すには、順序が決定的に重要です。noindex を読ませてから、再びブロックする——この順番を守ります。
-
robots.txt の
Disallowを一時的に外す。対象URLを巡回できる状態に戻します。Disallow: /old-page/のような行をコメントアウトするか削除します。ここを外さないと、以降のステップがすべて空振りします。 -
ページに noindex を設置する。HTMLページなら
<head>内に次を入れます。<meta name="robots" content="noindex">noindex は
<meta>タグだけでなく、レスポンスヘッダーでも指定できます。PDFや画像など、HTMLに<head>を書けない形式には、こちらのHTTPレスポンスヘッダーで返します。HTTP/1.1 200 OK X-Robots-Tag: noindex -
Search Console の「URL検査」で再クロールをリクエストする。対象URLを検査ツールにかけ、「インデックス登録をリクエスト」を押して再クロールを促します。ステップ1でブロックを外してあるので、クロールされれば noindex が読み取られる状態になっています。あとは再クロールを待ちます。
-
インデックスから消えたことを確認する。再クロールと反映には時間がかかることがあるため、しばらくおいてから、
site:検索(例:site:example.com/old-page/)や Search Console の「URL検査」で、対象URLが検索対象から外れたかを確かめます。ここで消えていなければ、noindex がまだ読まれていない(キャッシュが残っている・ヘッダーが返っていない等)ので、ステップ2〜3を見直します。 -
必要なら robots.txt を再設定する。インデックスから消えたのを確認してから、クロール負荷を減らしたいなどの理由があれば
Disallowを戻します。ここで先に戻すと、また noindex が読まれなくなるので、順番を絶対に逆にしないことがポイントです。
ワークスルー:/campaign-2023/ を消す
具体例で通してみます。昨年のキャンペーンページ https://example.com/campaign-2023/ が、Disallow: /campaign-2023/ を書いたうえに noindex も付けたのに、検索結果に「説明文なし」で残っている——という典型ケースです。
- ステップ1: robots.txt から
Disallow: /campaign-2023/を削除。 - ステップ2: 該当ページの
<head>に<meta name="robots" content="noindex">があることを確認(無ければ追加)。 - ステップ3: Search Console でURL検査 → 再クロールをリクエスト。
- ステップ4: 反映を待ってから
site:example.com/campaign-2023/で検索。ヒットしなくなっていれば成功。 - ステップ5: このページは今後アクセスも不要なので、
Disallowは戻さず、そのまま noindex を残しておく(あるいはページ自体を410で削除する)。
多くの場合、ステップ5で robots.txt を戻す必要はありません。noindex が付いていてクロールできる状態なら、robots.txt でブロックしなくても索引には入らないからです。robots.txt を戻したくなるのは、クロール負荷を明確に下げたい大規模ディレクトリなどに限られます。
「今すぐ消したい」ときの一時削除ツールとの使い分け
「来週の会議までに検索結果から消えていてほしい」——noindex の反映を待てないときは、Search Console の非表示ツール(旧・削除ツール)を併用します。ただし性質を誤解しないことが重要です。
Search Console の非表示ツールについて、ヘルプは 一定の期間(180日間)検索結果から非表示にするためのものだと説明しています。あくまで一時的な非表示であり、恒久的な削除ではありません。恒久的にインデックスから外すには、公式ドキュメントが挙げるとおり、パスワードによる保護、noindex(metaタグまたはレスポンスヘッダー)の設定、またはページ自体の完全な削除が必要です。
そのため、使い分けはこうなります。
- 非表示ツール: 約180日間、検索結果から一時的に非表示にする時間稼ぎと捉えます。期間限定なので、これだけで終わらせないのが前提です。
- noindex(+クロール可能な状態): 恒久的にインデックスから外すための本命の対処です。反映にはある程度の時間がかかりますが、根本対処はこちらになります。
正しい流れは、非表示ツールで急場をしのぎつつ、裏で上記5ステップの noindex 対処を進めることです。一時的な非表示だけで安心して noindex を入れ忘れると、期間が切れたタイミングでまた表示されかねません。
つまずきやすいポイントと誤解
- robots.txt に「noindex」と書く方法: 昔使えたと聞いて robots.txt 内に noindex ディレクティブを書こうとする人がいますが、これは確実な方法ではありません。noindex は
<meta>タグかHTTPヘッダーで指定します。 - URLだけ残る現象: 「説明文がありません」状態で残るのは、多くの場合クロールがブロックされていて中身を読めていないサインです。noindex の有無以前に、まず robots.txt を疑ってください。
- 機密ページの扱い: 会員限定ページやログイン後のページなど、絶対に外に出したくない情報は、noindex だけに頼らないほうが安全です。noindex は「検索結果に出さない」指示であって「アクセスを防ぐ」ものではないため、パスワード保護やサーバー側のアクセス制限を併用するのが確実です。
- 反映を待てずに順番を崩す: 一番多い失敗が、ステップ4の確認前に robots.txt を戻してしまうことです。確認するまでブロックは戻さない、と決めておきましょう。
自己点検チェックリスト
自分のケースがどの状態か、下の表で当てはめてみてください。
| 症状 | 疑うべき原因 | まずやること |
|---|---|---|
| noindexを付けたのに検索結果に残る | robots.txt でブロックしていて noindex が読まれていない | robots.txt の Disallow を一時解除し、URL検査で再クロール |
| タイトル・URLだけ残り説明文が空 | クロール不可でGoogleが中身を読めていない | robots.txt を確認し、クロール可能にする |
| 今すぐ見え方を抑えたい | 反映待ちの時間を稼ぎたい | 非表示ツールで一時的に隠しつつ、裏でnoindexを進める |
| 会員ページを守りたい | noindexだけでは不十分 | 認証・パスワード保護など、アクセス制限を併用する |
まとめ
noindex が効かない最大の原因は、robots.txt でクロールを止めているせいで noindex そのものが読まれていないことです。robots.txt は巡回の交通整理、noindex は検索結果からの除外——役割が違うこの2つを重ねがけすると、かえって削除が止まります。確実に消すには、①robots.txt を一時解除 → ②noindex を設置 → ③再クロール申請 → ④消えたか確認 → ⑤必要なら再設定、の順番を守ること。急ぐときは削除ツールで一時非表示にしつつ、裏で noindex を進めるのが定石です。
そもそも「なぜインデックスされない/されてしまうのか」をステータスから切り分けたい場合は、インデックスされないページの原因を「未登録ステータス」から切り分けるもあわせて確認してください。
出典
