noindexタグとは?実装方法(meta/X‑Robots‑Tag)・WordPress設定・robots.txtの注意点を完全解説

noindexタグとは — 基本の理解

noindexタグは、検索エンジンに対して「このページを検索結果に表示しないでください」と指示するための仕組みです。最も一般的なのはHTMLのメタタグで、ページ内に次のように記述します。

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

ここで「noindex」はインデックス(検索結果への登録)を禁じ、「nofollow」はページ上のリンクを追跡(クローリング)したりリンク評価を伝えたりしないように求めるものです。複数の指示はカンマで区切ります。

noindexの種類と実装方法

  • HTMLメタタグ(meta name="robots") — HTMLページに埋め込む最も一般的な実装。ページがクロールされたときにタグを読み取って適用されます。

  • HTTPヘッダー(X-Robots-Tag) — 非HTMLファイル(画像、PDFなど)やサーバーレスポンス単位で制御したい場合に使います。例:

    Header set X-Robots-Tag "noindex, nofollow"
  • 検索エンジン専用メタタグ<meta name="googlebot" content="noindex"> のように特定のクローラだけを対象にする指定も可能です(GoogleやBingなどは各自の専用タグをサポートしています)。

クローリングとインデックスの違い — よくある誤解

重要な点は「クロール(巡回)」と「インデックス(登録)」は別の処理だということです。robots.txtのDisallowはクローラにそのURLの巡回を禁じますが、検索エンジンがそのURLを外部リンクなどから把握していれば、ページ内容を見られないままURLだけがインデックスされることがあります。逆に、noindexはクロールされてタグが見えることが前提で機能するため、noindexを有効にするページをrobots.txtでブロックしてしまうと期待通りに動かないことがあります。

主要検索エンジンの挙動(ポイント)

  • Google:meta robots や X-Robots-Tag をサポート。noindex を確認するためにページがクロール可能である必要があります。robots.txt内の非標準「noindex」は基本的に対応していません。
  • Bing:meta robots と X-Robots-Tag をサポートします。
  • その他(Yandex、Baidu 等):エンジンごとに対応状況が異なるため、国・地域向けサイトでは各エンジンのドキュメント確認が必要です。

noindexの使いどころ(実務的ケース)

  • サンクスページやフォーム送信後の確認ページ(検索結果に出す必要がない)。
  • 重複コンテンツになりやすいタグページやカテゴリページ、内部検索結果ページ。
  • テスト環境やステージング環境(公開前に検索に出ないようにする)。
  • 個人情報や契約情報のように検索に出すべきでないページ。

ワードプレスでの設定方法(具体例)

WordPressでは一般的に次の方法でnoindexを設定します。

  • SEOプラグイン(Yoast SEO、Rank Math 等)のページ毎設定 — 投稿や固定ページのメタ設定で「noindex」を選べます。
  • テーマのヘッダーに直接メタタグを埋め込む(functions.phpで条件分岐して出力する方法など)。
  • サーバー側でX-Robots-Tagを送信(PDFや画像、特定のURLパスに対して有効)。

注意点と落とし穴

  • robots.txtと併用するときの注意:noindexを使うページをrobots.txtでDisallowしてしまうと、検索エンジンはページをクロールできず、metaタグを確認できないためnoindexが機能しないことがあります。ページを確実にインデックスから外したいなら、robots.txtでブロックするのは避け、noindexを含めて公開状態(HTTP 200)でクロール可能にしておくのが基本です。
  • 即時性はない:noindexを追加しても検索結果から完全に消えるまでには時間がかかる(数日〜数週間)。急ぎで検索結果から削除したい場合はGoogle Search Consoleの「削除」ツールを併用できますが、これは一時的な措置であり根本的な除外はnoindexや適切なステータス(404/410、パスワード保護)で対応する必要があります。
  • canonicalとの関係:canonicalとnoindexの両方が設定された場合の挙動は複雑です。一般にnoindexが設定されたページはインデックス対象外になりますが、クロール時のシグナル合成により検索エンジンは正規化(canonical)を優先するケースもあるため、目的に応じてどちらを使うかを明確に設計してください。
  • リンク評価(PageRank)の扱い:meta robotsで「noindex, follow」とした場合、検索エンジンはページ自体をインデックスしないがリンクはたどることができます。逆に「nofollow」を付ければリンクはたどらない(あるいは評価を伝えない)指示になります。実際のリンク評価伝達の挙動はエンジン側の実装に依存します。

サーバー側でのX-Robots-Tag例(Apache/nginx)

例:Apache (.htaccess)

Header set X-Robots-Tag "noindex, nofollow"

例:nginx(location 指定)

add_header X-Robots-Tag "noindex, nofollow";

(補足)nginxのadd_headerはレスポンスコードや設定の場所によって挙動が変わるため、実環境ではテストしてから本番適用してください。

noindexを使う代替手段・併用方法

  • パスワード保護(HTTP認証):検索エンジンに完全に非公開にする最も確実な方法。インデックス化を防げます。
  • HTTPステータス 404 / 410:恒久的にページを削除したい場合は適切なステータスを返すと良いです(検索エンジンは該当URLをインデックスから除外します)。
  • robots.txt(Disallow):クロールを防ぐために有効ですが、インデックスのコントロールには限界がある点に注意。

動作確認と監視

  • Google Search Consoleの「URL検査」で該当ページをテストし、GooglebotがmetaタグやX-Robots-Tagを正しく認識しているか確認します。
  • 手動でページをクロールし、HTMLヘッダーにmeta robotsが出力されているか、HTTPヘッダーにX-Robots-Tagが含まれているかを確認します(curl -I 等でHTTPヘッダーを確認)。
  • サイトマップ(sitemap.xml)からnoindexページは削除しておくと検索エンジン側の余計なシグナルを減らせます。

まとめ(実践チェックリスト)

  • ページの内容が検索に出すべきでないならnoindexを使う。
  • noindexを機能させるにはページが検索エンジンにクロール可能であること(robots.txtでブロックしない)を確認する。
  • 非HTMLファイルやレスポンス単位で制御したい場合はX-Robots-Tagを検討する。
  • WordPressではSEOプラグインやテーマ側のヘッダー出力で容易に設定可能。
  • 変更後はSearch Console等で認識を確認し、サイトマップは整備する。

参考文献