この記事の要点:
- noindexは、ページを検索結果に表示しないよう検索エンジンに伝える指定です。HTMLページはrobotsメタタグ、PDFなどはHTTPヘッダーのX-Robots-Tagで書きます。
- noindexはページを読んでもらって初めて効くため、robots.txtでクロールを止めたページに付けても気づかれません。
- 重複をまとめるならcanonical、移転は301、不要なページは削除、人に見せたくないものは閲覧制限と、目的によって手段を分けます。
- WordPressでは表示設定・SEOプラグイン・記事ごとの設定・テーマの複数の場所からnoindexが付くため、公開されたページそのものを確かめます。
- 付いているかどうかは、ページのソース、HTTPヘッダー、Search ConsoleのURL検査とページのインデックス登録レポートで確認します。
noindexとは
noindexとは、ページを検索結果に表示しないよう検索エンジンに伝える指定です。Googleはページをクロールしてnoindexを見つけると、ほかのサイトからリンクされていても、そのページを検索結果から外します。
サイト全体ではなく、ページ(またはファイル)単位で使う指定です。「検索結果に出す価値が薄いページ」や「出すと困るページ」を外すことで、検索から来た人が役に立つページだけにたどり着けるようにします。
Googleがnoindexを反映するまでの流れ
- Googlebot(Googleのクローラー)がページのURLを見つけ、取得します。
- HTMLのrobotsメタタグ、またはHTTPヘッダーのX-Robots-Tagを読みます。
- noindexがあれば、そのページを検索結果に出しません。すでに出ていた場合は、次のクロール以降に外れます。
つまり、noindexは「ページを読んでもらって初めて効く」指定です。クロールを止めてしまうと、noindexにも気づいてもらえません。この点は後の「robots.txtとの違い」で詳しく説明します。
nofollowとの違い
nofollowは「このページにあるリンクをたどらないでほしい」という指定で、検索結果に出すかどうかとは別の話です。両方を指定したいときは、content="noindex, nofollow"のようにカンマで区切って並べます。検索結果から外したいだけなら、noindexだけで足ります。
noindexを使うページ・使わないページ
noindexは「検索から来た人に見せる必要がないページ」に使います。迷ったときは、そのページが検索結果に出たら、検索した人が満足するかを考えます。
| ページの例 | 判断 | 理由 |
|---|---|---|
| サイト内検索の結果ページ(例:/search?q=靴) | noindex | 検索結果の中にさらに検索結果が出る形になり、内容も入力ごとに変わる |
| お問い合わせ完了・購入完了(サンクス)ページ | noindex | 手続きの途中でしか意味がない |
| カート・マイページ・ログイン画面 | noindex、またはログインで保護 | 利用者ごとの画面で、検索から来ても使えない |
| 記事がまだ0件のカテゴリー一覧 | noindex(記事が入ったら外す) | 中身のないページになる |
| 終了したキャンペーンのページ | 内容による | 後継ページがあれば301、案内として残すなら公開のまま、不要なら削除も選べる |
| 似た内容の重複ページ(並び替え違いなど) | 多くはcanonical | 評価を正規URLにまとめられる。noindexだと単に外れるだけ |
| 集客したい記事・サービスページ | 使わない | 付いていたら事故。最優先で外す |
例:工務店のサイトで「施工事例」のタグ一覧が数十個あり、1件しか事例がないタグが多い場合。タグ一覧を全部noindexにするより、事例が3件以上あるタグだけ残し、ほかは親カテゴリーにまとめる方が、利用者にも検索エンジンにも分かりやすくなります。noindexは「出さない」指定であって、薄いページを良くする手段ではありません。
なお、サイト全体を一時的に止めたい場合にnoindexを使うことは、Googleが勧めていません。URLが検索結果から外れ、再開しても元の表示に戻るまで時間がかかるためです。
noindexの書き方
robotsメタタグ(HTMLページ)
HTMLの<head>の中に、次のように書きます。<body>の中に書いても指定として扱われません。
<!-- すべての検索エンジンが対象 -->
<meta name="robots" content="noindex">
<!-- Googleだけを対象にする -->
<meta name="googlebot" content="noindex">
<!-- リンクもたどらせない場合 -->
<meta name="robots" content="noindex, nofollow">
1ページにrobotsメタタグが複数あり、指定が食い違う場合、Googleはより制限の強い方を採ります。テーマとプラグインが別々に出力していないかを確認します。
X-Robots-Tag(HTTPヘッダー)
サーバーが返すHTTPヘッダー(ページの本体とは別に送られる情報)で指定する方法です。PDFや画像など、メタタグを書けないファイルに使います。
HTTP/1.1 200 OK
X-Robots-Tag: noindex
Apacheでは、.htaccessに次のように書くと、PDFファイルすべてにnoindexを付けられます(mod_headersが有効な場合)。
<Files ~ ".pdf$">
Header set X-Robots-Tag "noindex"
</Files>
nginxでは、サーバー設定の該当するlocationに書きます。
location ~* .pdf$ {
add_header X-Robots-Tag "noindex";
}
メタタグとX-Robots-Tagの効き目は同じです。HTMLページはメタタグ、HTML以外のファイルや「ディレクトリ全体」のようにまとめて指定したいときはヘッダー、と使い分けると管理しやすくなります。
noindex・robots.txt・canonical・301・削除の使い分け
「検索結果に出したくない」「評価をまとめたい」という目的でも、使う手段は状況で変わります。まず次の表で選びます。
| やりたいこと | 使う手段 | 理由・注意 |
|---|---|---|
| ページは残すが、検索結果には出さない | noindex | クロールは許可したままにする |
| 大量のURLをクロールさせず、サーバー負荷を抑えたい | robots.txt | 検索結果から外す指定ではない。URLだけ表示されることがある |
| ほぼ同じ内容のURLが複数あり、代表を伝えたい | canonical | どのURLも閲覧できるまま、評価を正規URLにまとめる |
| URLを変えた・ページを統合した | 301リダイレクト | 利用者も検索エンジンも新しいURLに移る |
| ページが不要になり、後継もない | 削除(404・410) | noindexで残しておく必要はない |
| 社外に見られては困る(公開前・社内資料) | パスワードなどで閲覧制限 | noindexは人のアクセスを止めない |
| 今すぐ検索結果から一時的に隠したい | Search Consoleの「削除」+恒久的な対処 | 削除リクエストは一時的。noindexや削除を併せて行う |
robots.txtと組み合わせない
- robots.txtでクロールを止めたページは、Googleが中身を読めないため、noindexに気づけません。
- その結果、ほかのページからのリンクをもとに、URLだけが検索結果に表示されることがあります。
- Googleは、robots.txtの中にnoindexと書く方法をサポートしていません。
検索結果から外したいページは、robots.txtでブロックせず、クロールを許可したうえでnoindexを付けます。外れたことを確認した後にrobots.txtでブロックすると、次にnoindexを外したいときに気づいてもらえなくなる点にも注意します。
WordPress・SEOプラグインで確認する設定
WordPressでは、noindexが管理画面の複数の場所から付くため、意図しない付与が起きやすくなります。次の順で確認します。
- 「設定」→「表示設定」の「検索エンジンでの表示」:「検索エンジンがサイトをインデックスしないようにする」にチェックがあると、全ページにnoindexが出力されます。制作中にオンにしたまま公開する事故が多い項目です。
- SEOプラグインの「検索での表示」設定:投稿タイプ(投稿・固定ページ)、カテゴリー、タグ、投稿者アーカイブ、日付アーカイブごとに「検索結果に表示する/しない」を選べるものが多くあります。集客したい一覧が「表示しない」になっていないかを見ます。
- 記事ごとの設定:投稿画面の下や横に、記事単位でnoindexを選ぶ欄があるプラグインがあります。既存の記事を複製して新しい記事を作ると、この設定まで引き継がれることがあります。
- テーマの独自設定:テーマ側にもnoindexの項目を持つものがあります。プラグインと二重に出力されていないか、ソースで確かめます。
- サイトマップの設定:noindexのページがXMLサイトマップに残っていないかを見ます。多くのSEOプラグインはnoindexのページを自動で外しますが、キャッシュが古いと残ることがあります(XMLサイトマップとは)。
設定画面の表示だけで判断せず、ページのソースやSearch ConsoleのURL検査で、公開されたページそのものを確かめます。
noindexが付いているかを確かめる方法
1. ページのソースを見る
ブラウザでページを開き、右クリックの「ページのソースを表示」で「robots」を検索します。<meta name="robots" content="noindexが見つかれば付いています。JavaScriptで後から書き換えるサイトでは、ソースと実際の表示が違うことがあるため、次のURL検査も使います。
2. HTTPヘッダーを見る
X-Robots-Tagはソースに出ません。ターミナルで次のように打つと、ヘッダーだけを確認できます。
curl -I https://example.com/files/price.pdf
結果にX-Robots-Tag: noindexの行があれば付いています。ブラウザの開発者ツールの「ネットワーク」タブでも確認できます。
3. Search ConsoleのURL検査
- Search Consoleの上部の検索欄(URL検査)に、確かめたいページのURLを入力します。
- 「ページのインデックス登録」を開き、「インデックス登録を許可しますか?」の欄を見ます。noindexが見つかった場合は「いいえ」と、検出された場所(robotsメタタグかX-Robots-Tagか)が表示されます。
- 設定を直した直後は「公開URLをテスト」を押し、今のページの状態を確かめます。結果に表示されるのは前回クロール時の情報だからです。
- 問題がなければ「インデックス登録をリクエスト」を押し、再クロールを依頼します。
4. ページのインデックス登録レポート
サイト全体では、「インデックス作成」→「ページ」の一覧で、理由が「noindex タグによって除外されました」のURLをまとめて確認できます。意図して外したページ以外が入っていないかを見ます。登録済みのページ数(インデックス数)の調べ方と、数を増やすべきでないページの見分け方は「インデックス数とは」で説明しています。サイトマップで送信したURLにnoindexが付いている場合は「送信された URL に noindex タグが追加されています」として表示されます。どちらかを直すべき状態です。
noindexを付けたり外したりした内容は、Googleが次にそのページをクロールしたときに反映されます。更新が少ないページでは、反映まで時間がかかることがあります。
よくある失敗と直し方
| 起きること | 原因 | 直し方 |
|---|---|---|
| 公開したのに、サイト全体が検索に出ない | ステージング(テスト環境)のnoindex設定や「インデックスしないようにする」のチェックが本番に残った | 本番で設定を外し、URL検査で数ページ確認。テスト環境の保護はnoindexではなく閲覧制限で行い、本番に持ち込まない手順にする |
| noindexを付けたのに、URLが検索結果に残る | robots.txtでブロックしていて、noindexが読まれていない | robots.txtのブロックを外し、再クロールを待つ |
| 「送信された URL に noindex タグが追加されています」が出る | noindexのページがサイトマップに載っている | 出したいページならnoindexを外す。出さないならサイトマップから外す |
| 新しい記事だけインデックスされない | noindexの記事を複製して作り、個別設定が引き継がれた | 投稿画面の個別設定を確認し、テンプレート用の記事を見直す |
| 集客していたカテゴリー一覧が急に消えた | SEOプラグインの更新や設定変更で、アーカイブがまとめてnoindexになった | プラグインの設定を戻し、更新後はレポートの「noindex タグによって除外されました」の件数を確認する |
| PDFの資料が検索結果に出てしまう | HTML以外にはメタタグを書けない | X-Robots-Tagで指定する。社外秘なら公開場所から外す |
例:会員向けの料金表PDFが検索結果に出てしまった場合。急ぎならSearch Consoleの「削除」で一時的に隠し、その間にX-Robots-Tagを付けるか、PDFを会員ページの中(ログインが必要な場所)に移します。削除リクエストだけでは、期間が過ぎると再び表示されることがあります。削除ツールと noindex の組み合わせ方は「Search Consoleの削除ツール」で説明しています。
当サイト(seoagent.jp)でのnoindexの使い方
当サイト(seoagent.jp)では、記事がまだ無い一覧ページや、範囲外のページ番号が検索対象になりうる状態でした。そこで、ページの状態ごとに手段を分けています。
- 記事のない一覧ページ:noindexにし、XMLサイトマップからも外す
- 範囲外のページ番号(例:記事が2ページ分しかないのに3ページ目を開いた場合):404を返す
- 親カテゴリー:一覧ページへ301で転送する
反映(deploy)のたびに、404・301・noindexが意図どおり返っているかを確認しています。また、日本語と英語のURLを分けた際(現在は日本語がトップ /、英語が /en/)には、内容のない言語のページをnoindexにし、翻訳がある組だけにhreflangを付けました。「とりあえず全部noindex」ではなく、「中身が無いならnoindex、存在しないなら404、移ったなら301」と、状態に合わせて選ぶのがポイントです。ほかの技術的な記事は「テクニカルSEOの記事一覧」にまとめています。
よくある質問
noindexを外したら、すぐに検索結果に戻りますか?
Googleが次にそのページをクロールしたときに反映されるため、すぐには戻りません。URL検査で「公開URLをテスト」を行い、noindexが無いことを確かめてからインデックス登録をリクエストします。長く外れていたページは、元の表示に戻るまで時間がかかることがあります。
同じページにnoindexとcanonicalを両方付けてもよいですか?
目的が違うため、混ぜないのが基本です。Googleは、サイト内で正規URLを選ばせる目的でnoindexを使わないよう案内しています。noindexを付けるとページが検索から完全に外れるためです。重複をまとめたいならcanonicalだけを使い、canonicalの指す先のページにはnoindexを付けません。
一覧ページの2ページ目以降は、noindexにすべきですか?
一律にnoindexにする必要はありません。Googleは、ページ分割された一覧の各ページを別々のページとして扱い、それぞれに自身のURLをcanonicalとして付けるよう案内しています。noindexを検討するのは、並び替えや絞り込みで同じ一覧が別のURLになるものや、中身のない一覧です。
noindexのページに、サイト内からリンクしてもよいですか?
問題ありません。カートや問い合わせ完了ページのように、検索からは来なくてもサイト内で使うページへはリンクが必要です。ただし、XMLサイトマップには載せないようにします。サイトマップは検索に出したいURLの一覧だからです。
SEOAGENTでできること
SEOAGENTでは、公開前の確かめで「公開ページの設定」などの確認項目を示し、公開後はSearch Consoleと連携して記事ごとの検索データを確認できます。noindexの設定そのものは、WordPressやSEOプラグインの側で行います。


