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.txt | URLパターン | はい。クロール自体をブロック |
| メタロボット | HTMLの<head> | そのHTMLページ | いいえ。インデックス登録のみ制御 |
| X-Robots-Tag | HTTPレスポンスヘッダー | あらゆるリソースタイプ | いいえ。インデックス登録のみ制御 |
重要な区別: robots.txtは「クロールするな」と指示するのに対し、メタロボットとX-Robots-Tagは「インデックス登録するな」と指示します。インデックス登録をブロックするには、Googlebotが実際にページに到達してディレクティブを読み取る必要があります。robots.txtでブロックするとクロールが完全に停止するため、Googleはインデックス登録の指示を一切見ることができません。
主なディレクティブ
| ディレクティブ | 意味 |
|---|---|
noindex | 検索結果に表示しない |
nofollow | ページ上のリンクをたどらない |
none | noindex, nofollowと同じ |
noarchive | SERPにキャッシュされたコピーを表示しない |
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で、ヘッダーが実際に表示されることを確認します。
スニペットの制御はプライバシーの制御ではない: nosnippetとdata-nosnippetはGoogleが結果を表示する方法を変えますが、その背後にあるコンテンツは公開されたままアクセス可能です。非公開のコンテンツには、認証またはサーバーサイドのアクセス制御を使いましょう。
Sources: