構造化データで複数のタイプがある場合の書き方(JSON-LD)
- 投稿日/更新日
結論
2通りの書き方があります
<script type="application/ld+json"> [ {タイプAの構造化データ} , {タイプBの構造化データ} ] </script>
大括弧[]
で全体をくくり、個々のタイプの構造化データは波括弧{}
でくくる。個々のタイプとの間にはカンマ,
で区切る配列方式。
<script type="application/ld+json"> {タイプAの構造化データ} </script> <script type="application/ld+json"> {タイプBの構造化データ} </script>
個々の構造化データをJSONLDのscrptタグでくくる。
解説
{ "@context": "http://schema.org", "@type": "BlogPosting", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://webtech.fukushimaku.jp/kiji/geometrynode_vertex_edge_face_select.html" }, "headline": "【ジオメトリノードの選択を使いこなす】任意の面・辺・点にオブジェクト出し分ける方法", "image": { "@type": "ImageObject", "url": "https://webtech.fukushimaku.jp/s/ogp.png", "height": 320, "width": 320 } }
構造化データのマークアップは、基本的にネストで記載します。上記の場合、メインアイテムBlogPosting
内に、mainEntityOfPage
、headline
、image
といった項目をネストしています。しかし、サイトの構造上やCMSの設計などによって、別々の構造化データとして書き出したい場合もあると思います。よくあるケースとしては、パンくずリストだけは別の構造化データで出力することもあるでしょう。
<script type="application/ld+json"> [ { "@context": "http://schema.org", "@type": "BlogPosting", (省略) }, { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "blender", "item": "https://webtech.fukushimaku.jp/cat/blender/" }, { "@type": "ListItem", "position": 2, "name": "【ジオメトリノードの選択を使いこなす】任意の面・辺・点にオブジェクト出し分ける方法" }] } ] </script>
そういった場合は上記の配列方式や、JSON-LDのスクリプトで個々に書くといった方式がとれます。分けて書いた場合、@idで情報を関連付けた方がいい場合もあるようで、鈴木氏の海外SEOブログを参考にするとよいでしょう。
もちろん、間違っていないかどうかはリッチリザルトテストで必ず確認しましょう。
備忘録として残しておきます。