< BACK X-Robots-Tag vs robots メタタグ:各方法でGoogleにページをスキップさせる場合 -- ラインアート図解

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

Google にページをインデックスしないよう指示する 2 つの方法:HTML 内の robots メタタグ、または HTTP レスポンスヘッダの X-Robots-Tag。どちらも同じ役割を果たします。互換性はありません。正しい方法の選択は、ファイルの種類(HTML か PDF か画像か)、編集できる場所(テンプレートかサーバ設定か)、スケール対応の必要性(1 ページか数万ページか)に基づきます。

重要なポイント:robots メタタグと X-Robots-Tag は同じ役割を果たしますが、ヘッダーバージョンは PDF、画像、その他の HTML 以外のファイルに noindex を指定する唯一の方法です。The robots meta tag and the X-Robots-Tag do the same job; the header version is the only way to noindex PDFs, images, and other non-HTML files.

2 つのメカニズムを 1 文ずつで説明

robots メタタグ:HTML ドキュメントの <head> 内の <meta name="robots" content="noindex, nofollow">。HTML ページ上でのみ機能します。PDF やファイル、JSON メタデータに相当するものがないため、画像では機能しません。ページテンプレート経由で簡単に追加できます。

X-Robots-Tag: X-Robots-Tag: noindex, nofollow は HTTP レスポンスヘッダーです。サーバーが返すあらゆるリソースタイプ (HTML、PDF、画像、動画、JSON など) に機能します。サーバー (Apache、Nginx、Vercel edge headers、Cloudflare Workers) または フレームワークのレスポンス API 経由で設定します。Vercel edge headers, Cloudflare Workers) or via the framework's response 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 つの主要なツールです。

よくある質問

X-Robots-Tag と robots メタタグの違いは何ですか?

どちらもインデックス処理を制御しますが、robots メタタグはページの HTML head に配置され、X-Robots-Tag は HTTP ヘッダーとして送信されます。ヘッダー版は PDF や画像などの非 HTML ファイルを制御できますが、メタタグではできません。noindex や nofollow など同じディレクティブをサポートしています。

メタタグの代わりに X-Robots-Tag を使うべきはいつですか?

PDF や画像などの非 HTML ファイルのインデックス処理を制御する必要がある場合、または多数の URL にわたってサーバーレベルでディレクティブを設定したい場合は、X-Robots-Tag を使用してください。個別の HTML ページについて、head の編集が簡単な場合はメタタグを使用してください。

X-Robots-Tag は PDF をインデックス除外できますか?

はい、これが主な利点です。robots メタタグは PDF 内に配置することはできませんが、X-Robots-Tag HTTP ヘッダーは PDF、画像、または任意の非 HTML ファイルに noindex を適用できます。ドキュメントを検索結果から除外する正しい方法です。

robots.txtはnoinexと同じ機能を果たしていますか?

いいえ。robots.txtはクローリングをブロックします。noinexはインデックスをブロックします。robots.txtでブロックされたページは、クロールされなくても検索結果に表示される可能性があります。ページをインデックスから削除するには、クロールさせてnoinexを提供してください。robots.txtでブロックしないでください。

< BACK