JavaScriptで動的生成した商品構造化データをGoogleは推奨しない

[レベル: 上級]

商品 (Product) マークアップに関するドキュメントに、ショッピング検索結果の最適化に関する構造化データの処理について、2 つのベストプラクティスを Google は追加しました。

JS 生成の構造化データは要注意

技術に関するガイドラインに次の 2 項目が加わりました。

  • If you’re a merchant optimizing for all types of shopping results, we recommend putting Product structured data in the initial HTML for best results.
  • For JavaScript-generated Product markup: Be aware that dynamically-generated markup can make Shopping crawls less frequent and less reliable, which can be an issue for fast-changing content like product availability and price. If you’re using JavaScript to generate Product markup, make sure your server has enough computing resources to handle increased traffic from Google.

日本語ドキュメントは、この記事を書いている時点では未更新です。
こちらは僕による訳です。

  • あらゆる種類のショッピング検索結果の最適化を目指す販売者の場合、最良の結果を得るには、最初の HTML に商品構造化データを入れることをお勧めします。
  • JavaScript で生成された商品マークアップについて:動的に生成されたマークアップは、ショッピング クロールが少なくなり、信頼性が低下する可能性があることに注意してください。これは、商品の在庫状況や価格など、頻繁に変化するコンテンツでは問題になる可能性があります。JavaScript を使用して商品マークアップを生成する場合は、Google からのトラフィック増加を処理するのに十分なコンピューティングリソースがサーバーにあることを確認してください。

EC サイトでの JavaScript が生成したマークアップを Google はサポートしています。
したがって、Product 構造化データを JavaScript で動的に生成すること自体は可能です。
しかし、Google 側の処理に時間がかかることがあるため、ショッピング関連の検索機能が検索結果に想定したように表示されないことがあるとのことです。
価格や在庫状況などの変更が検索結果にすぐに反映されないケースが出てきます。

レンダリングの問題かとも思ったのですが、クロールの問題のようです。
「ショッピング クロール」というのは、Google StoreBot によるクロールのことでしょうか?

クロールが少なくなるというのは、後半部分を読むと、むしろクロール速度が速くなることでサーバーに過負荷をかけている場合に、意図的に速度を落とすためと解釈できそうです。

いずれにしても、Product 構造化データを JavaScript で生成する構成を Google は推奨していません。
初期状態で、HTML にすでに埋め込まれている状態にすることを推奨しています。
JavaScript 生成を使用するなら SSR(サーバーサイドレンダリング)を実装した方がよさそうです。

EC サイト管理者は注意してください。

#SEO #JavaScript #構造化データ