商品ページの構造化データとは?価格・在庫の記述例と確認方法

公開 更新 9 分で読了
商品ページの構造化データとは?価格・在庫の記述例と確認方法

商品ページの構造化データは、商品名・価格・在庫をGoogleへ伝える記述です。単品商品のJSON-LD例、テストとURL検査、値下げ・売り切れ時の照合方法を説明します。AI検索で必須ではない点も確認します。

商品ページに「3,300円・在庫あり」と表示していても、その内容をGoogleが同じように読み取れているかは、画面を見ただけでは分かりません。そこで確認したいのが、商品ページの構造化データです。

この記事は、日本の通販サイトで商品情報を管理する担当者に向けたものです。HTMLの変更は、編集権限を持つ実装担当者が行う前提で進めます。確認日は2026年9月23日です。

商品ページの構造化データとは

商品ページの構造化データは、商品名・価格・在庫などを、Googleが読み取りやすい決まった形式でページに書き添える情報です。 商品そのものは Product、販売条件は Offer という型(情報の種類を表す名前)で表します。[1]

説明用の例。白いマグカップの商品ページに見えている商品名・3,300円(税込)・在庫ありが、構造化データのProduct(商品)とOffer(販売条件)の2つの枠へ矢印で対応し、Googleが読み取る流れを示す図。検索結果での表示は保証されないことも添えている。

Googleはこの情報を使い、検索結果で価格や在庫、送料などを見せることがあります。ただし、正しく書いても表示は保証されません。[1][3]

対象になるのは、買い物客がそのページで商品を買えるページです。他の店へ案内するだけのページや、商品を評価するレビュー記事は、「商品スニペット」という別の条件を確認します。[1][2]

ここからは説明用の架空の店を例にします。白いマグカップを1個税込3,300円で売り、商品番号は MUG-WH-01、在庫はありとします。

AI検索で商品の構造化データは必須か

GoogleのAIによる概要やAIモードに出るために、商品の構造化データを特別に追加する必要はありません。 Googleは、これらのAI機能に追加の技術要件はなく、特別なschema.orgの構造化データも不要だと説明しています。[4]

一方で、Googleは通常のSEOの基本として、「構造化データをページに見えている文章と一致させる」「Merchant Centerの情報を最新にする」ことを挙げています。[4]

つまり、AI検索のために新しく何かを足すより、今ある商品情報を食い違わせないことが大切です。

Google検索についての説明図。左は『AIによる概要・AIモードのための特別な記述』に『追加の要件なし』と示し、右は基本として『ページの表示と構造化データを一致させる』『Merchant Centerの情報を最新にする』を示す。

この説明はGoogle検索のものです。ChatGPTなど他社のAIが商品の構造化データをどう扱うかは、ここでは確認していません。AIによる概要そのものの位置付けは「SGEは「AIによる概要」に。以前の対策は今も使える?」で説明しています。

ProductとOfferに価格・在庫を記述する

単品商品なら、Productに商品名・画像・商品番号を、その中のOfferに現在の価格・通貨・在庫を書きます。 Googleの販売者向けの説明では、name・image・offers が必須です。Offerでは price と priceCurrency が必須で、価格は0より大きい必要があります。[1]

説明用の例。外側のProduct枠に name(商品名:白いマグカップ)、image(商品画像)、sku(商品番号:MUG-WH-01)、内側のOffer枠に price(3300)、priceCurrency(JPY)、availability(InStock:在庫の状態)が入った入れ子の図。availabilityは在庫の個数ではないと注記している。

次は説明用に作ったJSON-LD(HTMLに埋め込む書き方の一つ)です。URLや値は架空で、送料と返品条件は省いています。

<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "白いマグカップ",
  "image": ["https://example.com/images/mug-wh-01.jpg"],
  "sku": "MUG-WH-01",
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/mug-wh-01",
    "priceCurrency": "JPY",
    "price": 3300,
    "availability": "https://schema.org/InStock"
  }
}
</script>

実装担当者と確認するときは、次の対応表を使うと話がそろいます。

ページで見えるもの JSON-LDの項目 照合する相手
商品名 name 商品ページの見出し
商品画像 image ページに載せた同じ商品の画像
商品番号 sku 商品管理の登録内容
販売価格 3,300円 price と priceCurrency ページの販売価格
在庫あり availability ページと実際の販売状態

availability は在庫の状態を表し、在庫の個数ではありません。売り切れなら https://schema.org/OutOfStock など、Googleが挙げる値から一つだけ選びます。[1]

Googleの公式例にはレビューや星の評価が入っていますが、自社にないレビューは書きません。偽のレビューや、ページに見えていない内容を書くことはガイドラインで禁じられています。[3]

送料は shippingDetails で商品ごとに書けます。ただし、Googleは店全体の送料ルールを会社情報(Organization)側にまとめる方法を推奨しています。[1]

色・サイズ違いの商品は別の記述で扱う

