販売者リスティング(ProductOffer)の構造化データ

検索結果におけるショッピング ナレッジパネルの表示

ページに Product のマークアップを追加すると、Google 検索における販売者のリスティングのエクスペリエンスに、ショッピング ナレッジパネル、Google 画像検索、人気商品の結果、商品スニペットなどを表示できるようになります。販売者リスティングでは、商品に関するさらに詳しいデータ(価格、在庫状況、配送と返品に関する情報など)をハイライト表示できます。

このガイドでは、販売者リスティングに適用される Product 構造化データの要件について説明します。どのマークアップを使用すればよいかわからない場合は、Product マークアップの概要をご覧ください。

構造化データを追加する方法

構造化データは、ページに関する情報を提供し、ページ コンテンツを分類するための標準化されたデータ形式です。構造化データを初めて使用する場合は、構造化データの仕組みについてをご覧ください。

構造化データの作成、テスト、リリースの概要は次のとおりです。

  1. 必須プロパティを追加します。使用している形式に基づいて、ページ上の構造化データを挿入する場所をご確認ください。
  2. ガイドラインに従います。
  3. リッチリザルト テストでコードを検証し、重大なエラーを修正します。ツールで報告される重大ではない問題の修正も検討してください。構造化データの品質向上に役立ちます(ただし、リッチリザルトの対象となるために必ずしも必要というわけではありません)。
  4. 構造化データが含まれているページを数ページ導入し、URL 検査ツールを使用して、Google でページがどのように表示されるかをテストします。Google がページにアクセスでき、robots.txt ファイル、noindex タグ、ログイン要件によってページがブロックされていないことを確認します。ページが正常に表示されたら、Google に URL の再クロールを依頼できます。
  5. 今後の変更について Google に継続して情報を提供するために、サイトマップを送信することをおすすめします。これは、Search Console Sitemap API で自動化できます。

次の例は、さまざまな状況でウェブページに構造化データを追加する方法を示しています。

販売情報が掲載されている商品ページ

商品レビューを掲載しながら商品を販売している商品ページの例を以下に示します。

JSON-LD


 <html>
  <head>
    <title>Executive Anvil</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Product",
      "name": "Executive Anvil",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "description": "Sleeker than ACME's Classic Anvil, the Executive Anvil is perfect for the business traveler looking for something to drop from a height.",
      "sku": "0446310786",
      "mpn": "925872",
      "brand": {
        "@type": "Brand",
        "name": "ACME"
      },
      "review": {
        "@type": "Review",
        "reviewRating": {
          "@type": "Rating",
          "ratingValue": 4,
          "bestRating": 5
        },
        "author": {
          "@type": "Person",
          "name": "Fred Benson"
        }
      },
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": 4.4,
        "reviewCount": 89
      },
      "offers": {
        "@type": "Offer",
        "url": "https://example.com/anvil",
        "priceCurrency": "USD",
        "price": 119.99,
        "priceValidUntil": "2024-11-20",
        "itemCondition": "https://schema.org/UsedCondition",
        "availability": "https://schema.org/InStock"
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>

RDFa


 <html>
  <head>
    <title>Executive Anvil</title>
  </head>
  <body>
    <div typeof="schema:Product">
        <div rel="schema:review">
          <div typeof="schema:Review">
            <div rel="schema:reviewRating">
              <div typeof="schema:Rating">
                <div property="schema:ratingValue" content="4"></div>
                <div property="schema:bestRating" content="5"></div>
              </div>
            </div>
            <div rel="schema:author">
              <div typeof="schema:Person">
                <div property="schema:name" content="Fred Benson"></div>
              </div>
            </div>
          </div>
        </div>
        <div rel="schema:image" resource="https://example.com/photos/4x3/photo.jpg"></div>
        <div property="schema:mpn" content="925872"></div>
        <div property="schema:name" content="Executive Anvil"></div>
        <div property="schema:description" content="Sleeker than ACME's Classic Anvil, the Executive Anvil is perfect for the business traveler looking for something to drop from a height."></div>
        <div rel="schema:image" resource="https://example.com/photos/1x1/photo.jpg"></div>
        <div rel="schema:brand">
          <div typeof="schema:Brand">
            <div property="schema:name" content="ACME"></div>
          </div>
        </div>
        <div rel="schema:aggregateRating">
          <div typeof="schema:AggregateRating">
            <div property="schema:reviewCount" content="89"></div>
            <div property="schema:ratingValue" content="4.4"></div>
          </div>
        </div>
        <div rel="schema:offers">
          <div typeof="schema:Offer">
            <div property="schema:price" content="119.99"></div>
            <div property="schema:availability" content="https://schema.org/InStock"></div>
            <div property="schema:priceCurrency" content="USD"></div>
            <div property="schema:priceValidUntil" datatype="xsd:date" content="2024-11-20"></div>
            <div rel="schema:url" resource="https://example.com/anvil"></div>
            <div property="schema:itemCondition" content="https://schema.org/UsedCondition"></div>
          </div>
        </div>
        <div rel="schema:image" resource="https://example.com/photos/16x9/photo.jpg"></div>
        <div property="schema:sku" content="0446310786"></div>
      </div>
  </body>
</html>

microdata


 <html>
  <head>
    <title>Executive Anvil</title>
  </head>
  <body>
  <div>
    <div itemtype="https://schema.org/Product" itemscope>
      <meta itemprop="mpn" content="925872" />
      <meta itemprop="name" content="Executive Anvil" />
      <link itemprop="image" href="https://example.com/photos/16x9/photo.jpg" />
      <link itemprop="image" href="https://example.com/photos/4x3/photo.jpg" />
      <link itemprop="image" href="https://example.com/photos/1x1/photo.jpg" />
      <meta itemprop="description" content="Sleeker than ACME's Classic Anvil, the Executive Anvil is perfect for the business traveler looking for something to drop from a height." />
      <div itemprop="offers" itemtype="https://schema.org/Offer" itemscope>
        <link itemprop="url" href="https://example.com/anvil" />
        <meta itemprop="availability" content="https://schema.org/InStock" />
        <meta itemprop="priceCurrency" content="USD" />
        <meta itemprop="itemCondition" content="https://schema.org/UsedCondition" />
        <meta itemprop="price" content="119.99" />
        <meta itemprop="priceValidUntil" content="2024-11-20" />
      </div>
      <div itemprop="aggregateRating" itemtype="https://schema.org/AggregateRating" itemscope>
        <meta itemprop="reviewCount" content="89" />
        <meta itemprop="ratingValue" content="4.4" />
      </div>
      <div itemprop="review" itemtype="https://schema.org/Review" itemscope>
        <div itemprop="author" itemtype="https://schema.org/Person" itemscope>
          <meta itemprop="name" content="Fred Benson" />
        </div>
        <div itemprop="reviewRating" itemtype="https://schema.org/Rating" itemscope>
          <meta itemprop="ratingValue" content="4" />
          <meta itemprop="bestRating" content="5" />
        </div>
      </div>
      <meta itemprop="sku" content="0446310786" />
      <div itemprop="brand" itemtype="https://schema.org/Brand" itemscope>
        <meta itemprop="name" content="ACME" />
      </div>
    </div>
  </div>
  </body>
</html>

価格設定

Google では、以下の 3 つの価格設定を想定しています。

アクティブな価格
現在、その商品が提供されている価格。
取り消し線が引かれた価格
セール中に示される、商品の定価。値下げしたアクティブな価格に注目を集めるために、取り消し線が引かれた価格が示されることがあります。
メンバー価格
特定のポイント プログラムのメンバーに提供される商品価格。

これらの価格は、Offer オブジェクトの下に価格の指定を使用してエンコードします(アクティブな価格は例外で、offer レベルでエンコードすることもできます)。各価格の指定は、価格の指定プロパティ priceTypevalidForMemberTier により識別し、これらを一緒に使用することはできません。

  • アクティブな価格にはプロパティ priceTypevalidForMemberTier のどちらも使用できません。
  • 取り消し線が引かれた価格では、priceType プロパティが StrikethroughPrice に設定され(移行期間中は ListPrice も許可されます)、validForMemberTier プロパティは設定できません。
  • メンバー価格は validForMemberTier プロパティで設定され、priceType プロパティは設定できません。

これらのプロパティを両方含む価格の指定は無視されます。

アクティブな価格

JSON-LD でアクティブな価格をエンコードする例を 2 つ示します。アクティブな価格は、次のように price プロパティを使用して指定できます。

"offers": {
  "@type": "Offer",
  "price": 10.00,
  "priceCurrency": "USD",
  ...
}

あるいは、priceSpecification プロパティを使用して指定することもできます。

"offers": {
  "@type": "Offer",
  "priceSpecification": {
    "@type": "UnitPriceSpecification",
    "price": 10.00,
    "priceCurrency": "USD"
  },
  ...
}

セール価格設定

次の例では、セール価格の商品を示しています。取り消し線が引かれた元の価格を 2 つめの価格として追加し、priceType プロパティの値を https://schema.org/StrikethroughPrice に設定すると、現在のアクティブな価格は自動的にセール価格になります。現在のアクティブな価格に priceType プロパティを設定しないでください。

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Nice trinket",
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/trinket_offer",
    "price": 10.00,
    "priceCurrency": "GBP",
    "priceSpecification": {
      "@type": "UnitPriceSpecification",
      "priceType": "https://schema.org/StrikethroughPrice",
      "price": 15.00,
      "priceCurrency": "GBP"
    }
  }
}

