x-robots-tag-vs-robots-meta-tag-2026.html
< BACK

X-Robots-Tag と robots メタタグ:Google にページをスキップするよう指示する場合の使い分け

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 つの主要なツールです。

< BACK