Robots meta タグ、data-nosnippetX-Robots-Tag の設定

このドキュメントでは、Google の検索結果でコンテンツが表示される方法を調整するための、ページレベルとテキストレベルの設定について説明します。ページレベルの設定を指定するには、HTML ページまたは HTTP ヘッダーに meta メタタグを配置します。テキストレベルの設定は、ページ内の HTML 要素の data-nosnippet 属性で指定できます。

クローラがこの設定を読み取り、それに従って動作できるのは、この設定を含むページへのアクセスを許可されている場合のみです。

<meta name="robots" content="noindex"> ルールは、検索エンジンのクローラに適用されます。AdsBot-Google などの非検索クローラをブロックするには、特定のクローラをターゲットにしたルール(例: <meta name="AdsBot-Google" content="noindex">)の追加が必要になる場合があります。

robots meta タグの使用

robots meta タグを使用すると、個別のページを Google 検索結果でインデックスに登録してユーザーに表示する方法をページ単位で詳細に制御できます。対象ページの <head> セクションに、robots meta タグを次のように配置します。

<!DOCTYPE html>
<html><head>
<meta name="robots" content="noindex">
(…)
</head>
<body>(…)</body>
</html>

この例では、robots meta タグで、検索結果にこのページを表示しないように検索エンジンに指示しています。name 属性の値(robots)は、このルールをすべてのクローラーに適用するよう指定しています。name 属性と content 属性はいずれも、大文字と小文字が区別されません。特定のクローラーを対象とするには、name 属性の値 robots をそのクローラーのユーザー エージェント トークンに置き換えます。Google が robots meta タグでサポートしているのは 2 種類のユーザー エージェント トークンで、他の値は無視されます。

  1. googlebot: すべてのテキスト検索結果用
  2. googlebot-news: ニュースの検索結果用

たとえば、Google に対してある特定のページを検索結果に表示しないように指示するには、meta タグの名前を googlebot にします。

<meta name="googlebot" content="noindex">

あるページを Google のウェブ検索結果では表示し、Google ニュースでは表示しないようにするには、次のように googlebot-news meta タグを使用します。

<meta name="googlebot-news" content="noindex">

複数のクローラーを個別に指定するには、複数の robots meta タグを使用します。

<meta name="googlebot" content="noindex">
<meta name="googlebot-news" content="nosnippet">

PDF ファイル、動画ファイル、画像ファイルなど、HTML 以外のリソースのインデックス登録をブロックするには、代わりに X-Robots-Tag レスポンス ヘッダーを使用します。

X-Robots-Tag HTTP ヘッダーの使用

X-Robots-Tag は、指定した URL に対する HTTP ヘッダー応答の要素として使用できます。robots meta タグで使用できるルールは、X-Robots-Tag として指定することもできます。ページをインデックスに登録しないようクローラに指示する X-Robots-Tag を含む HTTP 応答の例を次に示します。

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
(…)
X-Robots-Tag: noindex
(…)

HTTP 応答には、複数の X-Robots-Tag ヘッダーを組み合わせて使用できます。また、ルールのカンマ区切りのリストを指定することもできます。noarchive X-Robots-Tagunavailable_after X-Robots-Tag を組み合わせた HTTP ヘッダー応答の例を次に示します。

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
(…)
X-Robots-Tag: noarchive
X-Robots-Tag: unavailable_after: 25 Jun 2010 15:00:00 PST
(…)

X-Robots-Tag では、必要に応じて、ルールの前でユーザー エージェントを指定できます。たとえば、次のような一連の X-Robots-Tag HTTP ヘッダーを使用すると、条件に応じて、異なる検索エンジンに対して検索結果でのページの表示を許可できます。

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
(…)
X-Robots-Tag: googlebot: nofollow
X-Robots-Tag: otherbot: noindex, nofollow
(…)

ユーザー エージェントなしで指定されているルールは、すべてのクローラに対して有効です。HTTP ヘッダー、ユーザー エージェント名、指定された値では、大文字と小文字が区別されません。

インデックス登録と表示に関する有効なルール

robots meta タグと X-Robots-Tag で次のルール(機械で読み取り可能な形式でも利用可能)を使用して、スニペットのインデックス登録と表示を制御できます。各値は特定のルールを表します。カンマ区切りのリストまたは別々の meta タグで複数のルールを組み合わせて指定できます。これらのルールでは大文字と小文字が区別されません。