あるいは、2 つの UnitPriceSpecification オブジェクトを使用して、セール価格と取り消し線が引かれた価格を指定できます。

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Nice trinket",
  "offers": {
    "@type": "Offer",
    "priceSpecification": [
      {
        "@type": "UnitPriceSpecification",
        "price": 10.00,
        "priceCurrency": "GBP"
      },
      {
        "@type": "UnitPriceSpecification",
        "priceType": "https://schema.org/StrikethroughPrice",
        "price": 15.00,
        "priceCurrency": "GBP"
      }
    ]
  }
}

メンバー価格

メンバー価格のエンコード例を 4 つ示します。最初の例では、offer レベルで price プロパティを使用してアクティブな価格が指定され、価格の指定に validForMemberTier プロパティを使用してメンバー価格が指定されています。

"offers": {
  "@type": "Offer",
  "url": "https://www.example.com/trinket_offer",
  "price": 10.00,
  "priceCurrency": "GBP",
  "priceSpecification": {
    "@type": "UnitPriceSpecification",
    "price": 8.00,
    "priceCurrency": "GBP",
    "validForMemberTier": {
      "@type": "MemberProgramTier",
      "@id": "https://www.example.com/com/members#tier_gold"
    }
  }
}

2 つめの例では、価格の指定を使用してアクティブな価格とメンバー価格の両方がエンコードされています。

"offers": {
  "@type": "Offer",
  "url": "https://www.example.com/trinket_offer",
  "priceSpecification": [
    {
      "@type": "UnitPriceSpecification",
      "price": 10.00,
      "priceCurrency": "GBP"
    },
    {
      "@type": "UnitPriceSpecification",
      "price": 8.00,
      "priceCurrency": "GBP",
      "validForMemberTier": {
        "@type": "MemberProgramTier",
        "@id": "https://www.example.com/com/members#tier_gold"
      }
    }
  ]
}

3 つめの例では、セール価格、取り消し線が引かれた価格、複数のポイント プログラム レベルに分かれたメンバー価格を、単一の offer 内にエンコードする方法が示されています。

"offers": {
  "@type": "Offer",
  "url": "https://www.example.com/trinket_offer",
  "priceSpecification": [
    {
      "@type": "UnitPriceSpecification",
      "price": 9.00,
      "priceCurrency": "GBP"
    },
    {
      "@type": "UnitPriceSpecification",
      "priceType": "https://schema.org/StrikethroughPrice",
      "price": 10.00,
      "priceCurrency": "GBP"
    },
    {
      "@type": "UnitPriceSpecification",
      "price": 8.00,
      "priceCurrency": "GBP",
      "validForMemberTier": {
        "@type": "MemberProgramTier",
        "@id": "https://www.example.com/com/members#tier_silver"
      }
    },
    {
      "@type": "UnitPriceSpecification",
      "price": 7.00,
      "priceCurrency": "GBP",
      "validForMemberTier": [
        {
          "@type": "MemberProgramTier",
          "@id": "https://www.example.com/com/members#tier_gold"
        },
        {
          "@type": "MemberProgramTier",
          "@id": "https://www.example.com/com/members#tier_platinum"
        }
      ]
    }
  ]
}

最初の例に示したように、アクティブな価格は offer レベルでエンコードすることもできます。

4 つ目の例では、メンバー価格の指定にメンバー価格ではなくメンバーシップ ポイントが示されています。

"offers": {
  "@type": "Offer",
  "url": "https://www.example.com/trinket_offer",
  "price": 10.00,
  "priceCurrency": "GBP",
  "priceSpecification": {
    "@type": "UnitPriceSpecification",
    "membershipPointsEarned": 20,
    "validForMemberTier": {
      "@type": "MemberProgramTier",
      "@id": "https://www.example.com/com/members#tier_gold"
    }
  }
}

価格の計量単位を使用した価格設定

以下は、常に 750 ml 単位で販売される商品の 4.5 l 分の価格を指定する方法の例です。この価格の形式は、EU 圏内で容積や重量を単位として販売する商品の場合に特に重要です。

価格の計量単位価格の基準計量単位が存在する場合は、UnitPriceSpecification 内でアクティブな価格を指定し、referenceQuantity プロパティを使用して価格の単価を設定します。

"offers": {
  "@type": "Offer",
  "url": "https://www.example.com/trinket_offer",
  "priceSpecification": {
    "@type": "UnitPriceSpecification",
    "price": 81.00,
    "priceCurrency": "EUR",
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "4.5",
      "unitCode": "LTR",
      "valueReference": {
        "@type": "QuantitativeValue",
        "value": "750",
        "unitCode": "MLT"
      }
    }
  }
}

配送情報

配送情報を掲載している商品ページの例を次に示します。この例では、米国に居住しているすべてのユーザーの送料レートが $3.49 になります。その他の例については、配送セクションをご覧ください。

JSON-LD


 <html>
  <head>
    <title>Nice trinket</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Product",
      "sku": "trinket-12345",
      "gtin14": "00012345600012",
      "image": [
        "https://example.com/photos/16x9/trinket.jpg",
        "https://example.com/photos/4x3/trinket.jpg",
        "https://example.com/photos/1x1/trinket.jpg"
      ],
      "name": "Nice trinket",
      "description": "Trinket with clean lines",
      "brand": {
        "@type": "Brand",
        "name": "MyBrand"
      },
      "offers": {
        "@type": "Offer",
        "url": "https://www.example.com/trinket_offer",
        "itemCondition": "https://schema.org/NewCondition",
        "availability": "https://schema.org/InStock",
        "price": 39.99,
        "priceCurrency": "USD",
        "priceValidUntil": "2024-11-20",
        "shippingDetails": {
          "@type": "OfferShippingDetails",
          "shippingRate": {
            "@type": "MonetaryAmount",
            "value": 3.49,
            "currency": "USD"
          },
          "shippingDestination": {
            "@type": "DefinedRegion",
            "addressCountry": "US"
          },
          "deliveryTime": {
            "@type": "ShippingDeliveryTime",
            "handlingTime": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 1,
              "unitCode": "DAY"
            },
            "transitTime": {
              "@type": "QuantitativeValue",
              "minValue": 1,
              "maxValue": 5,
              "unitCode": "DAY"
            }
          }
        }
      },
      "review": {
        "@type": "Review",
          "reviewRating": {
            "@type": "Rating",
            "ratingValue": 4,
            "bestRating": 5
          },
          "author": {
            "@type": "Person",
            "name": "Fred Benson"
          }
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.4,
          "reviewCount": 89
        }
      }
    </script>
  </head>
  <body>
  </body>
</html>

RDFa


 <html>
  <head>
    <title>Nice trinket</title>
  </head>
  <body>
    <div typeof="schema:Product">
      <div property="schema:sku" content="trinket-12345"></div>
      <div property="schema:gtin14" content="00012345600012"></div>
      <div property="schema:name" content="Nice trinket"></div>
      <div rel="schema:image" resource="https://example.com/photos/16x9/trinket.jpg"></div>
      <div rel="schema:image" resource="https://example.com/photos/4x3/trinket.jpg"></div>
      <div rel="schema:image" resource="https://example.com/photos/1x1/trinket.jpg"></div>
      <div property="schema:description" content="Trinket with clean lines"></div>
      <div rel="schema:brand">
        <div typeof="schema:Brand">
          <div property="schema:name" content="MyBrand"></div>
        </div>
      </div>
      <div rel="schema:offers">
        <div typeof="schema:Offer">
          <div rel="schema:url" resource="https://example.com/trinket_offer"></div>
          <div property="schema:itemCondition" content="https://schema.org/NewCondition"></div>
          <div property="schema:availability" content="https://schema.org/InStock"></div>
          <div property="schema:price" content="39.99"></div>
          <div property="schema:priceCurrency" content="USD"></div>
          <div property="schema:priceValidUntil" datatype="xsd:date" content="2024-11-20"></div>
          <div rel="schema:shippingDetails">
            <div typeof="schema:OfferShippingDetails">
              <div rel="schema:shippingRate">
                <div typeof="schema:MonetaryAmount">
                  <div property="schema:value" content="3.49"></div>
                  <div property="schema:currency" content="USD"></div>
                </div>
              </div>
              <div rel="schema:shippingDestination">
                <div typeof="schema:DefinedRegion">
                  <div property="schema:addressCountry" content="US"></div>
                </div>
              </div>
              <div rel="schema:deliveryTime">
                <div typeof="schema:ShippingDeliveryTime">
                  <div rel="schema:handlingTime">
                    <div typeof="schema:QuantitativeValue">
                      <div property="schema:minValue" content="0"></div>
                      <div property="schema:maxValue" content="1"></div>
                      <div property="schema:unitCode" content="DAY"></div>
                    </div>
                  </div>
                  <div rel="schema:transitTime">
                    <div typeof="schema:QuantitativeValue">
                      <div property="schema:minValue" content="1"></div>
                      <div property="schema:maxValue" content="5"></div>
                      <div property="schema:unitCode" content="DAY"></div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div rel="schema:review">
        <div typeof="schema:Review">
          <div rel="schema:reviewRating">
            <div typeof="schema:Rating">
              <div property="schema:ratingValue" content="4"></div>
              <div property="schema:bestRating" content="5"></div>
            </div>
          </div>
          <div rel="schema:author">
            <div typeof="schema:Person">
              <div property="schema:name" content="Fred Benson"></div>
            </div>
          </div>
        </div>
      </div>
      <div rel="schema:aggregateRating">
        <div typeof="schema:AggregateRating">
          <div property="schema:reviewCount" content="89"></div>
          <div property="schema:ratingValue" content="4.4"></div>
        </div>
      </div>
    </div>
  </body>
</html>

microdata


 <html>
  <head>
    <title>Nice trinket</title>
  </head>
  <body>
  <div>
    <div itemtype="https://schema.org/Product" itemscope>
      <meta itemprop="sku" content="trinket-12345" />
      <meta itemprop="gtin14" content="00012345600012" />
      <meta itemprop="name" content="Nice trinket" />
      <link itemprop="image" href="https://example.com/photos/16x9/trinket.jpg" />
      <link itemprop="image" href="https://example.com/photos/4x3/trinket.jpg" />
      <link itemprop="image" href="https://example.com/photos/1x1/trinket.jpg" />
      <meta itemprop="description" content="Trinket with clean lines" />
      <div itemprop="brand" itemtype="https://schema.org/Brand" itemscope>
        <meta itemprop="name" content="MyBrand" />
      </div>
      <div itemprop="offers" itemtype="https://schema.org/Offer" itemscope>
        <link itemprop="url" href="https://www.example.com/trinket_offer" />
        <meta itemprop="itemCondition" content="https://schema.org/NewCondition" />
        <meta itemprop="availability" content="https://schema.org/InStock" />
        <meta itemprop="price" content="39.99" />
        <meta itemprop="priceCurrency" content="USD" />
        <meta itemprop="priceValidUntil" content="2024-11-20" />
        <div itemprop="shippingDetails" itemtype="https://schema.org/OfferShippingDetails" itemscope>
          <div itemprop="shippingRate" itemtype="https://schema.org/MonetaryAmount" itemscope>
            <meta itemprop="value" content="3.49" />
            <meta itemprop="currency" content="USD" />
          </div>
          <div itemprop="shippingDestination" itemtype="https://schema.org/DefinedRegion" itemscope>
            <meta itemprop="addressCountry" content="US" />
          </div>
          <div itemprop="deliveryTime" itemtype="https://schema.org/ShippingDeliveryTime" itemscope>
            <div itemprop="handlingTime" itemtype="https://schema.org/QuantitativeValue" itemscope>
              <meta itemprop="minValue" content="0" />
              <meta itemprop="maxValue" content="1" />
              <meta itemprop="unitCode" content="DAY" />
            </div>
            <div itemprop="transitTime" itemtype="https://schema.org/QuantitativeValue" itemscope>
              <meta itemprop="minValue" content="1" />
              <meta itemprop="maxValue" content="5" />
              <meta itemprop="unitCode" content="DAY" />
            </div>
          </div>
        </div>
      </div>
      <div itemprop="review" itemtype="https://schema.org/Review" itemscope>
        <div itemprop="author" itemtype="https://schema.org/Person" itemscope>
          <meta itemprop="name" content="Fred Benson" />
        </div>
        <div itemprop="reviewRating" itemtype="https://schema.org/Rating" itemscope>
          <meta itemprop="ratingValue" content="4" />
          <meta itemprop="bestRating" content="5" />
        </div>
      </div>
      <div itemprop="aggregateRating" itemtype="https://schema.org/AggregateRating" itemscope>
        <meta itemprop="reviewCount" content="89" />
        <meta itemprop="ratingValue" content="4.4" />
      </div>
    </div>
  </div>
  </body>
</html>

送料無料

米国ニューヨーク州からの購入に対して送料を無料にする場合の例を以下に示します。

"shippingDetails": {
  "@type": "OfferShippingDetails",
  "shippingRate": {
    "@type": "MonetaryAmount",
    "value": "0",
    "currency": "USD"
  },
  "shippingDestination": [
    {
      "@type": "DefinedRegion",
      "addressCountry": "US",
      "addressRegion": ["NY"]
    }
  ]
}

返品情報の詳細

返品情報の詳細が記載されている商品ページの例を以下に示します。マークアップは、スイスに発送された商品について 60 日以内に返品することを要件とする返品ポリシーと一致しており、返品手数料はかかりません。

JSON-LD


 <html>
  <head>
    <title>Nice trinket</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Product",
      "sku": "trinket-12345",
      "gtin14": "00012345600012",
      "image": [
        "https://example.com/photos/16x9/trinket.jpg",
        "https://example.com/photos/4x3/trinket.jpg",
        "https://example.com/photos/1x1/trinket.jpg"
      ],
      "name": "Nice trinket",
      "description": "Trinket with clean lines",
      "brand": {
        "@type": "Brand",
        "name": "MyBrand"
      },
      "offers": {
        "@type": "Offer",
        "url": "https://www.example.com/trinket_offer",
        "itemCondition": "https://schema.org/NewCondition",
        "availability": "https://schema.org/InStock",
        "priceSpecification": {
          "@type": "PriceSpecification",
          "price": 39.99,
          "priceCurrency": "CHF"
        },
        "hasMerchantReturnPolicy": {
          "@type": "MerchantReturnPolicy",
          "applicableCountry": "CH",
          "returnPolicyCountry": "CH",
          "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
          "merchantReturnDays": 60,
          "returnMethod": "https://schema.org/ReturnByMail",
          "returnFees": "https://schema.org/FreeReturn"
        }
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>

RDFa


 <html>
  <head>
    <title>Nice trinket</title>
  </head>
  <body>
    <div typeof="schema:Product">
      <div property="schema:sku" content="trinket-12345"></div>
      <div property="schema:gtin14" content="00012345600012"></div>
      <div property="schema:name" content="Nice trinket"></div>
      <div rel="schema:image" resource="https://example.com/photos/16x9/trinket.jpg"></div>
      <div rel="schema:image" resource="https://example.com/photos/4x3/trinket.jpg"></div>
      <div rel="schema:image" resource="https://example.com/photos/1x1/trinket.jpg"></div>
      <div property="schema:description" content="Trinket with clean lines"></div>
      <div rel="schema:brand">
        <div typeof="schema:Brand">
          <div property="schema:name" content="MyBrand"></div>
        </div>
      </div>
      <div rel="schema:offers">
        <div typeof="schema:Offer">
          <div rel="schema:url" resource="https://example.com/trinket_offer"></div>
          <div property="schema:itemCondition" content="https://schema.org/NewCondition"></div>
          <div property="schema:availability" content="https://schema.org/InStock"></div>
          <div property="schema:price" content="39.99"></div>
          <div property="schema:priceCurrency" content="CHF"></div>
          <div property="schema:priceValidUntil" datatype="xsd:date" content="2024-11-20"></div>
          <div rel="schema:hasMerchantReturnPolicy">
            <div typeof="schema:MerchantReturnPolicy">
              <div property="schema:applicableCountry" content="CH"></div>
              <div property="schema:returnPolicyCountry" content="CH"></div>
              <div property="schema:returnPolicyCategory" content="https://schema.org/MerchantReturnFiniteReturnWindow"></div>
              <div property="schema:merchantReturnDays" content="60"></div>
              <div property="schema:returnMethod" content="https://schema.org/ReturnByMail"></div>
              <div property="schema:returnFees" content="https://schema.org/FreeReturn"></div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </body>
</html>

microdata


 <html>
  <head>
    <title>Nice trinket</title>
  </head>
  <body>
  <div>
    <div itemtype="https://schema.org/Product" itemscope>
      <meta itemprop="sku" content="trinket-12345" />
      <meta itemprop="gtin14" content="00012345600012" />
      <meta itemprop="name" content="Nice trinket" />
      <link itemprop="image" href="https://example.com/photos/16x9/trinket.jpg" />
      <link itemprop="image" href="https://example.com/photos/4x3/trinket.jpg" />
      <link itemprop="image" href="https://example.com/photos/1x1/trinket.jpg" />
      <meta itemprop="description" content="Trinket with clean lines" />
      <div itemprop="brand" itemtype="https://schema.org/Brand" itemscope>
        <meta itemprop="name" content="MyBrand" />
      </div>
      <div itemprop="offers" itemtype="https://schema.org/Offer" itemscope>
        <link itemprop="url" href="https://www.example.com/trinket_offer" />
        <meta itemprop="itemCondition" content="https://schema.org/NewCondition" />
        <meta itemprop="availability" content="https://schema.org/InStock" />
        <meta itemprop="price" content="39.99" />
        <meta itemprop="priceCurrency" content="CHF" />
        <meta itemprop="priceValidUntil" content="2024-11-20" />
        <div itemprop="hasMerchantReturnPolicy" itemtype="https://schema.org/MerchantReturnPolicy" itemscope>
          <meta itemprop="applicableCountry" content="CH" />
          <meta itemprop="returnPolicyCountry" content="CH" />
          <meta itemprop="returnPolicyCategory" content="https://schema.org/MerchantReturnFiniteReturnWindow" />
          <meta itemprop="merchantReturnDays" content="60" />
          <meta itemprop="returnMethod" content="https://schema.org/ReturnByMail" />
          <meta itemprop="returnFees" content="https://schema.org/FreeReturn" />
        </div>
      </div>
    </div>
  </div>
  </body>
</html>

認証

次の例は、構造化データを使用して認証情報を指定する方法を示しています。 最初の例は、ドイツにおける車両の CO2 排出量クラス "D" を指定しています。

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "sku": "1234-5678",
  "image": "https://www.example.com/vehicle.jpg",
  "name": "Big Car",
  "description": "Passenger vehicle with combustion engine",
  "gtin14": "00012345600012",
  "mpn": "WH1234",
  "brand": {
    "@type": "Brand",
    "name": "ExampleCarBrand"
  },
  "hasCertification": {
    "@type": "Certification",
    "issuedBy": {
      "@type": "Organization",
      "name": "BMWK"
    },
    "name": "Vehicle_CO2_Class",
    "certificationRating": {
      "@type": "Rating",
      "ratingValue": "D"
    }
  },
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/vehicle",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock",
    "price": 17999.00,
    "priceCurrency": "EUR"
  }
}

2 つ目の例では、LED の省エネ性能を示す、欧州エネルギー ラベリング製品レジストリ(EPREL)ラベルを指定しています。

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "sku": "1234-5678",
  "image": "https://www.example.com/led.jpg",
  "name": "LED",
  "description": "Dimmable LED",
  "gtin14": "00012345600012",
  "mpn": "WH1234",
  "brand": {
    "@type": "Brand",
    "name": "ExampleLightingBrand"
  },
  "hasCertification": {
    "@type": "Certification",
    "issuedBy": {
      "@type": "Organization",
      "name": "European_Commission"
    },
    "name": "EPREL",
    "certificationIdentification": "123456"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/led",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock",
    "price": 2.30,
    "priceCurrency": "EUR"
  }
}

3D モデル

この例は subjectOf プロパティと 3DModel タイプを使用して 3D モデルを商品にリンクさせる方法を示しています。

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "sku": "1234-5678",
  "image": "https://www.example.com/sofa.jpg",
  "name": "Water heater",
  "description": "White 3-Seat Sofa",
  "gtin14": "00012345600012",
  "mpn": "S1234W3",
  "brand": {
    "@type": "Brand",
    "name": "ExampleSofaBrand"
  },
  "subjectOf": {
    "@type": "3DModel",
    "encoding": {
      "@type": "MediaObject",
      "contentUrl": "https://example.com/sofa.gltf"
    }
  },
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/whitechaiselongue",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock",
    "price": 1299.00,
    "priceCurrency": "USD"
  }
}

ガイドライン

Product マークアップを使用して販売者のリスティングのエクスペリエンスが表示されるようにするには、以下のガイドラインに準拠する必要があります。

技術に関するガイドライン

  • 販売者のリスティングのエクスペリエンスの対象となるのは、買い物客が商品を購入できるページのみであり、商品を販売する他のサイトへのリンクを掲載したページは対象ではありません。Google は、検索結果に情報を表示する前に、販売者リスティングの商品データの検証を試みることがあります。
  • 商品のリッチリザルトは単一の商品(または同じ商品の複数のバリエーション)に焦点を当てたページのみをサポートしています。たとえば、「当店の靴」は特定の商品ではありません。これには、それぞれ URL が異なるバリエーション商品も含まれます。複数の商品やある商品カテゴリを一覧表示するページではなく、特定の商品ページにマークアップを追加することをおすすめします。
  • バリエーション商品のマークアップの追加方法について詳しくは、バリエーション商品の構造化データのドキュメントをご覧ください。
  • 複数の通貨で商品を販売する場合は、通貨ごとに個別の URL を指定します。たとえば、ある商品がカナダドルと米ドルで購入可能な場合、2 つの異なる URL(1 つの通貨につき 1 つ)を使用します。
  • Car が Product のサブタイプとして自動的にサポートされることはありません。現時点では、評価を追加してこの検索結果の機能の表示対象となるようにするには、Car タイプと Product タイプの両方を含める必要があります。JSON-LD の例を以下に示します。
    {
      "@context": "https://schema.org",
      "@type": ["Product", "Car"],
      ...
    }
        
  • すべてのタイプのショッピング検索結果を最適化しようとしている場合、最良の結果を得るために、最初から Product 構造化データを HTML に含めることをおすすめします。
  • JavaScript で生成された Product マークアップの場合: 動的に生成されるマークアップにより、Google ショッピングのクロールの頻度と信頼性が低下する可能性があることに注意してください。商品の在庫状況や価格など、頻繁に変更されるコンテンツでは問題となる場合があります。JavaScript を使用して Product マークアップを生成している場合は、Google からのトラフィック増加に対応できるだけの十分なコンピューティング リソースがサーバーにあることを確認してください。

コンテンツ ガイドライン

  • 人に深刻な危害や直接的な危害、または長期的な危害をもたらす可能性があり、広く禁止または規制されている商品やサービス、情報を宣伝するコンテンツは認められません。これには、銃器を含む武器、危険ドラッグ、タバコ関連商品(電子タバコを含む)、ギャンブル関連商品に関連するコンテンツが含まれます。

構造化データタイプの定義

コンテンツがリッチリザルトとして表示されるようにするには、必須プロパティを含める必要があります。また、推奨プロパティを使用すると、構造化データにより多くの情報を追加でき、ユーザー エクスペリエンスの向上につながります。

商品情報

Product

Product の定義の全文は schema.org/Product で確認できます。コンテンツで商品情報のマークアップを設定するには、Product タイプの以下のプロパティを使用します。

必須プロパティ
name

Text

商品名。

image

ImageObject または URL の繰り返し

商品の写真の URL。商品がはっきりわかる写真(背景が白の写真など)を指定することをおすすめします。

画像に関するその他のガイドライン:

  • 画像の URL は、クロールやインデックス登録に対応できる必要があります。ページに Google がアクセスできるかどうかは、URL 検査ツールで確認できます。
  • 画像はマークアップされたコンテンツを表している必要があります。
  • 画像は、Google 画像検索でサポートされているファイル形式である必要があります。
  • 適切な画像が選択されるように、アスペクト比が 16x9、4x3、1x1 の高解像度画像(幅と高さをかけて 50,000 ピクセル以上になる画像)を指定してください。

次に例を示します。

"image": [
  "https://example.com/photos/1x1/photo.jpg",
  "https://example.com/photos/4x3/photo.jpg",
  "https://example.com/photos/16x9/photo.jpg"
]
offers

Offer

ネストされた Offer で、商品の販売情報を指定します。

商品スニペットでは Offer または AggregateOffer のどちらでもかまいませんが、販売者リスティングでは Offer が必要です。販売者のリスティングのエクスペリエンスの対象となるには、商品の販売者でなければならないためです。

推奨プロパティ
aggregateRating

AggregateRating

商品のネストされた aggregateRatingクチコミ抜粋のガイドラインと、必須および推奨される AggregateRating プロパティのリストに準拠してください。

audience

PeopleAudience

推奨される性別や年齢層など、商品の推奨ユーザー層に関するオプション情報。PeopleAudience タイプのみがサポートされています。Google でサポートされている PeopleAudience プロパティのリストをご覧ください。

brand.name

Text

わかっている場合は、Brand タイプの name プロパティに商品のブランドを含めます。追加できるブランド名は 1 つのみです。

color

Text

商品の色または色の組み合わせ(例: 「赤」、「黄 / スカイブルー」)Google Merchant Center ヘルプの色属性もご覧ください。

description

Text

商品の説明。商品の説明は必須ではありませんが、このプロパティを使用して商品説明を追加することを強くおすすめします。

gtin | gtin8 | gtin12 | gtin13 | gtin14 | isbn

Text

該当するすべてのグローバル識別子を設定します。グローバル識別子については、schema.org/Product をご覧ください。すべての GTIN(国際取引商品番号)には汎用の gtin プロパティを使用できますが、GTIN が商品を最も正確に表すことから、その商品に適用される最も具体的な GTIN を使用することをおすすめします。GTIN の値が数値形式であることをご確認ください。URL 形式の GTIN はサポートされていません。

isbnBook でのみ有効なプロパティです。最善の結果を得るには、ISBN-13 形式を使用してください。Book を正しく使用するには、Product も同時に指定してください。これにより、ノード上で両方のタイプのプロパティを使用できます。次に例を示します。

{
  "@context": "https://schema.org",
  "@type": ["Product", "Book"],
  ...
}
              
hasCertification

Certification

商品に関連する省エネ性能評価などの認証。最大 10 個の認証を指定できます。このプロパティはヨーロッパ諸国では特に重要です。Google でサポートされている Certification プロパティのリストもご覧ください。

inProductGroupWithID

Text

このバリエーション商品が属する商品グループの ID。Google Merchant Center ヘルプの Item Group Id もご覧ください。指定できる値は 1 つです。

バリエーション商品のマークアップを追加する方法について詳しくは、バリエーション商品の構造化データのドキュメントをご覧ください。
isVariantOf

ProductGroup

このバリエーション商品が属する商品グループ(該当する場合)。バリエーション商品のマークアップを追加する方法について詳しくは、バリエーション商品の構造化データのドキュメントをご覧ください。

material

Text

商品の素材や素材の組み合わせ(例: 「革」、「綿 / ポリエステル」)。Google Merchant Center ヘルプの Material もご覧ください。

mpn

Text

メーカーの部品番号。このプロパティによって特定のメーカーの商品が一意に識別されます。

pattern

Text

商品の柄(例: 「水玉模様」、「ストライプ」)。Google Merchant Center の商品データ仕様ページに掲載されている Pattern もご覧ください。

review

Review

商品のネストされた Reviewクチコミ抜粋のガイドラインに準拠し、Review の必須および推奨プロパティのリストにあるプロパティを使用します。Product schema.org タイプに固有のその他の Review プロパティのリストもご覧ください。

商品のレビューを追加する場合、その投稿者の名前は Person または Team の名前として有効なものでなければなりません。

非推奨: ブラック フライデーは 50% オフ

推奨: 「山田太郎」、「CNET クチコミ投稿者」

size

Text または SizeSpecification

商品のサイズ(例: 「XL」、「ミディアム」)。Google Merchant Center の商品データ仕様のページsize もご覧ください。Google でサポートされている SizeSpecification プロパティのリストをご覧ください。指定できる値は 1 つです。

sku

Text

