すべてのschema.orgをGoogleはサポートする、可能な限り多くの構造化データをマークアップするといい

[レベル: 上級]

  • schema.org でマークアップされた構造化データのすべてのプロパティをGoogle はインデックスする
  • 可能な限り多くの構造化データをマークアップした方がいい

2018年4月6日に開催された ISM Spin-off #4 − Google Search Night で Google の Gary Illyes(ゲイリー・イリェーシュ)氏は、このように発言しました。
セッションの合間に僕が 1対1 でゲイリーと話したときのことです。

検索に使っていなくてもインデックスしている

schema.org が定義する構造化データには非常に多くのタイプとプロパティが存在します。
リッチリザルトなどで Google が利用しているのは、ほんのごく一部です。
いったい Google はどのタイプのどのプロパティをサポートしているのでしょうか?
リッチリザルトで使われない構造化データはマークアップしていても無視されるのでしょうか?

ゲイリーによれば、

すべてサポートしている。検索に出現しなくてもすべてインデックスしている。

とのことです。

レビューやレシピのようなリッチリザルトやパンくずリスト、サイトリンク検索ボックスなどに必要な構造化データは、目に見える形で検索結果に現ます。
したがって、構造化データを設定する意味がはっきりわかると言えるでしょう。

しかし、検索結果に現れないとしてもできるだけ多くの構造化データをマークアップすることをゲイリーは推奨していました。

理由は、構造化データがたくさんあればあるほど、Google のコンテンツ理解の手助けになるからです。
ページにある構造化データはすべて Google にインデックスされます。
そして、ユーザーのクエリに関連性があるかどうかをより的確に判断するヒントになります。

John Mueller は検索結果に現れる構造化データの利用をまず推奨

一方で John Mueller(ジョン・ミューラー)氏は、構造化データにどの程度まで力を入れるべきかという Reddit での AMA に投稿された質問には次のようにアドバイスしています。

明確な答えはないが、私なら、目に見える効果をもたらす構造化データにフォーカスするだろう(作業と結果の関係性をはっきりと把握できるから)。

その他の点に関しては、適度にやればいい。

私たちはページを理解するために確かに構造化データを使っていて、関連性が認められた場合には上位表示に役立つ。

だが構造化データがページにあるからといって、それだけで1位に順位が一気に上がるということはない。

ジョンの場合は、まずリッチリザルトなど目に見える形で結果を確認できる構造化データに集中して取り組むことを勧めています。
そのうえで、次のステップとして別の構造化データの追加を提案してます。

追加する理由はゲイリーと同じで、Google のコンテンツ理解を手助けし、その結果、検索での上位表示に役立つことがあるからです。

余力があれば、自社ビジネスに関連性がある構造化データを可能な限り多くマークアップ

ゲイリーは積極的になるべく多くの構造化データをマークアップすることを推奨しています。
対してジョンは控えめに推奨しています。
どちらにしても、多くの構造化データを推奨している点は共通です。

有益で高品質なコンテンツを提供できている、サイトが使いやすく表示スピードも速い、モバイル対応も完璧のように最優先でやるべきことがやれている、かつリソースに余力があるなら、積極的に構造化データの拡大に取り組むといいのではないでしょうか(ただし、リッチリザルトなど検索に使われる構造化データは最優先事項の1つ)。

あるいは競争が激しいジャンルでライバルに少しでも優位に立つための手段として、構造化データにかけるのも選択肢に含めてもよさそうです。

そうは言っても、上から順に無分別にプロパティを詰め込んでいくのはおすすめしません。
自社ビジネスや自社サービスにとって関連性が高いと思われるタイプやプロパティから追加していくことが適切でしょう。

たとえば、レシピ (Recipe) の recipeInstructions プロパティには料理の作り方を記述します。
このプロパティに、作り方の説明文をただ単純にテキストで書くのではなく何かのやり方の手順を表す HowToStep を組み込むことができます。

<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "Recipe",
"name": "ゆで卵",
"image": "https://example.com/photos/boiled-eggs.jpg",
"recipeInstructions": {
"@type": "HowToStep",
"itemListElement": [
{"@type": "ListItem",
"position": 1,
"description": "鍋にお湯を沸かす。"
},
{"@type": "ListItem",
"position": 2,
"description": "沸騰したお湯に卵を入れる。"
},
{"@type": "ListItem",
"position": 3,
"description": "10分ゆでる。"
},
{"@type": "ListItem",
"position": 4,
"description": "卵を取り出し、水で冷やす。"
}
]
}
}

こうした方が、調理の手順がより明確に検索エンジンに伝わるかもしれません。

なお、上のコードは cookTimenutrition などレシピ構造化データの推奨フィールドを省略しているので、構造化データテストツールで検証すると警告が出ます。
すべての schema.org を SDTT はサポートしてはいません。
検証するとエラーや警告が出てくることがあっても、それはツール上の問題です。
技術的に正しくマークアップできていれば、Google 検索ではインデックスされます。