ルール

all

インデックスの登録や表示について、制限はありません。このルールは既定値であり、明示的に指定しても何も影響はありません。

noindex

検索結果でこのページ、メディア、またはリソースを表示しません。このルールを指定しない場合は、ページ、メディア、またはリソースがインデックスに登録され、検索結果に表示される可能性があります。

Google 検索から情報を削除するには、手順ガイドをご覧ください。

nofollow

このページ上のリンクをたどりません。このルールが指定されていない場合、Google はページ上のリンクを使用して、リンクされているページを検出する可能性があります。詳しくは、nofollow についての記事をご覧ください。

none

noindex, nofollow と同じです。

noarchive

検索結果でキャッシュ リンクを表示しません。このルールが指定されていない場合は、Google がキャッシュ ページを生成し、ユーザーが検索結果から対象のキャッシュ ページにアクセスする可能性があります。

nositelinkssearchbox

このページの検索結果にサイトリンク検索ボックスを表示しません。このルールが指定されていない場合は、サイト専用の検索ボックスと、サイトに直接アクセスできる別のリンクが生成され、検索結果に表示される可能性があります。

nosnippet

このページの検索結果にテキスト スニペットや動画プレビューを表示しません。ユーザー エクスペリエンスの向上につながる場合は、静止画像のサムネイル(使用可能な場合)が引き続き表示されることがあります。これは、すべての形式の検索結果(Google ウェブ検索、Google 画像検索、Discover)に適用されます。Google SGE の概要でも、nosnippet を使用してブロックされたコンテンツは表示されません。

このルールが指定されていない場合、Google はページで検出された情報に基づいてテキスト スニペットと動画プレビューを生成する可能性があります。

indexifembedded

noindex ルールに関係なく、Google は、iframes または類似の HTML タグによって別のページに埋め込まれているページのコンテンツをインデックスに登録できます。

indexifembedded は、noindex と併用されている場合にのみ効果があります。

max-snippet: [number]

この検索結果でテキスト スニペットとして使用される最大の文字数 [number] を設定します。なお、同じ検索結果ページ内に、1 つの URL の検索結果が複数表示される場合があります。この設定は、画像や動画のプレビューには影響しません。これは、すべての形式の検索結果(Google ウェブ検索、Google 画像検索、Discover、アシスタントなど)に適用されます。Google SGE の概要でも、指定された制限を超えるコンテンツは表示されません。ただし、サイト運営者がコンテンツの使用許諾を個別に付与した場合、この制限は適用されません。たとえば、サイト運営者がページはめ込みの構造化データの形式でコンテンツを提供している場合、または Google とライセンス契約を結んでいる場合、この設定はそれらの特別に許可された使用を妨げるものではありません。解析可能な [number] が指定されていない場合、このルールは無視されます。

このルールが指定されていない場合、スニペットの長さは Google が選択します。

特別な値:

  • 0: スニペットは表示されません。nosnippet と同じです。
  • -1: ユーザーがコンテンツを見つけやすくなり、サイトへの誘導に最も効果的と考えられるスニペットの長さが、Google により選択されます。

例:

検索結果にスニペットが表示されないようにするには:

<meta name="robots" content="max-snippet:0">

スニペットに最大 20 文字まで表示できるようにするには:

<meta name="robots" content="max-snippet:20">

スニペットに表示できる文字数に制限がないことを指定するには:

<meta name="robots" content="max-snippet:-1">

max-image-preview: [setting]

検索結果に表示されるこのページの画像プレビューの最大サイズを設定します。

max-image-preview ルールが指定されていない場合、Google はデフォルト サイズの画像プレビューを表示する可能性があります。

指定可能な [setting] 値:

  • none: 画像プレビューは表示されません。
  • standard: デフォルトの画像プレビューが表示されます。
  • large: ビューポートの幅までの画像プレビューを表示できます。

これは、すべての形式の検索結果(Google ウェブ検索、Google 画像検索、Discover、アシスタントなど)に適用されます。ただし、サイト運営者がコンテンツの使用許諾を個別に付与した場合、この制限は適用されません。たとえば、サイト運営者がページはめ込みの構造化データの形式(AMP バージョンと正規バージョンの記事など)でコンテンツを提供している場合、または Google とライセンス契約を結んでいる場合、この設定はそれらの特別に許可された使用を妨げるものではありません。