商品を表す販売者固有の識別子。指定できる値は 1 つです。

  • sku の値には、交換に有効な Unicode 文字を使用する必要があります。
  • sku の値に(Unicode の空白文字のプロパティで定義されているような)空白文字を含めることはできません。
  • sku の値には ASCII 文字のみ使用することをおすすめします。
subjectOf

3DModel

商品の 3D モデル(該当する場合)。Google でサポートされている 3DModel プロパティのリストをご覧ください。指定できる 3DModel の値は 1 つです。

3DModel

3DModel の定義の全文は schema.org/3DModel で確認できます。

3D モデルへのリンクには以下のプロパティを使用します。現在サポートされているのは glTF 形式のモデルのみです。

必須プロパティ
encoding

MediaObject

3D モデル用のメディア

encoding.contentUrl

URL

glTF 形式の 3D モデル定義ファイルへのリンクファイルにはサフィックスとして .gltf または .glb を付ける必要があります。

販売情報の詳細

Offer

Offer の定義の全文は schema.org/Offer で確認できます。商品内で販売情報をマークアップする場合は、schema.orgOffer タイプの以下に示すプロパティを使用します。

必須プロパティ
price または priceSpecification.price

Number

現在のアクティブな商品販売価格。schema.org の使用ガイドラインに沿って指定してください。

price プロパティの例を次に示します。

"offers": {
  "@type": "Offer",
  "price": 39.99,
  "priceCurrency": "USD"
}
          

商品スニペットとは異なり、販売者のリスティングのエクスペリエンスには 0 より大きな値の価格が必要です。

アクティブな価格は必須ですが、Offer レベルで指定する代わりに、priceSpecification プロパティ内でネストできます。

priceCurrency または priceSpecification.priceCurrency

Text

商品価格の記述に使用する通貨を 3 文字の ISO 4217 形式で指定します。

price が指定されている場合は priceCurrency が必須です。priceSpecification.price が指定されている場合は priceSpecification.priceCurrency が必須です。

priceSpecification

UnitPriceSpecification

アクティブな価格は、priceSpecification プロパティ内に pricepriceCurrency を使用して指定することもできます。

priceSpecification プロパティでは、UnitPriceSpecification オブジェクトを使用して複雑な価格を指定できます。さまざまな種類の価格をマークアップする方法の例については、サポートされている UnitPriceSpecification プロパティのリストと価格設定例をご覧ください。

推奨プロパティ
availability

ItemAvailability

商品の在庫状況のオプション。URL 接頭辞が付加されていない略称もサポートされています(例: BackOrder)。

  • https://schema.org/BackOrder: この商品は入荷待ちです。
  • https://schema.org/Discontinued: この商品は販売を終了しました。
  • https://schema.org/InStock: この商品は在庫があります。
  • https://schema.org/InStoreOnly: この商品は店頭販売のみとなります。
  • https://schema.org/LimitedAvailability: この商品は在庫僅少です。
  • https://schema.org/OnlineOnly: この商品はオンライン販売のみとなります。
  • https://schema.org/OutOfStock: この商品は現在在庫切れです。
  • https://schema.org/PreOrder: この商品は予約受付中です。
  • https://schema.org/PreSale: この商品は一般提供前に注文して配達が可能です。
  • https://schema.org/SoldOut: この商品は完売しました。

複数の値を指定しないでください。

hasMerchantReturnPolicy

MerchantReturnPolicy

Offer に関連付けられている返品に関するポリシーについてのネストされた情報。 MerchantReturnPolicy プロパティの必須プロパティと推奨プロパティのリストについては、販売者の返品に関するポリシーのドキュメントをご覧ください。

itemCondition

OfferItemCondition

販売中の商品の状態。URL 接頭辞が付加されていない略称もサポートされています(例: NewCondition)。

  • https://schema.org/NewCondition: この商品は新品です。
  • https://schema.org/RefurbishedCondition: この商品は再生品です。
  • https://schema.org/UsedCondition: この商品は中古品です(新品ではありません)。

複数の値を指定しないでください。

shippingDetails

OfferShippingDetails

Offer に関連付けられている配送ポリシーとオプションに関するネストされた情報。shippingDetails を追加する場合は、OfferShippingDetails の必須および推奨プロパティを追加します。

url

URL

買い物客が商品を購入できる商品のウェブページの URL。この URL は、すべてのバリエーション オプションが適切に選択された時点のページの優先 URL と考えることができます。URL は省略できます。複数の URL を指定しないでください。

バリエーション商品のマークアップを追加する方法について詳しくは、バリエーション商品の構造化データのドキュメントをご覧ください。

UnitPriceSpecification

UnitPriceSpecification の定義の全文は schema.org/UnitPriceSpecification で確認できます。より複雑な価格設定スキームを取得するには、次のプロパティを使用します。

必須プロパティ
price

Number

商品の価格。Offerprice プロパティもご覧ください。

priceCurrency

Text

商品価格の記述に使用する通貨を 3 文字の ISO 4217 形式で指定します。OfferpriceCurrency プロパティもご覧ください。

推奨プロパティ
membershipPointsEarned

Number

この購入によって特定のポイント プログラムのメンバーが獲得するポイントの数(整数)。このプロパティと併用できるのは validForMemberTier のみです。メンバー価格の例にある 4 つ目の例と、Google Merchant Center ヘルプの記事ポイント プログラムをご覧ください。

組織のメンバーシップ プログラムとレベルを定義する方法については、ポイント プログラムのマークアップをご覧ください。
priceType

PriceTypeEnumeration

このプロパティは、商品の元の正規価格を指定します(該当する場合)。このプロパティは、Google で商品のセール価格を表示したい場合にのみ使用してください。priceType の値を https://schema.org/StrikethroughPrice に設定する必要があります(他の値はサポートされていません)。

priceType プロパティを使用して正規価格を指定する場合は、Offer オブジェクトに price または priceSpecification プロパティを使用して、現在のセール価格も指定する必要があります。現在のセール価格を priceType プロパティに指定しないでください。セール価格の例をご覧ください。

referenceQuantity

QuantitativeValue(価格の単価設定の場合)

特定の価格で提供される商品の数量。価格の単価設定の詳細は、価格の計量単位を使用した価格設定および Google Merchant Center ヘルプの価格の計量単位の記事をご覧ください。

validForMemberTier

MemberProgramTier

このプロパティは、特定のポイント プログラムのメンバーに対する商品価格を指定します(該当する場合)。複数のメンバーレベルに対する価格が同一の場合は、複数のメンバーレベルを指定でき、メンバーレベル間で価格が異なる場合は、このプロパティに複数の価格指定を設定できます。メンバーレベルは MemberProgramTier オブジェクト内に指定するか、Merchant Center アカウントに指定されたポイント プログラムとレベルにリンクする必要があります。

validForMemberTier プロパティを使用してメンバー価格を指定する場合は、Offer オブジェクトに price または priceSpecification プロパティを使用して、現在の通常価格も指定する必要があります。メンバー価格の例をご覧ください。組織のメンバーシップ プログラムとレベルを定義する方法については、ポイント プログラムのマークアップをご覧ください。

priceTypevalidForMemberTier の両方を使用すると、価格の指定は無視されます。

QuantitativeValue(価格の単価設定の場合)

このセクションでは、単価の仕様の referenceQuantity プロパティに QuantitativeValue を使用する方法について説明します(QuantitativeValue はお届け日数にも使用されますが、ルールが異なります)。QuantitativeValue の定義の全文は schema.org/QuantitativeValue で確認できます。

QuantitativeValue は、1 平方メートル単位での床材の購入や、0.5 ガロン単位での液体の購入など、計量単位に基づいた価格に使用できます。価格の単価設定の詳細は、価格の計量単位を使用した価格設定および Google Merchant Center ヘルプの記事価格の計量単位をご覧ください。

単価の詳細情報を取得するには、次のプロパティを使用します。

