メタタグごとに役割が違う
メタタグは、ページのheadにある、機械が読めるHTML要素です。ページを説明するもの、クローラーに指示するもの、ソーシャルのプレビュー用データを提供するものがあります。選ぶときは機能で考えます。robotsディレクティブはインデックス登録の可否を制御し、メタディスクリプションは検索結果のスニペットに使われることがあり、ソーシャル用のメタデータはリンクのプレビューを支えます。どのタグも、内容の薄いページや利用できないコンテンツを、役立つ検索結果に変えることはできません。
title要素は関連していますが、それ自体はメタタグではありません。検索エンジンは、表示されている情報や構造化された情報を複数使って、タイトルリンクを生成できます。そのため、titleと見出しは、フレーズを機械的に繰り返すのではなく、ページの内容と合わせます。メタディスクリプションは、スニペットへの提案です。クエリにより合う表示テキストが他にあれば、Googleはそれを使えます。
robotsディレクティブとスニペット
| 要素 | 主な機能 | テスト |
|---|---|---|
| meta robots noindex | HTMLページをインデックスに登録しないよう、クローラーに伝える | クロールされたHTMLに含まれていて、ページをクロールできる |
| X-Robots-Tag | HTTPヘッダーでrobotsディレクティブを送る | 意図したURLでレスポンスヘッダーが返る |
| meta description | ページの要約テキストを提案する | 表示されているコンテンツを正確に反映している |
| Open Graphメタデータ | ソーシャルのプレビューを提供する | デバッガーが、最終的な正規ページの値を読み取れる |
PDFや画像にはHTMLのheadがないため、多くの場合、適用できるディレクティブはX-Robots-Tagです。HTMLページでは、meta robotsとヘッダーのディレクティブが互いに矛盾してはいけません。robots.txtでブロックしたページは、noindexのルールを読むためのクロールができない場合があります。そのため、ブロックとインデックスからの削除は、別々の判断になります。
レスポンスを確認する
- 正規URLを取得し、HTMLとレスポンスヘッダーの両方を確認します。
- title、description、canonical、robotsの値が、表示されるページの目的に合っているか確認します。
- 別ホスト、末尾スラッシュ違い、絞り込みURLで、矛盾するディレクティブがないかテストします。
- URL検査は、後からクローラーの状況を知る証拠として使います。実装の唯一のテストにはしません。
- キャッシュやデプロイの変更後に再チェックします。テンプレートがページ単位の値を上書きすることがあるためです。
例えば、ページネーションのあるカテゴリには、現在の商品に合った役立つtitleとdescriptionがあってよいのですが、絞り込み用テンプレートのnoindexを引き継いではいけません。タグを変更する前に、実際のレスポンス、canonicalの指す先、サイトマップに含まれているかを比べます。
矛盾するシグナル
よくある不具合は、エラーメッセージを表示する200のページ、リダイレクトされるURLを指すcanonical、サイトマップに入っているnoindexのページ、何百ものページにコピーされた汎用的なdescriptionです。対策はタグを増やすことではありません。HTTPレスポンス、表示されるコンテンツ、canonical、robotsディレクティブ、内部リンク、サイトマップのすべてで、意図した1つの状態にそろえることです。