目次を見る07

noindexが効かない原因はrobots.txt|確実な削除手順

Wemiro編集部読了目安 11
noindexrobots.txt技術SEOインデックス管理

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 のブロックだけでは目的を果たせない、と整理できます。

論理を並べると矛盾が一目で分かります。

  1. robots.txt で Disallow すると、Googlebot(Googleの巡回ロボット)はそのページを開きに来ません
  2. ページを開かなければ、HTML の中に書いた <meta name="robots" content="noindex">読み取れません
  3. 読み取れない指示は、当然実行されません

だから「消したいから robots.txt でブロックし、念のため noindex も付けた」という一見厳重な設定が、実際には noindex を封印してしまい逆効果になるのです。しかも robots.txt でブロックされていても、他サイトからリンクされているとURL自体は検索結果に残ることがあり、これが冒頭の「説明文が空っぽのまま残る」状態を生むことがあります。中身を読めていないので、Google は要約文を作れないわけです。

確実に消す5ステップ(実機での順序)

ここからが本題です。すでにインデックスされてしまったページを、確実に検索結果から消すには、順序が決定的に重要です。noindex を読ませてから、再びブロックする——この順番を守ります。

  1. robots.txt の Disallow を一時的に外す。対象URLを巡回できる状態に戻します。Disallow: /old-page/ のような行をコメントアウトするか削除します。ここを外さないと、以降のステップがすべて空振りします。

  2. ページに noindex を設置する。HTMLページなら <head> 内に次を入れます。

    <meta name="robots" content="noindex">
    

    noindex は <meta> タグだけでなく、レスポンスヘッダーでも指定できます。PDFや画像など、HTMLに <head> を書けない形式には、こちらのHTTPレスポンスヘッダーで返します。

    HTTP/1.1 200 OK
    X-Robots-Tag: noindex
    
  3. Search Console の「URL検査」で再クロールをリクエストする。対象URLを検査ツールにかけ、「インデックス登録をリクエスト」を押して再クロールを促します。ステップ1でブロックを外してあるので、クロールされれば noindex が読み取られる状態になっています。あとは再クロールを待ちます。

  4. インデックスから消えたことを確認する。再クロールと反映には時間がかかることがあるため、しばらくおいてから、site: 検索(例: site:example.com/old-page/)や Search Console の「URL検査」で、対象URLが検索対象から外れたかを確かめます。ここで消えていなければ、noindex がまだ読まれていない(キャッシュが残っている・ヘッダーが返っていない等)ので、ステップ2〜3を見直します。

  5. 必要なら 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 を進めるのが定石です。

そもそも「なぜインデックスされない/されてしまうのか」をステータスから切り分けたい場合は、インデックスされないページの原因を「未登録ステータス」から切り分けるもあわせて確認してください。

出典

  1. Google 検索セントラル - noindex を使用して検索結果から除外する
  2. Google 検索セントラル - robots.txt の概要
  3. Search Console ヘルプ - 削除ツールと古いコンテンツの削除ツール

NEXT STEP

クライアントへの説明に使える実際の画面を見てみませんか

ご自身の目で、GA4・Search Consoleのデータがどう整理されるかを確認いただけます。

無料デモを見てみる