必須プロパティ
unitCode

Text または URL

計量単位。Google Merchant Center ヘルプの価格の計量単位に記載されている UN/CEFACT コード、またはそれと同等の人が読める形式のコードのいずれかがサポートされています(sheetitem を除く。この 2 つのコードは Merchant Center フィードでのみサポートされています)。

value

Text

販売単位の数値。

推奨プロパティ
valueReference

QuantitativeValue

商品価格設定の基本数量。

SizeSpecification

SizeSpecification タイプは、商品のサイズを示すために使用します。タイプの定義の全文については、schema.org/SizeSpecification で確認できます。

推奨プロパティ
name

Text

人が読める形式のサイズ名(例: "XL")。詳しくは、Google Merchant Center のヘルプのサイズ属性をご覧ください。

sizeGroup

WearableSizeGroupEnumeration または Text

商品の推奨サイズグループ(該当する場合)。グループの解釈は sizeGroup プロパティによって定義されます。指定できるサイズグループは 2 つまでです。サポートされている値は次のとおりです。

  • https://schema.org/WearableSizeGroupRegular: この商品は「レギュラー サイズ」です。
  • https://schema.org/WearableSizeGroupPetite: この商品は「小さいサイズ」です。
  • https://schema.org/WearableSizeGroupPlus: この商品は「大きいサイズ」です。
  • https://schema.org/WearableSizeGroupTall: この商品は「トールサイズ」です。
  • https://schema.org/WearableSizeGroupBig: この商品は「ビッグサイズ」です。
  • https://schema.org/WearableSizeGroupMaternity: この商品は「マタニティ サイズ」です。

URL 接頭辞が付加されていない略称もサポートされています(例: WearableSizeGroupRegular)。

サポートされているサイズ表記について詳しくは、Google Merchant Center ヘルプの size_type と、Google Merchant Center ヘルプのサポートされている構造化データのタイプと値をご覧ください。Google は、size_type のテキスト型の値(regularpetiteplustallbigmaternity)も認識しますが、他の検索エンジンでは認識されない可能性があるため、標準の schema.org 列挙値を使用することをおすすめします。

sizeSystem

WearableSizeSystemEnumeration または Text

商品のサイズ表記(該当する場合)。サポートされている値は次のとおりです。

  • https://schema.org/WearableSizeSystemAU: オーストラリアのサイズ表記
  • https://schema.org/WearableSizeSystemBR: ブラジルのサイズ表記
  • https://schema.org/WearableSizeSystemCN: 中国のサイズ表記
  • https://schema.org/WearableSizeSystemDE: ドイツのサイズ表記
  • https://schema.org/WearableSizeSystemEurope: ヨーロッパのサイズ表記
  • https://schema.org/WearableSizeSystemFR: フランスのサイズ表記
  • https://schema.org/WearableSizeSystemIT: イタリアのサイズ表記
  • https://schema.org/WearableSizeSystemJP: 日本のサイズ表記
  • https://schema.org/WearableSizeSystemMX: メキシコのサイズ表記
  • https://schema.org/WearableSizeSystemUK: 英国のサイズ表記
  • https://schema.org/WearableSizeSystemUS: 米国のサイズ表記

URL 接頭辞が付加されていない略称もサポートされています(例: WearableSizeSystemAU)。

Google Merchant Center ヘルプの size_system もご覧ください。Google は size_system のテキスト型の値(URBRCNDEEU など)も認識しますが、他の検索エンジンでは認識されない可能性があるため、標準の schema.org 列挙値を使用することをおすすめします。

PeopleAudience

PeopleAudience の定義の全文は schema.org/PeopleAudience で確認できます。

商品の想定されるユーザー層の指定には、次のプロパティを使用します。Google Merchant Center ヘルプのサポートされている構造化データの属性と値もご覧ください。

推奨プロパティ
suggestedGender

Text または GenderType

商品のユーザーとして想定する性別。次のいずれかの値を指定する必要があります。

  • https://schema.org/Male
  • https://schema.org/Female
  • Unisex: この(大文字と小文字を区別しない)値は schema.org 標準には含まれていないため、https://schema.org/ プレフィックスは付けられません。

詳細については、Google Merchant Center ヘルプの Gender をご覧ください。

Google では schema.org プレフィックスなしで GenderType 値が成立するため、未加工の male 値と female 値も受け入れられます。

