Domain 4 / 225

noindex は検索結果に表示しないと Google に伝えるタグ

noindex の要点

noindex は検索結果からページを除外する公式の指示で、meta robots タグまたは X-Robots-Tag で設定する。robots.txt の Disallow と併用するとクローラーが noindex を読めず効かないため、先に noindex で外してから Disallow するのが正しい順序

なぜこれを学ぶか

noindex は 消したいページが消えない / 消したくないページが消える どちらの事故もよく起きる、SEO の運用事故の主犯トピック。 robots.txt の Disallow との順序を間違えるだけで「インデックスから永久に消えない」状態になり、ステージング URL の漏洩や公開ページの消失といった被害が出る。

ここを正確に理解しておくと、Search Console の「ページ」レポートで何が起きているかが即座に切り分けられるようになる。

学ばないと起きること

よくある事故被害
ステージング環境を robots.txt の Disallow だけで守る被リンクから URL が漏れて、ステージング URL が検索結果に出てクライアントに見られる
インデックスから消したいページに robots.txt Disallow を追加クローラーが noindex を読みに来られず、インデックスに残ったまま
CMS の「公開停止」設定が UI で隠すだけで noindex を出していない公開停止したつもりのページが検索結果に出続ける
GTM や JavaScript で noindex を動的注入レンダリング遅延で Googlebot が認識できず、インデックスされてしまう
テンプレートにテスト時の noindex を残したまま本番デプロイ公開ページが検索に絶対出ない(Search Console「noindex タグによって除外されました」が並ぶ)
max-snippet:0 と nosnippet を矛盾指定制限の強い方が適用され、意図と違う表示制限になる

学ぶメリット

  • ステージング・テスト環境を「robots.txt + noindex」の正しい組み合わせで守れる
  • 公開ページが検索結果から消えた時、原因を 1 分で切り分けられる
  • AI Overview や引用への露出を意図的に制御できる(nosnippet / max-snippet)
  • Search Console の「ページ」レポートが何を示しているか読み解けるようになる

仕組み

2 種類の実装方法

両者の効果は同じ。HTML ページなら meta タグ、PDF / 画像など非 HTML やサーバー一括設定なら HTTP ヘッダが便利。

方法用途
meta robots タグHTML ページ<meta name="robots" content="noindex">
X-Robots-Tag HTTP ヘッダ非 HTML(PDF / 画像 / 動画)または一括設定X-Robots-Tag: noindex

robots.txt に noindex を書く方法は Google が公式にサポートしていない(書いても無視される)

noindex が効かない代表条件

公式に明記されている最重要事項。

robots.txt で Disallow されていると、クローラーがそのページにアクセスできず noindex を読み取れない。被リンクから URL が発見されれば、説明なし URL として検索結果に出続ける。 「Disallow と noindex を併用したい」場合は、必ず順序を守る。

  1. まず noindex でインデックスから外す(Disallow しない状態で)
  2. インデックスから消えたことを確認したら、必要に応じて Disallow を追加する

head 以外でも有効(Google 仕様)

Google は仕様上、meta robots を <head> 以外(<body> 内など)に置いても認識する。ただし他検索エンジンは認識しない場合があるので、互換性のため <head> 内が推奨。

JavaScript で動的注入する時の注意

GTM や React でレンダリング後に noindex を注入することは可能だが、Googlebot のレンダリング遅延で認識されないリスクがある。 確実性を求めるなら初期 HTML に書く。

キー概念

noindex 系の主要ルール一覧

Google が現在サポートしているルール。複数を組み合わせて使える。

ルール効果
noindexこのページを検索結果に表示しない
nofollowこのページのリンクをクロール対象として辿らない
nonenoindex, nofollow と同等
nosnippetスニペット(説明文)と動画プレビューを表示しない。AI Overview / AI Mode の入力からも除外される
max-snippet:Nスニペットを最大 N 文字に制限。0nosnippet 同等、-1 は無制限
max-image-preview:[none / standard / large]画像プレビューのサイズ制限
max-video-preview:N動画プレビューを最大 N 秒に制限。0 は静止画のみ、-1 は無制限
noimageindexこのページの画像をインデックスしない
unavailable_after:[日時]指定日時以降は検索結果に出さない(時限公開停止)
notranslate翻訳結果を提供しない
indexifembeddediframe 等で埋め込まれた場合のみインデックス可(noindex との併用が前提)

廃止済み(書いても無視される): noarchive / nocache / nositelinkssearchbox

複数ルールの組み合わせ

カンマ区切り、または複数 meta タグで指定する。

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

または:

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

矛盾する場合は「最も制限の強いルール」が適用される。例えば max-snippet:50nosnippet を併用したら、nosnippet が勝つ。

user-agent ごとの指定

特定クローラーだけに noindex を指示できる。Google が認識する user-agent は googlebotgooglebot-news の 2 つ。

<meta name="googlebot" content="noindex">
<meta name="googlebot-news" content="nosnippet">

複数 user-agent に異なるルールを指定すると、Google は「すべての制限ルールの合算」を適用する。

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

→ Googlebot は noindex, nofollow として解釈する

data-nosnippet 属性

ページ全体ではなく、文中の特定部分だけスニペット対象外にしたい時に使う。<span> <div> <section> 要素にのみ有効。

<p>この文はスニペットに出る可能性があります
<span data-nosnippet>この部分は出ません</span>。</p>

JavaScript で動的に追加・削除すると不安定になるので、初期 HTML に含めるのが原則。

よくある誤解

