SEO

X-Robots-Tag

X-Robots-Tagは、HTTPレスポンスヘッダーを通じて検索エンジンのクロールとインデックス登録を制御する方法です。HTML内に<meta name="robots">を配置する代わりに、サーバーがX-Robots-Tag: noindexのようなレスポンスヘッダーで同じディレクティブを送信します。

X-Robots-Tagは、HTTPレスポンスヘッダーを通じて検索エンジンのクロールインデックス登録を制御する方法です。HTML内に<meta name="robots">を配置する代わりに、サーバーがX-Robots-Tag: noindexのようなレスポンスヘッダーで同じディレクティブを送信します。

なぜ重要なのか

HTMLメタタグはHTMLファイル内でのみ機能します。PDF、画像、動画、JSON APIレスポンスといったHTML以外のリソースは<meta>タグを使えず、インデックス登録の制御に隙間が生じます。X-Robots-Tagは、あらゆるHTTPレスポンスに適用されることで、その隙間を埋めます。Search Engine Landは、数万件のPDFカタログがインデックス登録され、重複コンテンツとしてランキングを損なったeコマースの事例を記録しており、これはX-Robots-Tagによって一挙に解決されました。

X-Robots-Tag、メタロボット、robots.txtの違い

方法場所範囲クロールをブロックするか?
robots.txt/robots.txtURLパターンはい。クロール自体をブロック
メタロボットHTMLの<head>そのHTMLページいいえ。インデックス登録のみ制御
X-Robots-TagHTTPレスポンスヘッダーあらゆるリソースタイプいいえ。インデックス登録のみ制御

重要な区別: robots.txtは「クロールするな」と指示するのに対し、メタロボットとX-Robots-Tagは「インデックス登録するな」と指示します。インデックス登録をブロックするには、Googlebotが実際にページに到達してディレクティブを読み取る必要があります。robots.txtでブロックするとクロールが完全に停止するため、Googleはインデックス登録の指示を一切見ることができません。

主なディレクティブ

ディレクティブ意味
noindex検索結果に表示しない
nofollowページ上のリンクをたどらない
nonenoindex, nofollowと同じ
noarchiveSERPにキャッシュされたコピーを表示しない
nosnippetスニペットやサムネイルを表示しない
unavailable_after: [date]指定日以降にインデックスから削除する
max-snippet: [n]スニペットの長さを制限する
max-image-preview: [setting]画像プレビューのサイズを制限する
max-video-preview: [n]動画プレビューの長さを制限する

HTMLページ内でのスニペットレベルの制御には、検索スニペットから除外したい正確な要素にdata-nosnippetを使います。これは、リソース全体のインデックス登録の状態を変えるのではなく、選択したテキストのみを非表示にするため、X-Robots-Tagとは異なります。

設定の例

PDFのインデックス登録をブロックする(Apache .htaccess):

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

画像ディレクトリをブロックする(Nginx):

location /private-images/ {
  add_header X-Robots-Tag "noindex";
}

特定のクローラーを対象にする(Googlebotのみ):

X-Robots-Tag: googlebot: noindex

期間限定のインデックス登録:

X-Robots-Tag: unavailable_after: 31 Dec 2026 23:59:59 GMT

要素レベルのスニペット除外(HTML):

<p data-nosnippet>Do not show this sentence in Google snippets.</p>

実践上の注意点

robots.txtのdisallowと併用しない: robots.txtがURLをブロックすると、Googleはヘッダーをまったく読み取れません。インデックス登録をブロックするには、robots.txtでクロールを許可し、X-Robots-Tagのnoindexを使います。

サーバー設定が必要: メタタグとは異なり、X-Robots-Tagはウェブサーバーレベル(Apache、Nginx、Cloudflare Workers)で設定します。CMSプラットフォームが常に自動で処理してくれるわけではありません。

Search Consoleまたはcurlで検証する: Google Search ConsoleのURL検査ツールやcurl -I https://example.com/file.pdfで、ヘッダーが実際に表示されることを確認します。

スニペットの制御はプライバシーの制御ではない: nosnippetdata-nosnippetはGoogleが結果を表示する方法を変えますが、その背後にあるコンテンツは公開されたままアクセス可能です。非公開のコンテンツには、認証またはサーバーサイドのアクセス制御を使いましょう。

Sources: