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 を併用したい」場合は、必ず順序を守る。
- まず noindex でインデックスから外す(Disallow しない状態で)
- インデックスから消えたことを確認したら、必要に応じて Disallow を追加する
head 以外でも有効(Google 仕様)
Google は仕様上、meta robots を <head> 以外(<body> 内など)に置いても認識する。ただし他検索エンジンは認識しない場合があるので、互換性のため <head> 内が推奨。
JavaScript で動的注入する時の注意
GTM や React でレンダリング後に noindex を注入することは可能だが、Googlebot のレンダリング遅延で認識されないリスクがある。 確実性を求めるなら初期 HTML に書く。
キー概念
noindex 系の主要ルール一覧
Google が現在サポートしているルール。複数を組み合わせて使える。
| ルール | 効果 |
|---|---|
noindex | このページを検索結果に表示しない |
nofollow | このページのリンクをクロール対象として辿らない |
none | noindex, nofollow と同等 |
nosnippet | スニペット(説明文)と動画プレビューを表示しない。AI Overview / AI Mode の入力からも除外される |
max-snippet:N | スニペットを最大 N 文字に制限。0 は nosnippet 同等、-1 は無制限 |
max-image-preview:[none / standard / large] | 画像プレビューのサイズ制限 |
max-video-preview:N | 動画プレビューを最大 N 秒に制限。0 は静止画のみ、-1 は無制限 |
noimageindex | このページの画像をインデックスしない |
unavailable_after:[日時] | 指定日時以降は検索結果に出さない(時限公開停止) |
notranslate | 翻訳結果を提供しない |
indexifembedded | iframe 等で埋め込まれた場合のみインデックス可(noindex との併用が前提) |
廃止済み(書いても無視される): noarchive / nocache / nositelinkssearchbox
複数ルールの組み合わせ
カンマ区切り、または複数 meta タグで指定する。
<meta name="robots" content="noindex, nofollow">
または:
<meta name="robots" content="noindex">
<meta name="robots" content="nofollow">
矛盾する場合は「最も制限の強いルール」が適用される。例えば max-snippet:50 と nosnippet を併用したら、nosnippet が勝つ。
user-agent ごとの指定
特定クローラーだけに noindex を指示できる。Google が認識する user-agent は googlebot と googlebot-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 を必ず追加 |
公式ソース
- noindex でページのインデックス登録をブロックする
- robots meta タグ、data-nosnippet、X-Robots-Tag の仕様
- URL 検査ツール
- Search Console ページレポート
- 情報の削除(Removals)
自己テスト
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:50 と nosnippet が併用されたら、nosnippet(より制限が強い)が適用される
Q6. PDF ファイルにも noindex を指定できるか?
可能。HTML を持たないので、X-Robots-Tag HTTP ヘッダで指定する。
Apache なら .htaccess で Header 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 問形式で確認できる。