よくある誤解実際のところ出典
robots.txt に noindex を書けば効くNG。Google は robots.txt の noindex 指示を公式にサポートしていないnoindex の使い方
Disallow と noindex を一緒に書けば確実NG。Disallow するとクローラーが noindex を読みに来られない。先に noindex、その後 Disallow が正しい順序同上
noindex は <head> 内じゃないと効かないGoogle は body 内の robots meta も認識する。ただし他検索エンジン互換のため head 推奨robots meta の仕様
noarchive を入れればキャッシュを止められる既に廃止。Google はキャッシュリンク機能自体を提供していない同上
nosnippet を入れても AI Overview には出る出ない。nosnippet または max-snippet:0 は AI Overview / AI Mode の入力からも除外される同上
max-snippet:0 と nosnippet は別物同等。どちらも「スニペット表示なし」を意味する同上
noindex を入れたのに検索結果に出続けるのはタグの不備多くは「Google が再クロールしていない」だけ。URL 検査ツールで再クロール要求できるblock-indexing の debug
矛盾する複数ルールは最初に書いたものが優先される違う。「最も制限の強い」ルールが適用されるrobots meta の仕様
GTM で noindex を動的注入しても確実に効くレンダリング遅延で Googlebot が認識できないリスクあり。初期 HTML が安全同上

実務での適用

ステージング環境を確実に守る設定

<!-- HTML head に必ず入れる -->
<meta name="robots" content="noindex, nofollow">

または HTTP ヘッダで:

X-Robots-Tag: noindex, nofollow

robots.txt はステージング全体に書きたくなるが、被リンク漏れの事故源になるので使わない。代わりに Basic 認証や IP 制限を併用する。

PDF / 画像の noindex(X-Robots-Tag)

Apache / .htaccess の例:

<Files ~ "\.pdf$">
Header set X-Robots-Tag "noindex, nofollow"
</Files>

NGINX の例:

location ~* \.pdf$ {
add_header X-Robots-Tag "noindex, nofollow";
}

AI 検索(AI Overview)からの除外

nosnippet または max-snippet:0 を入れると、Google AI Overview や AI Mode の入力からも除外される。 コンテンツの無断利用を防ぎたいページに使う。ただしスニペットを止めると検索結果での CTR は下がる傾向があるので、トレードオフを認識した上で使う。

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

CMS の落とし穴

WordPress / Wix / Blogger などは独自の noindex 設定 UI を持っているので、直接 HTML を編集するのではなくダッシュボードから操作する。 ただしプラグインや theme アップデートで予期せず noindex が ON / OFF されることがある。Search Console の「ページ」レポートで定期監視する。

トラブル別の対処

症状確認すべきこと
noindex を入れたのに検索結果から消えないURL 検査ツールで現状確認&再クロール要求 / robots.txt で Disallow されていないか / Googlebot が noindex を読み取れているか
公開ページが検索結果から消えたSearch Console「ページ」レポートで「noindex タグによって除外されました」を確認、テンプレートやプラグインを点検
AI Overview に出てほしくないnosnippet または max-snippet:0 を入れる
一定日時で公開停止したいunavailable_after:[日時] で予約除外
画像だけ検索から消したいnoimageindex を使う、または X-Robots-Tag を画像ファイルに設定
ステージング URL が検索結果に出ているDisallow だけで守っていないか、noindex を必ず追加

公式ソース

自己テスト

Q1. robots.txt に noindex を書けば効くか?

効かない。Google は robots.txt の noindex 指示を公式にサポートしていない。 noindex は meta robots タグまたは X-Robots-Tag HTTP ヘッダで設定する

Q2. インデックスから確実に消すために、Disallow と noindex を同時に書けば良いか?

NG。Disallow するとクローラーがそのページにアクセスできず、noindex を読み取れないため、インデックスが残ったままになる。 正しい順序は「先に noindex でインデックスを外す → 確認後に必要なら Disallow を追加」

Q3. noindex タグを `<body>` 内に書いても認識されるか?

Google は仕様上、body 内の robots meta も認識する。ただし他検索エンジンは認識しない場合があるので、互換性のため <head> 内に書くのが推奨

Q4. nosnippet と max-snippet:0 の違いは?

ない。同等扱い。どちらもスニペット表示なし(および AI Overview / AI Mode の入力からの除外)を意味する

Q5. 複数の robots ルールが矛盾している場合、どちらが優先されるか?

「最も制限の強いルール」が優先される。 例: max-snippet:50nosnippet が併用されたら、nosnippet(より制限が強い)が適用される

Q6. PDF ファイルにも noindex を指定できるか?

可能。HTML を持たないので、X-Robots-Tag HTTP ヘッダで指定する。 Apache なら .htaccessHeader set X-Robots-Tag "noindex"、NGINX なら add_header X-Robots-Tag "noindex" を該当ファイル拡張子に対して設定する

Q7. 一定日時以降だけ検索結果から消したい場合、どのルールを使うか?

unavailable_after:[日時] を使う。 例: <meta name="robots" content="unavailable_after: 2026-12-31"> で 2026 年末以降は検索結果から外れる

Q8. ステージング環境を保護したい時の正しい設定は?

robots.txt の Disallow だけだと URL が漏れる可能性があるので、<meta name="robots" content="noindex, nofollow"> または X-Robots-Tag: noindex, nofollow を必ず併用する。 さらに Basic 認証や IP 制限を組み合わせるとより確実

これらの内容を採点付きで挑戦したい場合は、本ドメインのプロ試験で 5 問形式で確認できる。