色やサイズで価格や在庫が変わる商品は、単品の例をそのまま使わず、ProductGroupを使った書き方にします。 ProductGroupで親の商品をまとめ、hasVariant で各色・サイズのProductを並べ、variesBy で何が違うか(例:color、size)を示します。[5]

Googleは、各バリエーションに sku などの固有のIDを付けることと、各バリエーションをURLで直接選べるようにすることを求めています。[5]

例えば白と青のマグカップで在庫が違うなら、白の「在庫あり」を青にも当てはめないようにします。

商品構造化データのテストとURL検査

公開前はリッチリザルトテストで重大なエラーを直し、公開後はSearch ConsoleのURL検査でGoogleからの見え方を確かめます。 これはGoogleが示している順番です。[1]

4つの手順を左から右へ並べた流れ図。1 公開前:リッチリザルトテストで重大なエラーを直す、2 少数の商品ページを公開、3 公開後:Search ConsoleのURL検査、4 再クロールを依頼(数日かかることも)。下に『テストに通っても価格が正しいかは人が照合』と添えている。

  1. 実装担当者が、自社の値に置き換えたコードをリッチリザルトテストで検査します。重大なエラーが出たら直し、もう一度検査します。
  2. まず少数の商品ページだけを公開します。
  3. サイトを確認できる担当者が、Search ConsoleのURL検査に、公開した商品ページのURLを入力します。robots.txt、noindex(検索結果に出さない設定)、ログイン要求でページが止められていないかを見ます。
  4. 問題がなければ、再クロール(もう一度読みに来てもらう依頼)をします。Googleが見つけて読み込むまで数日かかることがあります。[1]

公開後は、Search Consoleの販売者向けリスティングのレポートで、エラーや警告が増えていないかも見られます。[1]

ただし、テストに通っても3,300円が本当の販売価格かまでは分かりません。最後は人が商品ページと並べて照合します。[3]

値下げ・売り切れ時に価格と在庫をそろえる

値下げや売り切れのたびに、商品ページ・構造化データ・Merchant Centerの三つを同じ日に照合します。 Googleは構造化データに最新の情報を求めており、古くなった情報はリッチリザルトとして表示しないとしています。[3]

説明用の例。カレンダーの『同じ日に照合』を中心に、商品ページ・構造化データ・Merchant Centerの3つが並ぶ図。値下げの行では3つとも2,970円、売り切れの行では在庫なし・OutOfStock・在庫切れで、どちらも『一致』と示している。

セール価格を見せたい場合は、現在の価格を price に書き、元の価格は priceSpecification の中で priceType を https://schema.org/StrikethroughPrice にして書きます。セール期間は validFrom と priceValidUntil などで示せます。[1]

Merchant Centerにも商品データを送っている店は、そちらも確認します。Googleは、ページの構造化データとMerchant Centerの両方を用意すると対象になる表示が広がり、表示によっては二つを組み合わせて使うと説明しています。[2]

送料や返品の設定が複数の場所にある場合は、Merchant Centerに送った商品単位のデータが、ページ上の記述より優先されます。[1] ページだけ直して終わりにしないようにします。

次は照合記録の記入例です。日付と値はすべて説明用の仮定です。

変更日 変更内容 ページ表示 JSON-LD Merchant Center 結果
10月1日 値下げ 2,970円 2970 2,970円 一致
10月8日 売り切れ 在庫なし OutOfStock 在庫切れ 一致

まずは自社の商品ページを一つ選び、表示価格とJSON-LDの price が同じかを確かめてください。値下げ後に価格が食い違ったときの調べ方は「Googleに出る価格が違う。値下げ後に確認したい3つの場所」で説明しています。

よくある質問

Q. 構造化データを入れると価格が必ず検索結果に出ますか?
出るとは限りません。Googleは、正しく書いてテストに通っても構造化データを使った表示は保証しないと説明しています。
Q. Merchant Centerに送っていれば構造化データは不要ですか?
併用できます。Googleは両方を用意すると対象になる表示が広がると説明しています。ただし価格や在庫が食い違わないよう、両方を同じ日に照合します。
Q. AIによる概要に出るために特別な記述は必要ですか?
Googleは、AIによる概要やAIモードに追加の技術要件や特別なschema.orgの記述は不要と説明しています。構造化データとページの表示を一致させることが基本です。

出典・参考データ

  1. [1] Merchant listing (Product, Offer) structured data (Google Search Central) — 取得 2026-09-23
  2. [2] Introduction to Product structured data (Google Search Central) — 取得 2026-09-23
  3. [3] General structured data guidelines (Google Search Central) — 取得 2026-09-23
  4. [4] AI features and your website (Google Search Central) — 取得 2026-09-23
  5. [5] Product variant structured data (ProductGroup, Product) (Google Search Central) — 取得 2026-09-23

この記事を書いた人

水島 翔吾

株式会社kairos 代表取締役 / AgentSignal 開発者

AI クローラー・AI 流入計測と AIO 診断ツール AgentSignal を開発。実測データを元に AI 検索時代の計測と対策を書いています。

関連記事