suggestedMaxAge(または suggestedAge.maxValue

Number

商品に対して推奨される最大年齢(年)商品に対して推奨される最大年齢が次の固定数値セットにマッピングされます。

  • 0.25: 新生児用
  • 1.0: 乳児用
  • 5.0: 幼児用
  • 13.0: 子供用
suggestedMinAge(または suggestedAge.minValue

Number

商品に対して推奨される最小年齢(年)商品に対して推奨される最小年齢が次の固定数値セットにマッピングされます。

  • 0: 新生児用
  • 0.25: 乳児用
  • 1.0: 幼児用
  • 5.0: 子供用
  • 13.0: 大人用

Certification

Certification の定義の全文は schema.org/Certification で確認できます。

認証を指定するには、次のプロパティを使用します。

必須プロパティ
issuedBy

Organization

認証を発行する権限を有する機関または認証機関。組織を指定するには name プロパティを使用します。現時点では、次の名称がサポートされています。

  • EC または European_Commission(EU のエネルギー ラベル)
  • ADEME(フランスの車両に関する CO2 排出量クラス)
  • BMWK(ドイツの車両に関する CO2 排出量クラス)
name

Text

認証の名称現時点では、次の値がサポートされています。

  • EPREL(欧州エネルギー ラベリング製品レジストリ(EPREL)データベースにおける省エネ性能認証)
  • Vehicle_CO2_Class(車両全体に関する CO2 排出量クラス)
  • Vehicle_CO2_Class_Discharged_Battery(バッテリー残量ゼロ時の車両の CO2 排出クラス)
推奨プロパティ
certificationIdentification

Text

認証のコード。たとえば、EPREL 認証にリンク https://example.com/product/dishwashers2019/123456 が指定されている場合のコードは 123456. となります。このコードは、欧州エネルギー ラベルに必須です。

certificationRating

Rating

認証の値。このプロパティは、certificationIdentification プロパティ(たとえば EPREL コードなど)を持つ認証では無視されます。certificationRating プロパティは、一部の国で車両を掲載する際に必要な CO2 排出量クラス、または、EPREL コードが使用できない国でのエネルギー効率評価を設定するために使用できます。certificationRating プロパティに、次のプロパティをネストできます。

  • ratingValue
  • bestRating
  • worstRating

certificationRating プロパティを使用する場合、ratingValue プロパティは必須です。EU のエネルギー効率評価のために、bestRating プロパティと worstRating プロパティも必須です。

EU のエネルギー効率評価を指定するネストされたプロパティを certificationRating プロパティと併用した例を次に示します。

hasCertification": {
  "@type": "Certification",
  "issuedBy": {
    "@type": "Organization",
    "name": "European_Commission"
  }
  "name": "EPREL",
  "url": "https://eprel.ec.europa.eu/screen/product/ovens/53553",
  "certificationIdentification": "53553",
  "certificationRating": {
    "@type": "Rating",
    "ratingValue": "A+",
    "bestRating": "A++",
    "worstRating": "D"
  }
}

CO2 排出量クラスを指定するネストされたプロパティを certificationRating プロパティと併用した例を次に示します。

"hasCertification": {
  "@type": "Certification",
  "issuedBy": {
    "@type": "Organization",
    "name": "ADEME"
  }
  "name": "Vehicle_CO2_Class",
  "certificationRating": {
    "@type": "Rating",
    "ratingValue": "E",
    "bestRating": "A",
    "worstRating": "G"
  }
}

送料

OfferShippingDetails

OfferShippingDetails を使用すると、ユーザーの所在地と配送元の配送ポリシーに基づき、ユーザーが送料と推定配送時間を確認できます。商品に詳細な配送情報が表示されるようにするには、Product 構造化データに加えて、商品ページに次の OfferShippingDetails プロパティを追加します。

販売者は商品の配送について、ユーザーに複数の選択肢(翌日配達、翌々日配達、標準など)を提示する場合があります。それぞれを指定するには、shippingRate プロパティと deliveryTime プロパティをさまざまに組み合わせた、複数の shippingDetails プロパティを使用します。

OfferShippingDetails は必須ではありませんが、詳細な配送情報が表示されるようにするには、次のプロパティを追加する必要があります。

OfferShippingDetails の定義の全文は schema.org/OfferShippingDetails で確認できます。

必須プロパティ
deliveryTime

ShippingDeliveryTime

注文を受けてから商品が購入者に届くまでに生じる遅延時間の合計。deliveryTime プロパティでは、次のプロパティをネストできます。

  • handlingTime
  • transitTime

deliveryTime を複数指定しないでください。Google でサポートされている ShippingDeliveryTime プロパティのリストもご覧ください。

shippingDestination

DefinedRegion

配送先を示します。shippingDestination.addressCountry の情報を指定します。Google でサポートされている DefinedRegion プロパティのリストもご覧ください。

shippingRate

MonetaryAmount

指定した配送先への送料の情報。shippingRate.value または shippingRate.maxValue の少なくとも一つを shippingRate.currency とともに指定する必要があります。

shippingRateOfferShippingDetails プロパティごとに 1 つだけ指定できます。商品に対して複数の送料を指定するには、複数の OfferShippingDetail プロパティを指定します。

shippingRate.currency

Text

送料の通貨。3 文字の ISO 4217 形式で示します。この通貨は販売情報の通貨と同じにする必要があります。

shippingRate.value または shippingRate.maxValue

Number

shippingDestination への送料。文字列を使用して値を指定する場合は、通貨記号、3 桁ごとの区切り記号、スペースを使用しないでください。

送料無料を指定するには、値を 0 に設定します。

DefinedRegion

DefinedRegion を使用してカスタムの地域を作成すると、複数の配送サービスで正確な送料とお届け日数を設定できます。現在、Google Merchant Center ヘルプの地域を設定するに記載されているように、この機能は一部の国でのみサポートされています。

必須プロパティ
addressCountry

Text

ISO 3166-1 alpha-2 形式による 2 文字の国コード。

推奨プロパティ
addressRegion または postalCode を選択

購入者の配送地域を指定します。省略した場合は、国全体が地域として指定されます。複数の地域を一覧表示できますが、1 つの DefinedRegion インスタンスで異なる地域の指定方法を併用することはできません。

addressRegion

Text

このプロパティを使用する場合は、国コードを付けない 2 桁または 3 桁の ISO 3166-2 区分コードで地域を指定します。Google 検索では現在、米国、オーストラリア、日本の地域のみサポートされています。例: 「NY」(米国、ニューヨーク州)、NSW(オーストラリア、ニュー サウス ウェールズ州)、「03」(日本、岩手県)。

地域情報と郵便番号の両方を入力しないでください。

postalCode

Text

郵便番号。たとえば 94043 などです。現在、郵便番号がサポートされているのはオーストラリア、カナダ、米国です。

ShippingDeliveryTime

ShippingDeliveryTime は、注文を受けてから商品が購入者に届くまでに生じる遅延時間の合計を共有するために使用します。

推奨プロパティ
handlingTime

QuantitativeValue(配送所要時間の場合)

注文を受けてから商品が倉庫を出るまでに通常発生する遅延。

transitTime

QuantitativeValue(配送所要時間の場合)

注文された商品が発送されてから購入者に届くまでに通常発生する遅延。

QuantitativeValue(配送所要時間の場合)

QuantitativeValue は配送所要時間を表すために使用されます。最短日数と最長日数を指定する必要があります(QuantitativeValue は価格の単価設定にも使用されますが、プロパティの検証ルールが異なります)。

必須プロパティ
maxValue

Number

最長日数。値は負でない整数にする必要があります。

minValue

Number

最短日数。値は負でない整数にする必要があります。

unitCode

Text

最小値と最大値の単位。値は DAY または d にする必要があります。

Google で配送と返品を設定する別の方法

販売店の配送と返品に関するポリシーは複雑で、頻繁に変更されることもあります。配送および返品情報の指定や最新情報への更新にマークアップを使用することが困難で、Google Merchant Center アカウントを保有している場合は、Google Merchant Center ヘルプで配送設定返品に関するポリシーを設定することを検討してください。または、Search Console の配送と返品に関するポリシーで、アカウント単位で設定することも可能です。この設定は自動的に Merchant Center に追加されます。

複数の配送と返品の設定を組み合わせる

さまざまな配送と返品の設定を組み合わせる場合、ポリシー情報は優先順位の高いものから適用される点に留意してください。たとえば、サイトの返品に関するポリシーのマークアップにおける販売店の返品に関するポリシーのマークアップと、Search Console の返品に関するポリシーの設定の両方を行っている場合は、Search Console で設定された情報のみが使用されます。また、Merchant Center の商品フィードの登録と Search Console の配送に関する設定の両方を行っている場合は、Merchant Center フィードの情報が Search Console の設定より優先されます。

配送と返品に関するポリシー情報における優先順位は以下のとおりです(優先度が高い順で、フィードが最優先)。

Search Console でリッチリザルトを監視する

Search Console は、Google 検索におけるページのパフォーマンスを監視できるツールです。Search Console に登録していなくても Google 検索結果に表示されますが、登録することにより、Google がサイトをどのように認識しているかを把握して改善できるようになります。次の場合は Search Console を確認することをおすすめします。

  1. 構造化データを初めてデプロイした後
  2. 新しいテンプレートをリリースした後やコードを更新した後
  3. トラフィックを定期的に分析する場合

構造化データを初めてデプロイした後

ページがインデックスに登録されたら、関連するリッチリザルトのステータス レポートを使用して、問題がないかどうかを確認します。有効な項目が増え、無効な項目が増えていない状態が理想的です。構造化データに問題が見つかった場合の手順は次のとおりです。

  1. 無効な項目を修正します
  2. 一般公開 URL の検査を行い、問題が解決したかどうかを確認します。
  3. ステータス レポートを使用して検証をリクエストします。

新しいテンプレートをリリースした後やコードを更新した後

ウェブサイトに大幅な変更を加えた場合は、構造化データの無効な項目が増加しないかどうか監視します。
  • 無効な項目が増加した場合は、新しく公開したテンプレートが正常に機能していないか、既存のテンプレートの新しい操作方法に問題があると考えられます。
  • 有効な項目が減少している(無効な項目の増加と一致しない)場合は、ページに構造化データが埋め込まれていない可能性があります。URL 検査ツールを使用して問題の原因を特定します。

トラフィックを定期的に分析する場合

パフォーマンス レポートを使用して Google 検索のトラフィックを分析します。このデータから、検索でページがリッチリザルトとして表示される頻度、ユーザーがページをクリックする頻度、検索結果におけるページの平均掲載順位がわかります。この結果は、Search Console API を使用して自動的に取得することもできます。

There are two Search Console reports related to Product structured data:

Both reports provide warnings and errors related to Product structured data, but are separate due to the different requirements for the associated experiences. For example, the Merchant listings report includes checks for product snippets that include Offer structured data, so the Product snippets report only needs to be consulted for non-merchant listing pages.

トラブルシューティング

構造化データの実装またはデバッグで問題が発生した場合は、以下のリソースが参考になります。