• JSON-LDは表示用HTMLと同じデータから出力して内容を一致させる

JSON-LDは表示用HTMLと同じデータから出力して内容を一致させる

公開日: 執筆:佐藤

JSON-LDを追加するときは、画面に表示する名称やURLとは別に、構造化データだけを手入力しないでください。表示用HTMLとJSON-LDを同じデータから出力すれば、店舗名を変更したのに構造化データだけが古い、といった食い違いを防げます。

JSON-LDは、人に見せる内容の代わりではありません。HTMLが表示を受け持ち、JSON-LDがその内容を機械で扱える形にします。役割を分けても、示す事実はそろえます。

JSON-LDはscript要素でHTMLへ埋め込む

W3CのJSON-LD 1.0仕様では、type属性をapplication/ld+jsonにしたscript要素へJSON-LDを埋め込めます。

次は説明用の仮例です。

<h1>サンプル商店 駅前店</h1>
<p><a href="http://www.example.com/stores/ekimae">店舗案内を見る</a></p>

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "LocalBusiness",
  "name": "サンプル商店 駅前店",
  "url": "http://www.example.com/stores/ekimae"
}
</script>

この例では、見出しの店舗名とname、リンク先とurlが対応します。JSON-LDを追加しただけでは、利用者が読む店舗案内は完成しません。先にHTMLで必要な案内を作り、その内容を構造化して示します。

表示と構造化データは一つの正本から作る

GoogleのJSON-LDとWeb Componentsに関する説明は、データベースに保存した情報をJSON-LDとしてページへ埋め込み、表示部品とGooglebotの双方が使う構成を示しています。

実装で大切なのは、Web Componentsを採用すること自体ではありません。名称、URL、所在地などの値を保存する場所を一つに決め、表示用HTMLとJSON-LDをそこから作ることです。

店舗情報を管理画面へ登録するなら、次のように対応を決めます。

管理する値 HTMLでの表示先 JSON-LDでの出力先
店舗名 ページの主見出し name
店舗ページのURL 店舗案内へのリンク url
所在地 所在地の表示欄 対応する所在地情報

担当者が店舗名を一度直せば、両方へ反映される形が理想です。二つの入力欄へ同じ名称を登録する設計では、更新回数が増えるほど差が生じます。

先に項目の対応表を作る

構造化データを実装する前に、ページが扱う対象と、表示済みの項目を整理してください。語彙の種類を先に増やすと、画面にはない値を構造化データのためだけに用意しやすくなります。

手順は次の順番です。

  1. ページが扱う対象を一つ決める
  2. 利用者が必要とする名称、URL、所在地などをHTMLへ表示する
  3. 表示項目と構造化データのプロパティを対応させる
  4. 同じ保存データからHTMLとJSON-LDを出力する
  5. 出力後のHTMLと構造化データを検査する

一ページで店舗と催事を扱う場合も、値を混ぜて一つの物として扱いません。店舗の情報と催事の情報を分け、それぞれがどの表示箇所に対応するかを決めます。

更新時は空欄と食い違いを分けて調べる

検査では、JSONの構文エラーだけでなく、表示内容との対応を見ます。

空欄は、必要なデータをまだ登録していない状態です。食い違いは、HTMLとJSON-LDが異なる値を示す状態です。たとえば、HTMLの店舗名が新しく、JSON-LDのnameだけが旧名称なら、JSONの構文が正しくても管理方法に問題があります。

確認順は、次の三段階に分けます。

  1. JSONとして正しく解釈できるか
  2. 選んだ種類とプロパティの関係が正しいか
  3. HTMLで利用者へ見せる事実と一致するか

構文と内容を一度に調べると、どこを直したのか分かりにくくなります。まず機械が読める形を確認し、次に語彙、最後に表示との一致を見ます。

検索結果の表示を保証するために追加しない

構造化データは、ページの内容を検索エンジンへ伝える手段です。追加したからといって、特定の検索表示や順位が保証されるわけではありません。利用者へ見せる情報が乏しいまま、JSON-LDだけを詳しくする順序も逆です。

店舗情報の更新を制作会社へ委託する場合は、データを保存する場所、HTMLへ出力するテンプレート、JSON-LDへ出力する処理、公開後の検査を分けて引き継ぎます。実装を委託しても、名称や所在地の正本を決める責任は事業者側に残ります。

最初の一手は、構造化データを入れたいページを一つ選び、画面に見える項目とJSON-LDの項目を一行ずつ対応させることです。同じ値を二か所へ手入力しているなら、一つの保存データから出力する形へ直してください。

戻る