検索結果や Discover に AMP ページと正規バージョンの記事が表示される際に、大きなサムネイル画像を表示しないようにする場合は、max-image-preview の値に standard または none を指定します。

例:

<meta name="robots" content="max-image-preview:standard">

max-video-preview: [number]

検索結果でこのページの動画が動画スニペットとして表示される際の最大秒数を [number] に設定します。

max-video-preview ルールが指定されていない場合、Google は検索結果に動画スニペットを表示する可能性があり、その場合、プレビューの長さは Google によって任意に選択されます。

特別な値:

  • 0: 静止画像のみ使用できます。max-image-preview 設定に従います。
  • -1: 制限はありません。

これは、すべての形式の検索結果(Google ウェブ検索、Google 画像検索、Google ビデオ、Discover、アシスタント)に適用されます。解析可能な [number] が指定されていない場合、このルールは無視されます。

例:

<meta name="robots" content="max-video-preview:-1">

notranslate

検索結果でこのページの翻訳を提供しません。このルールが指定されていない場合、Google は検索クエリとは異なる言語の検索結果のタイトルリンクとスニペットを翻訳して表示します。ユーザーが翻訳されたタイトルリンクをクリックすると、それ以降、そのページに対するユーザー操作はすべて Google 翻訳を介して行われ、リンク先を表示する際も自動的に翻訳されます。

noimageindex

このページの画像をインデックスに登録しません。この値が指定されていない場合、ページ上の画像がインデックスに登録され、検索結果に表示される可能性があります。

unavailable_after: [date/time]

指定した日時以降は、このページを検索結果に表示しません。日時は広く採用されている形式で指定する必要があります。たとえば、RFC 822RFC 850ISO 8601 が挙げられますが、これらに限定されません。有効な日時が指定されていない場合、このルールは無視されます。デフォルトでは、コンテンツの有効期限はありません。

このルールが指定されていない場合、このページは検索結果に無期限に表示される可能性があります。指定した日時が経過すると、Googlebot は URL のクロール頻度を大幅に下げます。

例:

<meta name="robots" content="unavailable_after: 2020-09-21">

インデックス登録と表示に関するルールの組み合わせの処理

robots meta タグルールをカンマで結合するか、複数の meta タグを使用することで、複数のルールからなる指示を作成できます。次に示すのは、ページをインデックスに登録せず、ページ上のリンクをクロールしないようウェブクローラに指示する robots meta タグの例です。

カンマ区切りのリスト

<meta name="robots" content="noindex, nofollow">

複数の meta タグ

<meta name="robots" content="noindex">
<meta name="robots" content="nofollow">

テキスト スニペットを 20 文字に制限し、大きな画像プレビューを許可する例を次に示します。

<meta name="robots" content="max-snippet:20, max-image-preview:large">

複数のクローラに異なるルールが指定されている場合、検索エンジンはネガティブなルールを組み合わせて使用します。次に例を示します。

<meta name="robots" content="nofollow">
<meta name="googlebot" content="noindex">

これらの meta タグを含むページを Googlebot がクロールする際は、noindex, nofollow ルールが指定されていると解釈します。

data-nosnippet HTML 属性の使用

HTML ページのテキスト部分をスニペットとして使用しないように指定できます。これは、span 要素、div 要素、section 要素の data-nosnippet HTML 属性を使用して、HTML 要素レベルで行えます。data-nosnippet論理属性とみなされます。すべての論理属性と同様、指定された値は無視されます。マシンによる解釈が確実に行われるように、HTML によるセクションの記述が正しく、すべてのタグが適切に閉じられていることを確認してください。

次に例を示します。

<p>This text can be shown in a snippet
<span data-nosnippet>and this part would not be shown</span>.</p>

<div data-nosnippet>not in snippet</div>
<div data-nosnippet="true">also not in snippet</div>
<div data-nosnippet="false">also not in snippet</div>
<!-- all values are ignored -->

<div data-nosnippet>some text</html>
<!-- unclosed "div" will include all content afterwards -->

<mytag data-nosnippet>some text</mytag>
<!-- NOT VALID: not a span, div, or section -->

