Google にページをインデックスしないよう指示する 2 つの方法:HTML 内の robots メタタグ、または HTTP レスポンスヘッダの X-Robots-Tag。どちらも同じ役割を果たします。互換性はありません。正しい方法の選択は、ファイルの種類(HTML か PDF か画像か)、編集できる場所(テンプレートかサーバ設定か)、スケール対応の必要性(1 ページか数万ページか)に基づきます。
2 つのメカニズムを 1 文ずつで説明
robots メタタグ:HTML ドキュメントの <head> 内の <meta name="robots" content="noindex, nofollow">。HTML ページ上でのみ機能します。PDF やファイル、JSON メタデータに相当するものがないため、画像では機能しません。ページテンプレート経由で簡単に追加できます。
X-Robots-Tag:HTTP レスポンスヘッダとしての X-Robots-Tag: noindex, nofollow。サーバが返す任意のリソースタイプ(HTML、PDF、画像、動画、JSON など)で機能します。サーバ(Apache、Nginx、Vercel エッジヘッダ、Cloudflare Workers)またはフレームワークのレスポンス API 経由で設定します。
robots メタタグが正しい選択である場合
- 単一ページの除外:noindex にしたい特定のページ。そのページのテンプレートにメタタグを追加し、変更をデプロイします。
- テンプレート制御されたページ:noindex判定がページタイプごとに行われる場合(例:すべての/thank-you/ページをnoindexにする)。そのページが使用するレイアウトテンプレート内にメタタグを追加します。
- 動的判定:noindexがランタイムデータに依存する場合(例:200語未満のページをnoindexにする)。メタタグはテンプレート内で条件付きでレンダリングされます。
- サーバー設定へのアクセス権がない場合:共有ホスティング、ロックダウンされたCMS、テンプレートは編集できるがhtaccessは編集できないエージェンシーのデプロイ。メタタグが唯一の選択肢です。
X-Robots-Tagが最適な選択肢である場合
- 非HTMLリソース:PDF、画像、JSONエンドポイント、サイトマップ。PDFにメタタグを追加することはできません。HTTP応答のX-Robots-Tagが唯一の方法です。
- パターンベースの除外:「/admin/*配下のすべてをnoindexにする」または「すべての.pdfファイルをnoindexにする」。サーバーで一度設定すれば、マッチするすべてのURLに永遠に適用されます。200個のテンプレートを編集するよりもはるかにクリーンです。
- 大規模な除外:インデックスされるべきではない動的生成URL10,000個。単一のNginxロケーションブロックがテンプレートレベルの条件分岐に勝ります。
- 多層防御が必要な場合:サーバーのX-Robots-Tagとテンプレートのrobotsメタを組み合わせます。どちらかのレイヤーがnoindexをキャッチしますが、両方のレイヤーはテンプレートバグがページを誤ってインデックスに戻す可能性をなくします。
両方が設定できるもの
両メカニズムは同じディレクティブセットを受け入れます。最も一般的なもの:noindex(インデックスしない)、nofollow(このページからのリンクをフォローしない)、none(= noindex, nofollow)、noarchive(キャッシュ版を表示しない)、nosnippet(SERPにスニペットを表示しない)、max-snippet:N(スニペット長の上限)、max-image-preview:standard|large|none(AI Overviewsの画像プレビューを制御 — 2026年のGEO業務に関連)、max-video-preview:N(動画プレビュー長の上限)、unavailable_after:date(指定日時以降に自動noindex)。
Google は、どのメカニズムが指令を配信するかに関わらず、同じ指令を読み込みます。メカニズムの選択はスケールとリソースタイプについてのもので、指令のサポートについてではありません。
一般的なプラットフォームで X-Robots-Tag を設定する方法
Vercel (vercel.json)
source パターンと X-Robots-Tag の values エントリを持つ [[headers]] ブロックを使用します。例: [[headers]] source = "/admin/(.*)" [[headers.values]] X-Robots-Tag = "noindex, nofollow"。パターンにマッチするすべての URL に適用されます。
Netlify (netlify.toml)
for パス glob と values.X-Robots-Tag が設定された [[headers]] ブロックを使用します。例: [[headers]] for = "/admin/*" [headers.values] X-Robots-Tag = "noindex, nofollow"。
Apache (.htaccess)
ファイルパターンマッチングには <FilesMatch "\.pdf$"> Header set X-Robots-Tag "noindex, nofollow" </FilesMatch> を使用します。またはパスマッチングには <Location /admin> Header set X-Robots-Tag "noindex, nofollow" </Location> を使用します。
Nginx
server ブロック内に location ~ /admin/ { add_header X-Robots-Tag "noindex, nofollow"; } を記述します。location ~ は正規表現でマッチし、プレフィックスのみのマッチングには location ^~ を使用します。
Cloudflare Workers / エッジ
ワーカースクリプトでレスポンスヘッダーを変更します: response.headers.set('X-Robots-Tag', 'noindex, nofollow')。オリジンサーバーが簡単にヘッダーを出力できないサイトに便利です。
ヘッダーが設定されていることの確認
curl -I https://example.com/page はX-Robots-Tagを含むすべてのレスポンスヘッダーを返します。出力内のX-Robots-Tagの行を探してください。見つからない場合、ヘッダーは設定されていません。
Search Console検証の場合: URL検査ツールは、メタタグとHTTPヘッダーの両方からGoogleが取得したディレクティブを表示します。どちらのレイヤーもnoindexを設定すれば、Googleは何もインデックスしません。CDNの設定ミスがヘッダーを無言のうちに削除する可能性があるため、両方のレイヤーをチェックする価値があります。
多層防御パターン
最も強力な本番環境セットアップは両方を使用します。パターン(例:/admin/*)に対するサーバーレベルのX-Robots-Tagと、同じページに対するテンプレートレベルのメタrobotsを<head>に配置します。2つのレイヤーがあれば、テンプレートのバグまたはCDNの設定ミスによって誤ってプライベートであるべきページがインデックスされるのを防ぐことができません。
このサイトのadminセクションはこのように設定されています: vercel.jsonが/admin/*に対してX-Robots-Tag: noindex, nofollowを設定し、AdminLayoutテンプレートが<meta name="robots" content="noindex, nofollow">をheadに出力します。完全な備え。
よくある間違い
- robots.txtでブロックされているページにnoindexを追加する。robots.txtのDisallowはGooglebotがページを全く取得するのを防ぐため、noindexディレクティブを見ません。ページは他の場所でURLを見たもののフェッチできないため、スニペットなしでインデックスされる可能性があります。Disallowルールを削除して、botがフェッチして noindexを見られるようにしてください。
- JavaScript でレンダリングされた HTML での meta タグ経由での noindex 設定。一部のボットは JS を実行しますが、実行しないボットもあります。安全な方法はサーバーサイドレンダリングで noindex meta タグを出力する、または JS 実行を必要としない HTTP ヘッダーの X-Robots-Tag を使用することです。
- バックリンクを持つページに noindex を設定する。Google は noindex を尊重しますが、それらのバックリンクからのリンクエクイティは無駄になります。関連する URL に 301 リダイレクトしてエクイティを吸収させる方が良いです。
- X-Robots-Tag がサーバーごとではなく、レスポンスごとであることを忘れる。CDN キャッシュヒット時にはカスタムヘッダーがストリップされることがあります。デプロイ後に curl で検証してください。
まとめ
robots meta タグ:ページごと、HTML内、テンプレートレベルで編集。X-Robots-Tag:レスポンスごと、HTTP ヘッダー内、サーバーレベルで編集。HTML には両方が機能します。非 HTML には X-Robots-Tag のみが機能します。noindex が重要な場合は両方を使用してください。
関連資料:410 対 404 は削除ケース(URL が消える場合)をカバー。301 対 302 対 307 対 308 はリダイレクトケース(URL が移動する場合)をカバー。noindex とともに、URL に対して Google に何をすべきかを伝える 3 つの主要なツールです。