Meta RobotsタグとX-Robots-Tagディレクティブの理解
検索エンジンがコンテンツをどう扱うかについてページレベルまたはリソースレベルの制御が必要なとき、現代のSEOの中核に2つのメカニズムがあります:meta robotsタグ(HTML要素)とX-Robots-Tag(HTTPレスポンスヘッダー)です。この2つを組み合わせることで、クローラーにページをインデックスするか、リンクをフォローするか、キャッシュされたコピーを表示するか、スニペットを表示するか、画像プレビューを表示するかを — robots.txtに触れることなく — 指示できます。この記事では、すべてのディレクティブ、ボット別ターゲティングの仕組み、ルールが競合した場合の動作、経験豊富なチームでも陥るミスについて深く技術的に解説します。
Meta robotsタグ vs X-Robots-Tag:それぞれの役割
Meta robotsタグ
HTML文書の<head>内に配置されるmeta robotsタグは、インデックスディレクティブを発行する最も馴染みのある方法です:
<meta name="robots" content="noindex, nofollow">
name属性は対象を識別します(robotsに設定するとすべてのボット、googlebotのような特定のクローラーに設定可能)。content属性はカンマ区切りのディレクティブリストを保持します。HTML内にあるため、ブラウザやクローラーが実際にウェブページとしてパースする文書にのみ機能します。
X-Robots-Tag HTTPヘッダー
X-Robots-Tagは同じ結果を達成しますが、HTTPレイヤーで行います:
X-Robots-Tag: noindex, nofollow
レスポンスヘッダーであるため、HTMLページだけでなくあらゆるリソースタイプ — PDF、画像、ビデオファイル、JSONフィード、XMLサイトマップ — で機能します。これにより、検索エンジンがインデックスする可能性のある非HTMLアセットの制御に不可欠です。
ディレクティブにボット名のプレフィックスを付けて特定のボットをターゲットにすることもできます:
X-Robots-Tag: googlebot: noindex
完全なディレクティブリファレンス
noindex
クローラーに検索インデックスにページを追加しないよう指示します。ページがすでにインデックスされている場合、次のクロール後に削除されます。プライベート、ステージング、または価値の低いページを検索結果から除外するための最も重要なディレクティブです。注意:クローラーがディレクティブを読むには、ページにアクセスできる必要があります。robots.txtでURLをブロックすると、ボットがnoindexタグを見ることができず、外部シグナルに基づいてページがインデックスに残る可能性があります。
nofollow
クローラーにランキングや発見の目的でページのアウトバウンドリンクをフォローしないよう指示します。これは個別の<a>要素のrel="nofollow"属性とは異なります。後者は単一のリンクを対象とします。メタレベルのnofollowはページ上のすべてのリンクに適用されます。一括的なnofollowは内部リンクエクイティの流れを断ち切り、重要なページの発見を妨げる可能性があるため、控えめに使用してください。
noarchive
検索エンジンが検索結果にページのキャッシュコピーを表示するのを防止します。ページは引き続きインデックスされ検索に表示されますが、ユーザーには「キャッシュ」リンクが表示されません。時間に敏感なコンテンツや、古い形式で閲覧すべきでない価格情報に便利です。
nosnippet
検索エンジンが結果ページにテキストスニペットやビデオプレビューを表示するのを停止します。ページは引き続きランクインし表示されますが、タイトルの下に説明がありません。これは強力なツールです — ほとんどのサイトはスニペットの恩恵を受けるため、法的またはプライバシーの要件がある場合にのみ適用してください。
max-snippet:[数値]
結果に表示されるテキストスニペットの最大文字長を制御します。例えば、max-snippet:50はスニペットを50文字に制限します。0に設定するとnosnippetと同等です。-1は制限なしを意味し、Googleが有用と判断する量のテキストを使用できます。スニペットを完全に削除せずに長さを微調整できます。
max-image-preview:[設定]
検索結果に表示される画像プレビューの最大サイズを定義します。受け入れ可能な値:
- none — 画像プレビューなし。
- standard — デフォルトサイズのプレビュー画像。
- large — より大きなプレビュー。DiscoverやImage重視のSERP機能で可視性を高める可能性があります。
Google Discoverやリッチな視覚的結果にページを適格にしたい場合、max-image-preview:largeの設定がよく推奨されます。
max-video-preview:[数値]
ビデオスニペットプレビューの最大秒数を設定します。0はビデオプレビューを無効にします。-1は無制限のプレビュー長を許可します。ビデオコンテンツを埋め込み、検索エンジンがどの程度表示できるかを制御したいページに関連します。
unavailable_after:[日付]
検索エンジンに特定の日時以降、ページの表示を停止するよう指示します。フォーマットはRFC 850またはISO 8601に従います。指定された日付以降、ページはnoindexディレクティブがあるものとして扱われます。イベントページ、期間限定プロモーション、期限が切れたら検索結果から自動的に消えるべき求人情報に最適です。
<meta name="robots" content="unavailable_after: 2026-06-30T23:59:59+00:00">
notranslate
Googleに検索結果でページの翻訳を提供しないよう指示します。元のページは引き続き表示されますが、異なる言語で閲覧しているユーザーには「このページを翻訳」リンクが表示されません。
noimageindex
ページの画像がインデックスされないよう要求します。このディレクティブのない別のページから画像が参照されている場合、依然としてインデックスされる可能性があります。このディレクティブはすべての検索エンジンで普遍的にサポートされているわけではありません。
ボット別ターゲティング
両方のメカニズムが特定のクローラーのターゲティングをサポートしています。メタタグでは、robotsをボット名に置き換えます:
<meta name="googlebot" content="noindex">
<meta name="bingbot" content="noarchive">
異なるボットを対象にする複数のメタタグを含めることができます。ボット固有のタグのディレクティブは、そのボットに対して汎用のrobotsタグをオーバーライドします。例えば:
<meta name="robots" content="noindex">
<meta name="googlebot" content="index">
この場合、Googlebotは専用タグからindexを読み取り、汎用のnoindexを無視します。その他のすべてのボットは汎用ルールに従いインデックスしません。特定の検索エンジンにのみコンテンツを表示したいシナリオで強力です。
X-Robots-Tagヘッダーでのボット別ターゲティングはプレフィックスを使用します:
X-Robots-Tag: googlebot: nosnippet
X-Robots-Tag: bingbot: noarchive
同じHTTPレスポンスに複数のX-Robots-Tagヘッダーが表示でき、それぞれ独自のボットプレフィックスとディレクティブを持ちます。
ディレクティブが競合した場合の優先順位ルール
検索エンジンが競合するシグナルをどのように解決するかを理解することが重要です。一般的なルールは:
- 最も制限的なディレクティブが優先されます。meta robotsタグが
indexと言い、X-Robots-Tagヘッダーがnoindexと言う場合、ページはインデックスされません。検索エンジンはすべての適用可能なディレクティブを組み合わせ、最も制限的な解釈を適用します。 - ボット固有のディレクティブがそのボットに対して汎用ディレクティブをオーバーライドします。
<meta name="googlebot">タグがGooglebotに対して<meta name="robots">より優先されます。 - robots.txtのブロックがディレクティブの読み取りを妨げます。
robots.txtがURLをブロックすると、クローラーはページを取得せず、メタタグやヘッダーを読まず、したがってディレクティブを処理しません。noindexタグがあるブロックされたページは、ボットが指示を見なかったためにインデックスに残る可能性があります。 - 両方のソースが結合されます。Meta robotsとX-Robots-Tagは相互排他的ではなく、加算的です。クローラーは両方を読み、適用可能なすべてのディレクティブを単一の指示セットにマージします。
よくあるミスとその回避方法
クロールをブロックしながらnoindexの動作を期待する
最も頻繁なエラーです。ページがrobots.txtでブロックされ、<meta name="robots" content="noindex">も設定されています。ボットがページを取得できないため、noindexディレクティブを見ることができません。ページは着信リンクとアンカーテキストに基づいて無期限にインデックスに残る可能性があります。解決:ページをインデックスから除外したい場合は、ボットがnoindexタグを読めるようにクロールを許可してください。
ページネーションやフィルターページに不注意にnoindexを適用
ページネーションされたリスティングページをnoindexにすると、それらのより深いページからリンクされている商品や記事が孤立する可能性があります。検索エンジンは、それを含むページがインデックスから除外されているため、内部リンクを辿るのを停止する場合があります。解決:ページネーションページをインデックス可能に保ち、メインリスティングを指すrel="canonical"を使用するか、noindex, followを使用してインデックスの肥大化を防ぎつつリンクの発見を許可してください。
「PageRankスカルプティング」のために内部リンクにnofollowを使用
数年前、SEO担当者はリンクエクイティを誘導するために内部nofollowを使用していました。Googleは、エクイティは依然として消費されるが — 再分配されずに蒸発すると述べています。解決:適切なサイトアーキテクチャとクロール制御を代わりに使用してください。
非HTMLリソースでX-Robots-Tagを忘れる
PDF、画像、その他のメディアファイルはメタタグを持てません。インデックスすべきでない場合、X-Robots-Tagヘッダーが唯一のオプションです。多くのチームが非HTMLコンテンツタイプにこのヘッダーを追加するようウェブサーバーやCDNを設定することを忘れます。解決:Apache、Nginx、またはCDNで、必要なファイルタイプにX-Robots-Tagヘッダーを挿入するサーバーレベルのルールを追加してください。
noindexなしのステージングまたは開発環境の放置
誤って公開されたステージングサイトにnoindexディレクティブがないと、インデックスされ、本番サイトとの重複コンテンツ問題を引き起こす可能性があります。解決:ステージング環境は常に認証で保護するか、少なくともサイト全体のnoindexメタタグとX-Robots-Tagヘッダーを適用してください。
一時的なコンテンツでunavailable_afterディレクティブを無視
期限切れ後も数ヶ月間検索結果に残るイベントページや期間限定プロモーションは、悪いユーザー体験を生みます。解決:コンテンツが無関係になったときに自動的にインデックスから除外されるよう、有効期限とともにunavailable_afterを使用してください。
Spider.esでディレクティブを監査する
Spider.esは検索エンジンボットと同じ方法でサイトをクロールし、すべてのURLでmeta robotsタグとX-Robots-Tagヘッダーの両方を読み取ります。監査レポートで以下をフラグします:
- 競合するディレクティブがあるページ(例:ヘッダーでは
noindexだがメタタグではindex)。 robots.txtにブロックされ、ボットが見ることのないインデックスディレクティブがあるページ。- 必要な場合にX-Robots-Tagヘッダーがない非HTMLリソース。
- インデックス除外をトリガーすべきだった期限切れの
unavailable_after日付。
定期的にクロールしてこれらのシグナルを確認することで、インデックス制御が意図通りに機能しているか — 静かに失敗していないかを確認できます。
まとめ
Meta robotsタグとX-Robots-Tagヘッダーは、クロール制御の精密機器です。robots.txtが広いゲートだとすれば、これらのディレクティブにより、何がインデックスされ、結果にどう表示され、いつ期限切れになるかを微調整できます。ディレクティブセットをマスターし、優先順位ルールを理解し、よくある落とし穴を避け、定期的に監査してください。検索での存在感がそれにかかっています。