max-snippetの使い方|スニペットを全部消さずに短くする設定
有料記事の要点が、検索結果の説明文にほとんど出てしまっている。かといって nosnippet で説明文を消すと、何のページか伝わらずにクリックされなくなりそうで怖い。
答えは、robots メタタグの max-snippet で、説明文の長さに上限を付けることです。Google の公式ドキュメントは、スニペット(検索結果でタイトルの下に出る短い説明文)の扱いを次のように整理しています。消すなら nosnippet、長さを決めるなら max-snippet。全部消すか、全部出すか。その二択ではありません。
つまずきやすいのは、数値そのものより、ほかの指定との重なりです。
nosnippet と max-snippet は「消す」と「短くする」の違い
Google の「検索結果のスニペットを管理する」には、スニペットを制御する方法がこうまとめられています。
To control snippets, use
nosnippetto prevent them ormax-snippetto set length. Thedata-nosnippetattribute blocks specific content.
つまり、目的ごとに道具が分かれています。
| やりたいこと | 使う指定 | 書く場所 | 向いている場面 |
|---|---|---|---|
| ページの説明文を出さない | nosnippet | robots メタタグ | 説明文が出ること自体が困るページ |
| 説明文の長さに上限を付ける | max-snippet | robots メタタグ | 中身の雰囲気は見せたいが、出しすぎたくないページ |
| ページの一部だけ説明文から外す | data-nosnippet | 本文の HTML 要素の属性 | 価格や答えの部分だけ引用されたくないページ |
表の3行目は、ページ単位ではなく文章の一部を指定する点が違います。外したい箇所がはっきり決まっているなら、こちらのほうが影響は小さく済みます。書き方は「検索とAI概要の引用を部分制御|data-nosnippetの書き方」で詳しく扱っています。
max-snippet が役に立つのは、どこを隠すかではなく、どれだけ出すかを決めたい場合です。
書き方:max-snippet のあとに数値を書く
同じページには、もう少し具体的な説明もあります。
To specify the maximum length for your snippets, use the max-snippet: [number] meta tag.
スニペットの最大の長さを指定するには、max-snippet: [number] のメタタグを使う、ということです。上限を80にしたいなら、たとえば次のような形になります。
<head>
<meta name="robots" content="max-snippet:80">
</head>
[number] の部分が上限です。ここでは、ふつうの正の数値で上限を決める使い方に絞ります。それ以外の値を入れたくなったら、公式の仕様ページの表で扱いを確かめてからにしてください。
数値を書き忘れたり、全角で書いたりしないよう注意します。仕様ページには、プレビュー系の別の指定(max-video-preview)について「読み取れる数値がなければ無視される」と書かれています。max-snippet でも、書式が崩れていれば意図どおりに読まれないことがある、と考えておくほうが安全です。
HTML 以外のファイルは X-Robots-Tag
PDF などの HTML 以外のファイルには、メタタグを書けません。仕様ページは、robots メタタグをページ単位の設定、X-Robots-Tag(サーバーが返す HTTP レスポンスのヘッダー)を HTML 以外のリソース向けの設定として説明しています。
公式ページに載っているのは、サイト全体の画像ファイルに noindex を付ける例です。NGINX なら次の形です。
location ~* \.(png|jpe?g|gif)$ {
add_header X-Robots-Tag "noindex";
}
Apache 向けの例も同じページにあります。PDF の説明文の長さを抑えたいときは、ヘッダーに何をどう書けるかを、仕様ページの表と例で確認してから設定してください。
指定が重なったら「いちばん厳しい」ほうが効く
指定は、気づかないうちに重なります。テンプレートが出すメタタグと、CMS のプラグインが出すメタタグ。その両方に robots の指定が入っていた、というのはよくある話です。
公式の仕様ページは、指定どうしが食い違う場合のルールを、例つきで書いています。
In the case of conflicting robots rules, the more restrictive rule applies. For example, if a page has both max-snippet:50 and nosnippet rules, the nosnippet rule will apply.
食い違ったら、より厳しいほうが適用される。max-snippet:50 と nosnippet が両方あれば、nosnippet が効く。そういうルールです。
困るのは、これに気づかない場合です。テンプレートの共通部分に nosnippet が残っていると、個別ページで max-snippet をいくら調整しても説明文は出ません。それなのに、原因を数値のせいだと思い込んでしまいます。
同じ考え方で、max-snippet:150 と max-snippet:50 が別々のタグに書かれていたら、短いほうが効く可能性が高いと見ておくのが自然です。だから、数値を変える前に「このページに、ほかの指定が書かれていないか」を先に確かめます。
AI による概要にも同じ指定が挙げられている
AI による概要(検索結果の上部などに、AI が複数のページをまとめて答えを出す機能)に、文章を長く引用されたくない。そう考えて max-snippet を調べる人もいるはずです。
Google の「AI 機能と Google 検索」には、次のように書かれています。
To limit the information shown from your pages in Search, use nosnippet , data-nosnippet , max-snippet , or noindex controls.
検索で表示される情報を制限したいなら、これらの指定を使う、ということです。AI 機能の説明ページで挙げられている手段は、ふだんのスニペット制御と同じものです。
裏を返すと、max-snippet は AI 機能だけを狙って制限する手段ではない、と考えておくのが安全です。上限を短くすれば、ふつうの検索結果の説明文も短くなるかもしれません。そこは割り切りが必要です。
なお、同じページには、Google のほかのシステムでの AI の学習などを制限したい場合は Google-Extended を参照するよう書かれています。検索での表示の話とは別の仕組みなので、混ぜないようにしてください。
よくある誤解:「上限を付ければ、その長さで出る」
max-snippet:80 と書けば、毎回ちょうど80字で切り取られる。そう考えがちです。
ただ、公式の説明は「最大の長さを指定する」です。ちょうどその長さで出すとは書かれていません。上限より短い説明文が出ることもある、と考えておくのが安全です。
また、説明文の見え方は、検索した語や端末によっても変わることがあります。スマートフォンで短く見えたからといって、設定が効いた証拠にはなりません。逆に、長く見えたからといって、効いていないとも言い切れません。判断するときは、同じ検索語・同じ端末で、設定の前後を比べるようにします。
そもそも説明文に meta description(ページの説明文として HTML に書く文)が使われない理由は、「メタディスクリプションが反映されない原因と直し方」にまとめています。
例:会員制ノウハウ記事で上限を決める
ここからは、会員制のノウハウ記事を持つサイトを例に、流れを一度通してみます。
状況はこうです。記事の冒頭は無料で読めて、続きは会員限定。検索結果の説明文に、無料部分の要点がまるごと出ていて、クリックしなくても答えが分かってしまう。社内からは「説明文を消してほしい」と言われています。
- 何を見せたいかを決める。 無料部分のうち、「この記事で何が分かるか」が伝わる最初の一文だけは見せたい。要点の箇条書きは見せたくない。ここで、全部消す
nosnippetは候補から外れます。 - 部分指定で足りるかを考える。 見せたくないのが要点の箇条書きだけなら、
data-nosnippetをその部分に付けるほうが的確です。今回は「どこが引用されるか読めない」ので、長さで抑えるmax-snippetを選びます。 - 上限の数値を仮に決める。 冒頭の一文の長さを数えて、それが収まる程度の数値にします。この値はあくまで出発点です。
- 既存の指定を洗い出す。 ページのソースを開き、
name="robots"のメタタグがいくつあるかを数えます。2つ以上あれば、それぞれの中身を見ます。nosnippetが残っていれば、前の節のとおりそちらが効きます。 - メタタグを入れる。 記事テンプレートの
<head>にmax-snippet:[数値]を足します。全記事ではなく、会員限定のある記事だけに出し分けます。 - 出力を確かめる。 公開後のページのソースで、メタタグが1つだけ、意図した数値で出ているかを確認します。ログインした状態と、していない状態の両方で見ておくと、出し分けの漏れに気づけます。
- 時間をおいてから比べる。 検索結果への反映には時間がかかることがあります。入れた翌日に検索結果を見て「変わっていない」と判断するのは早すぎます。
7番で見るのは、検索結果の見た目と、クリック率(検索結果に出た回数のうち、クリックされた割合)の動きです。説明文が短くなったあとにクリック率が下がったなら、上限が短すぎた可能性があります。ただし、クリック率は順位や時期、検索結果に並ぶほかのページにも左右されます。設定だけが原因と決めつけず、仮説として扱ってください。
4番で nosnippet が見つかったら、それが冒頭の「説明文を消すと怖い」の答えにもなります。消すつもりがなかったのに消えていた、ということです。
タイトルと説明文がクリック率にどう効くかは「クリックされるタイトルと説明文の作り方」で扱っています。
設定前のセルフチェック
最後に、max-snippet を入れる前に確認したいことを表にまとめます。1つでも「いいえ」があれば、先にそちらを片づけてください。
| 確認すること | はいの場合 | いいえの場合 |
|---|---|---|
| 説明文を「消す」のではなく「短くしたい」のか | max-snippet を検討する | nosnippet を検討する |
| 隠したい箇所が特定できないか | ページ単位の max-snippet | data-nosnippet で部分指定する |
| ページ内の robots メタタグに、より厳しい指定が残っていないか | そのまま進める | 先に既存の指定を整理する |
数値は半角で、max-snippet: のあとに書いているか | そのまま進める | 書式を直す |
| HTML のページか | robots メタタグで指定する | X-Robots-Tag の書き方を仕様ページで確認する |
| 比べるときに、順位や時期の変化も記録しているか | 結果を判断材料にできる | 記録してから比べる |
いちばん大事なのは、3行目です。指定が重なると、書いた本人の意図とは関係なく、厳しいほうが勝ちます。数値をいじる前に、まず今ページに何が書かれているかを確かめる。そこから始めてください。
出典