<p>This text can be shown in a snippet.</p>
<div data-nosnippet>
  <p>However, this is not in snippet.</p>
  <ul>
    <li>Stuff not in snippet</li>
    <li>More stuff not in snippet</li>
  </ul>
</div>

Google では通常、ページをインデックスに登録する際にレンダリングを行いますが、レンダリングは保証されていません。このため、レンダリングの前後に data-nosnippet の抽出が発生する可能性があります。レンダリングに伴う不確実性を回避するには、JavaScript を使用して既存のノードの data-nosnippet 属性の追加または削除を行わないようにします。JavaScript を使用して DOM 要素を追加する場合は、ページの DOM に最初に要素を追加する際に、必要に応じて data-nosnippet 属性を加えます。カスタム要素を使用していて、data-nosnippet を使う必要がある場合は、div 要素、span 要素、section 要素でラップまたはレンダリングしてください。

構造化データの使用

Robots meta タグでは、検索結果として表示するために Google がウェブページから自動的に抽出するコンテンツの量を調整します。一方、多くのサイト運営者が、特定の情報を検索プレゼンテーションで使用できるようにするために、schema.org の構造化データを使用しています。Robots meta タグの制限は、その構造化データの使用には影響を与えません。ただし、他のクリエイティブ ワークに指定された構造化データの article.description 値と description 値を除きます。これらの description 値に基づいてプレビューの最大文字数を指定するには、max-snippet ルールを使用します。たとえば、テキスト プレビューが制限される場合でも、ページの recipe 構造化データはレシピ カルーセルに表示できます。テキスト プレビューの長さは max-snippet で制限できますが、リッチリザルトの構造化データを使用して情報が提供される場合、その robots meta タグは適用されません。

ウェブページの構造化データの使用を管理するには、構造化データの種類と値を変更し、情報を追加または削除して、必要なデータのみを提供するようにします。また、構造化データは data-nosnippet 要素内で宣言された場合も、検索結果に使用できます。

X-Robots-Tag の実用的な実装

サイトの HTTP 応答に X-Robots-Tag を追加するには、サイトのウェブサーバー ソフトウェアの構成ファイルを使用します。たとえば、Apache ベースのウェブサーバーでは、.htaccess ファイルや httpd.conf ファイルを使用できます。X-Robots-Tag を HTTP 応答で使用することには、サイト全体に適用されるクロールルールを指定できるという利点があります。正規表現がサポートされているため、柔軟な指定が可能です。

たとえば、サイト全体の .PDF ファイルについて、HTTP 応答に noindex, nofollow X-Robots-Tag を追加する場合、次のスニペットを追加します。Apache であれば、サイトのルートに配置した .htaccess ファイルまたは httpd.conf ファイルに、NGINX であれば、サイトの .conf ファイルに追加します。

Apache

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

NGINX

location ~* \.pdf$ {
  add_header X-Robots-Tag "noindex, nofollow";
}

X-Robots-Tag は、画像ファイルなど、HTML で robots meta タグを使用できない HTML 以外のファイルにも使用できます。次に示す例では、サイト全体の画像ファイル(.png.jpeg.jpg.gif)に noindex X-Robots-Tag ルールを追加しています。

Apache

<Files ~ "\.(png|jpe?g|gif)$">
  Header set X-Robots-Tag "noindex"
</Files>

NGINX

location ~* \.(png|jpe?g|gif)$ {
  add_header X-Robots-Tag "noindex";
}

個々の静的ファイルに X-Robots-Tag ヘッダーを設定することもできます。

Apache

# the htaccess file must be placed in the directory of the matched file.
<Files "unicorn.pdf">
  Header set X-Robots-Tag "noindex, nofollow"
</Files>

NGINX

location = /secrets/unicorn.pdf {
  add_header X-Robots-Tag "noindex, nofollow";
}

robots.txt ルールとインデックス登録および表示に関するルールとの組み合わせ

robots meta タグと X-Robots-Tag HTTP ヘッダーは、URL がクロールされるときに検出されます。robots.txt ファイルでページのクロールが許可されていない場合、インデックス登録や表示に関するルールについての情報は検出されず、その結果無視されます。インデックス登録や表示に関するルールを適用する必要がある場合、それらのルールを含む URL のクロールを不許可にすることはできません。