Domain 52 / 225
Product 構造化データは商品スニペットと Merchant Listing で使い分ける
Product schema の要点
Product 構造化データには「Product Snippet(購入できないページ向け)」と「Merchant Listing(購入できるページ向け)」の 2 系統がある。Merchant Listing の方が情報量が多くて推奨だが、Product Snippet は editorial レビューに向く。両方の必須プロパティを満たすと両機能の対象になる
なぜこれを学ぶか
Product 構造化データは EC の検索流入と CTR に最も直接効く施策。 価格 / 在庫 / 評価星が SERP に表示されると、CTR が 30-80% 上がる事例も。
EC・商品紹介メディア・比較サイトで必須。
学ばないと起きること
| よくある事故 | 被害 |
|---|---|
| Product Snippet と Merchant Listing の使い分けを誤る | 想定したリッチリザルトに出ない |
| 必須プロパティ欠落 | リッチリザルト対象外 |
| 在庫 / 価格を構造化データと HTML で不一致 | スパム判定リスク、リッチリザルト剥奪 |
| Product Variants(カラー違い等)を個別データで実装 | 親商品関連性を Google が認識できない |
| 偽 AggregateRating(実レビューなしで評価記載) | 構造化データ手動対策 |
学ぶメリット
- EC で商品リッチリザルトを獲得し CTR を上げられる
- Product Snippet と Merchant Listing の選択を即判断できる
- 商談で「両方の必須プロパティを満たすと両対象」を即答できる
仕組み
2 系統の Product 構造化データ
| 系統 | 用途 | 主な機能 |
|---|---|---|
| Product Snippet | 商品が購入できないページ(editorial レビュー / 比較記事) | Pros / Cons / Review |
| Merchant Listing | 商品を購入できるページ(EC) | 価格 / 在庫 / 配送 / 返品 |
EC は Merchant Listing、メディアの商品紹介記事は Product Snippet。両方の必須プロパティを満たすと 両機能の対象になる。
必須プロパティ(Merchant Listing)
| プロパティ | 内容 |
|---|---|
name | 商品名 |
image | 商品画像(複数比率推奨) |
offers | 価格 / 在庫 / 通貨 |
推奨プロパティ
| プロパティ | 内容 |
|---|---|
description | 商品説明 |
brand | ブランド |
aggregateRating | レビュー集計(実レビューがある場合のみ) |
review | 個別レビュー |
sku | SKU 番号 |
gtin | 国際商品識別番号 |
mpn | メーカー型番 |
実装例(Merchant Listing)
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "青いマキシ丈ドレス(リネン素材)",
"image": [
"https://example.com/dress-1x1.jpg",
"https://example.com/dress-4x3.jpg",
"https://example.com/dress-16x9.jpg"
],
"description": "リネン 100% のマキシ丈ドレス。サイズ S / M / L、カラー青 / 赤 / 緑",
"brand": {"@type": "Brand", "name": "spotyou"},
"sku": "DRESS-BLUE-M",
"offers": {
"@type": "Offer",
"url": "https://example.com/products/dress-blue",
"priceCurrency": "JPY",
"price": "12800",
"availability": "https://schema.org/InStock",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {"@type": "MonetaryAmount", "value": "0", "currency": "JPY"},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {"@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY"},
"transitTime": {"@type": "QuantitativeValue", "minValue": 1, "maxValue": 3, "unitCode": "DAY"}
}
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "120"
}
}
</script>
キー概念
availability の値
| 値 | 意味 |
|---|---|
InStock | 在庫あり |
OutOfStock | 在庫切れ |
PreOrder | 予約受付中 |
BackOrder | 入荷待ち |
Discontinued | 販売終了 |
LimitedAvailability | 在庫僅少 |
在庫変化したら必ず構造化データも更新。
Product Variants(カラー / サイズ違い)
{
"@type": "ProductGroup",
"productGroupID": "DRESS-MAXI",
"variesBy": ["color", "size"],
"hasVariant": [
{"@type": "Product", "color": "blue", "size": "M", "offers": {...}},
{"@type": "Product", "color": "red", "size": "M", "offers": {...}},
{"@type": "Product", "color": "blue", "size": "L", "offers": {...}}
]
}
ProductGroup でバリエーションを親で束ねると、Google が「同じ商品の色違い / サイズ違い」を認識する。
AggregateRating の正しい使い方
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "120",
"bestRating": "5",
"worstRating": "1"
}
注意:
- ページ内に対応する実レビューが表示されていること
- 偽レビュー / 自社操作の評価は構造化データ手動対策の対象
- ページ全体での集計(aggregate)は OK、個別レビューは review プロパティで
Pros / Cons(Product Snippet 限定)
editorial レビュー記事で:
"review": {
"@type": "Review",
"reviewRating": {...},
"name": "編集部レビュー",
"author": {"@type": "Person", "name": "山田 太郎"},
"positiveNotes": {
"@type": "ItemList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "軽量で持ち運びやすい"},
{"@type": "ListItem", "position": 2, "name": "バッテリー寿命が長い"}
]
},
"negativeNotes": {
"@type": "ItemList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "価格が高め"}
]
}
}
Product Snippet で「Pros / Cons」リッチリザルトに表示される。
よくある誤解
| よくある誤解 | 実際のところ | 出典 |
|---|---|---|
| Product Snippet と Merchant Listing は同じ | 用途が違う、購入できる EC は Merchant Listing | Product 構造化データ |
| Product 構造化データを入れれば必ずリッチリザルトに出る | 出る権利を得るだけ、Google の判定 | 同上 |
| AggregateRating は自由に書ける | ページ内に対応する実レビューが必須、偽は構造化データ手動対策 | 構造化データ品質ガイドライン |
| カラー違いを別 Product でそれぞれ書く | ProductGroup + variesBy で親子関係を Google に伝える | Product Variants |
| availability を InStock にしておけば Google が自動判定 | 在庫変化時に必ず構造化データも更新する必要あり | Product 構造化データ |
| Pros / Cons は EC の商品ページに使える | Product Snippet(editorial レビュー)専用 | 同上 |
| sku / gtin は不要 | 推奨プロパティ、Google が商品を一意識別するのに役立つ | 同上 |
| 在庫切れ商品の構造化データは消すべき | OutOfStock として残し、ページも維持 | 同上 |
実務での適用
EC サイトの商品ページ実装フロー
- CMS テンプレに Merchant Listing 用 JSON-LD を組み込み
- 商品マスタから動的に値を生成
- 在庫変化トリガで構造化データも自動更新
- リッチリザルトテストで全カテゴリのサンプル URL を検証
- Search Console「拡張」レポートで監視
Product Variants の実装
カラー / サイズ違いの実装:
親商品: /products/dress-maxi (ProductGroup)
バリアント:
- /products/dress-maxi-blue-m
- /products/dress-maxi-blue-l
- /products/dress-maxi-red-m
- /products/dress-maxi-red-l
各 URL に Product 構造化データ + 親 ProductGroup への紐付け。
在庫管理との連動
在庫管理システムから商品ページへの連動:
- 在庫数が 0 になる →
availability: OutOfStock - 入荷予定あり →
availability: BackOrder - 廃番 →
availability: Discontinuedまたは 410 / 301
トラブル別の対処
| 症状 | 確認すべきこと |
|---|---|
| 商品リッチリザルトに価格 / 在庫が出ない | offers の必須プロパティの完全性、リッチリザルトテストで確認 |
| カラー違い商品がカニバライズ | ProductGroup + variesBy で親子関係を明示 |
| Search Console「拡張」で Product エラー急増 | 構造化データと HTML の不一致、必須プロパティ欠落 |
| 偽レビュー疑いで手動対策 | aggregateRating の根拠、ページ内の実レビュー表示確認 |
| Pros / Cons リッチリザルトに出ない | Product Snippet 構造化データ + 推奨プロパティ充実 |
公式ソース
- Product 構造化データ
- Product Snippet 構造化データ
- Merchant Listing 構造化データ
- Product Variants 構造化データ
- 構造化データ品質ガイドライン
自己テスト
Q1. Product Snippet と Merchant Listing の使い分けは?
Product Snippet = 購入できないページ(editorial レビュー / 比較記事) Merchant Listing = 購入できる EC 商品ページ
Q2. Merchant Listing の必須プロパティは?
name / image / offers(price / priceCurrency / availability)
Q3. AggregateRating を書くときの注意は?
ページ内に対応する実レビューが表示されている必要がある。偽レビューは構造化データ手動対策
Q4. カラー違い / サイズ違い商品の正しい構造化方法は?
ProductGroup + variesBy + hasVariant で親子関係を Google に伝える
Q5. 在庫切れ商品の availability の値は?
OutOfStock。商品ページは維持し、構造化データを更新する
Q6. Pros / Cons のリッチリザルトはどの構造化データに使える?
Product Snippet 専用。editorial レビュー記事で positiveNotes / negativeNotes を指定
Q7. sku / gtin / mpn は不要なプロパティか?
推奨プロパティ。Google が商品を一意識別するのに役立つ、特に Merchant Listing で重要
Q8. Product 構造化データを入れれば必ずリッチリザルトに出るか?
出る権利を得るだけ。表示するかは Google のアルゴリズム判定
これらの内容を採点付きで挑戦したい場合は、本ドメインのプロ試験で 5 問形式で確認できる。