構造化データ カルーセル(ベータ)

Google は、構造化データを使用してページのコンテンツを認識し、そのコンテンツを「リッチリザルト」と呼ばれる情報が豊富な検索結果に表示します。このガイドでは、現在ベータが提供されている新しいカルーセル リッチリザルトについて紹介します。これはリストの形式に似たリッチリザルトで、横にスクロールして特定のサイトのエンティティを表示できます(ホスト カルーセルとも呼ばれます)。カルーセルの各タイルには、サイトに含まれる価格や評価についての情報や、そのページにあるエンティティの画像が表示される可能性があります。

このベータのリッチリザルトを利用するには、ItemList 構造化データと、以下のサポート対象の構造化データアイテムを 1 つ以上追加します。

次の図は、ItemList マークアップをサポート対象コンテンツ タイプと組み合わせて追加した場合に、カルーセルが Google 検索でどのように表示されるかを示したものです。

新しいカルーセル リッチリザルト

機能の提供状況

この機能はベータ版であり、この機能の開発途中で要件やガイドラインが変更される場合があります。ビジネス拠点が EEA にあるか EEA のユーザーにサービスを提供しており、上記の新しいエクスペリエンスの詳細と利用に関心をお持ちの場合は、まず該当のフォームにご記入ください(フライトクエリについては、フライトクエリに関するお問い合わせフォームをご使用ください)。

この機能は現在、パソコンとモバイル デバイスの両方で、欧州経済領域(EEA)の国でのみ利用できます。旅行、地域、ショッピングに関するクエリ向けに使用できます。ショッピング クエリ向けについては、最初にドイツ、フランス、チェコ、英国でテストされました。

構造化データを追加する

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

構造化データをサイトに追加する方法の概要は以下のとおりです。

  1. リストに含まれるすべてのエンティティに関する何かしらの情報が掲載された単一の概要ページを選びます。たとえば、同じサイト内にある、各ホテルの詳細情報が記載された具体的な詳細ページへのリンクが掲載された、「パリの人気のホテル」を一覧表示するカテゴリページなどです。必要に応じてエンティティの種類を組み合わせる(ホテルとレストランなど)こともできます。たとえば、ローカル イベントとローカル ビジネスの両方を扱う、「スイスのおすすめスポット」の記事がある場合などです。
  2. 概要ページに必須プロパティを追加します。このベータ機能を使用するためにマークアップを詳細ページに追加する必要はありません。使用している形式に基づいて、ページ上の構造化データを挿入する場所をご確認ください。
  3. カルーセルが対象とするコンテンツ タイプごとの必須プロパティと推奨プロパティを追加します。

    シナリオに応じて、どのタイプを使うのが最適かを選ぶことができます。たとえば、ページにホテルのリストと民泊のリストがある場合は、Hotel タイプと VacationRental タイプの両方を使用します。シナリオに最も近いタイプを使うのが理想的ですが、より汎用的なタイプ(LocalBusiness など)を使うこともできます。

  4. ガイドラインに従います。
  5. リッチリザルト テストでコードを検証します。
  6. 構造化データが含まれているページを数ページ導入し、URL 検査ツールを使用して、Google でページがどのように表示されるかをテストします。Google がページにアクセスでき、robots.txt ファイル、noindex タグ、またはログイン要件によってページがブロックされていないことを確認します。ページが正常に表示される場合は、Google に URL の再クロールを依頼できます。
  7. 今後の変更について Google に継続して情報を提供するために、サイトマップを送信することをおすすめします。これは、Search Console Sitemap API で自動化できます。

ガイドライン

ページがカルーセル リッチリザルト(ベータ版)に表示されるようにするには、検索の基本事項および構造化データに関する一般的なガイドラインに従ってください。また、カルーセル リッチリザルト(ベータ版)には以下のガイドラインが適用されます。

  • 汎用のタイプを使用できます。ただし、推奨プロパティを使用するには、それに対応するタイプを使用する必要があります。たとえば、amenityFeature を使用するには、LodgingBusiness タイプを使用します。
  • 追加の項目を使うことはできますが、リッチリザルトには表示されない可能性があります。
  • サイトに、概要ページと複数の詳細ページが存在している必要があります。この機能は現在、「詳細」が同じページ内のアンカー ポイントになっているオールインワン ページなどのその他のシナリオをサポートするように設計されていません。
  • マークアップは、概要ページやカテゴリページなどのリスト形式に近いページ上にある必要があります。そのようなページには少なくとも 3 つのエンティティに関する情報が記載されていて、そのエンティティに関する詳細情報を確認できる、同じサイト上の別のページへのリンクが記載されています。マークアップを詳細ページに追加する必要はありませんが、概要ページのマークアップに詳細ページの URL を含める必要があります。
  • 概要ページまたはカテゴリページにあるすべてのアイテムをマークアップします。カテゴリを複数ページに分ける場合、ItemList を後続の各ページに追加して、そのページにリストされているエンティティを含めます。無限スクロールの場合、ビューポートで最初に読み込まれるエンティティのマークアップを重視します。

以下にカルーセルの構造の概要を示します。マークアップで指定された順序により、カルーセル リッチリザルトのタイルの順序が決まります。


  <html>
    <head>
      <title>Top 5 Restaurants in Italy</title>
      <script type="application/ld+json">
        {
        "@context": "https://schema.org",
        "@type": "ItemList",
          "itemListElement": [
            {
              "@type": "ListItem",
                "position": 1,
                "item": {
                  "@type": "Restaurant",
                  "name": "Trattoria Luigi",
                  "image": [
                    "https://example.com/photos/1x1/photo.jpg",
                    "https://example.com/photos/4x3/photo.jpg",
                    "https://example.com/photos/16x9/photo.jpg"
                  ],
                  "priceRange": "$$$",
                  "servesCuisine": "Italian",
                  "aggregateRating": {
                    "@type": "AggregateRating",
                    "ratingValue": 4.5,
                    "reviewCount": 250
                  },
                "url": "https://www.example.com/trattoria-luigi"
              }
            },
            {
              "@type": "ListItem",
                "position": 2,
                "item": {
                  "@type": "Restaurant",
                  "name": "La Pergola",
                  "image": [
                    "https://example.com/photos/1x1/photo.jpg",
                    "https://example.com/photos/4x3/photo.jpg",
                    "https://example.com/photos/16x9/photo.jpg"
                  ],
                  "priceRange": "$$$",
                  "servesCuisine": "Italian",
                  "aggregateRating": {
                    "@type": "AggregateRating",
                    "ratingValue": 4.9,
                    "reviewCount": 1150
                  },
                "url": "https://www.example.com/la-pergola"
              }
            },
            {
              "@type": "ListItem",
              "position": 3,
              "item": {
                "@type": "Restaurant",
                "name": "Pasta e Basta",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "priceRange": "$$$",
                "servesCuisine": "Italian",
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.2,
                  "reviewCount": 690
                },
              "url": "https://www.example.com/pasta-e-basta"
              }
            }
          ]
        }
      </script>
    </head>
    <body>
    </body>
  </html>
  

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

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

ItemList

ItemList は、リスト内のすべての要素を保持するコンテナ アイテムです。リスト内の要素のすべての URL が同じドメインの別のページを参照する必要があります。

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

必須プロパティ
itemListElement

ListItem

アイテムのリスト。リストを指定するには、少なくとも 3 つの itemListElement.item 要素を含む ItemList を定義します。

itemListElement.item

LocalBusinessProduct、または Event のサブタイプ

リスト内の個々のアイテム。このオブジェクトには以下を入力します:

: ホテルの場合は、priceRange プロパティと amenityFeature プロパティを指定します。

itemListElement.position

Integer

カルーセル内のアイテムの位置。1 以上の整数を指定します。

リストアイテムに共通のプロパティ(LocalBusinessProduct,、または Event

すべてのカルーセル アイテム タイプには共通で以下のプロパティが必要です。

必須プロパティ
image

URL または ImageObject の繰り返し

エンティティまたはアイテムの 1 枚以上の画像(ホテルの画像など)。image プロパティにはロゴを含めないでください。

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

  • すべてのページに画像を少なくとも 1 つ含める必要があります(マークアップを含めるかどうかは問わない)。Google は、アスペクト比と解像度に基づいて、検索結果に表示する最適な画像を選択します。
  • 画像の 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"
]
name

Text

エンティティまたはアイテムの名前の文字列。たとえば、ホテルまたは民泊リスティングの名前です。item.name は、カルーセル内で個々のアイテムのタイトルとして表示されます。HTML 形式は無視されます。

url

URL

アイテムの詳細ページの正規 URL です(たとえば、概要ページで参照されている、ある特定のホテルや民泊リスティングに対応したスタンドアロン ページです)。リスト内の URL はすべて一意で、同じドメイン(概要ページと同じドメインか、サブドメインまたはスーパー ドメイン)内に存在する必要があります。

推奨プロパティ
aggregateRating.bestRating

Number

この評価システムで使用できる最大値です(5 / 10 など)。bestRating を省略すると、5 であると見なされます。

aggregateRating.ratingCount

Number

サイトでのアイテムの評価の合計数。

aggregateRating.ratingValue

Number または Text

数字、分数、またはパーセンテージでアイテムの質の評価を表す数値(例: 460%6 / 10)。分数やパーセンテージを使用した場合、比率であると認識されます。これは、比の値つまり比率は分数自体またはパーセンテージで表されるためです。数字のデフォルトの尺度は 5 段階評価(1 が最小、5 が最高)です。別の尺度にする場合は、bestRatingworstRating を使用します。

小数の場合はカンマではなくドットを使用して数値を指定します(例: 4,4 ではなく 4.4)。Microdata や RDFa では content 属性を使用して表示されているコンテンツをオーバーライドできます。これにより、構造化データのドットの要件を満たしつつ、どのようなスタイル規則でも表示させることができます。次に例を示します。

<span itemprop="ratingValue" content="4.4">4,4</span> stars

タイプ固有の追加のプロパティの定義

LocalBusiness(およびサブタイプ)

Google は、カルーセル リッチリザルトのために、ListItem プロパティに加えて、次の LocalBusiness プロパティ(およびそのサブタイプ)をサポートします。これらのプロパティは itemListElement.item の下にネストします。

推奨プロパティ
amenityFeature

LocationFeatureSpecification

LodgingBusiness のみ: 宿泊施設の設備の特徴(例: 特性またはサービス)です。

"amenityFeature": {
  "@type": "LocationFeatureSpecification",
  "name" : "beachAccess",
  "value": true
}
priceRange

Text

ビジネスの相対的な価格帯。通常、正規化された数の通貨記号で指定します。次のどちらかの形式で価格帯を指定します。

  • 価格レベル: たとえば、「$」、「$$", "$$$」
  • 範囲: たとえば「$-$$」

このフィールドは 12 文字未満で指定してください。12 文字を超える場合、ビジネスの価格帯は表示されません。

servesCuisine

Text

レストランのみ: レストランで提供する料理の種類。

Product

Google はカルーセルのリッチリザルトのために ListItem プロパティに加えて以下の Product プロパティもサポートします。これらのプロパティは itemListElement.item の下にネストします。

推奨プロパティ
offers

Offer または AggregateOffer

ネストされた Offer または AggregateOffer で、商品の販売情報を指定します。Offer または AggregateOffer (コンテンツに該当する方)の推奨プロパティを含めます。

Offer を使用している場合は、以下のプロパティを含めます:

  • offers.price
  • offers.priceCurrency

AggregateOffer を使用している場合は、以下のプロパティを含めます:

  • offers.highPrice
  • offers.lowPrice
  • offers.priceCurrency
offers.highPrice

Number

すべての販売情報の中での最高価格。price で単一の価格を指定する場合は highPrice プロパティおよび lowPrice プロパティを含める必要はありません。

offers.lowPrice

Number

すべての販売情報の中での最低価格。price で単一の価格を指定する場合は highPrice プロパティおよび lowPrice プロパティを含める必要はありません。

offers.price

Number

商品の価格、または PriceSpecification およびそのサブタイプに関連付けられた場合の価格コンポーネント。lowPrice および highPrice で価格帯を指定する場合は price プロパティを含めないでください。

offers.priceCurrency

Text

商品価格の記述に使用する通貨を 3 文字の ISO 4217 形式で指定します。通貨を指定しない場合、Google ではデフォルト値として USD を使用します。

Event

Google はカルーセルのリッチリザルトのために ListItem プロパティに加えて以下の Event プロパティもサポートします。これらのプロパティは itemListElement.item の下にネストします。

推奨プロパティ
offers

Offer または AggregateOffer

ネストされた Offer または AggregateOffer で、イベントの販売情報を指定します。Offer または AggregateOffer (コンテンツに該当する方)の推奨プロパティを含めます。

Offer を使用している場合は、以下のプロパティを含めます:

  • offers.price
  • offers.priceCurrency

AggregateOffer を使用している場合は、以下のプロパティを含めます:

  • offers.highPrice
  • offers.lowPrice
  • offers.priceCurrency
offers.highPrice

Number

すべての販売情報の中での最高価格。price で単一の価格を指定する場合は highPrice プロパティおよび lowPrice プロパティを含める必要はありません。

offers.lowPrice

Number

すべての販売情報の中での最低価格。price で単一の価格を指定する場合は highPrice プロパティおよび lowPrice プロパティを含める必要はありません。

offers.price

Number

チケットの価格(サービス料や手数料を含む)。価格変更や売り切れの際には忘れずに更新してください。lowPrice および highPrice で価格帯を指定する場合は price プロパティを含めないでください。

支払い、手数料、サービス料なしでイベントを利用できる場合は、price0 に設定します。

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

Text

イベント価格の記述に使用する通貨を 3 文字の ISO 4217 形式で指定します。通貨を指定しない場合、Google ではデフォルト値として USD を使用します。

一般的なシナリオの例

Restaurant の例

JSON-LD でのレストランのカルーセルの例です。


<html>
    <head>
      <title>Top 5 Restaurants in Paris</title>
      <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "ItemList",
          "itemListElement": [
            {
              "@type": "ListItem",
              "position": 1,
              "item": {
                "@type": "Restaurant",
                "name": "Trattoria Luigi",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "priceRange": "$$$",
                "servesCuisine": "Italian",
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.5,
                  "reviewCount": 250
                },
                "url": "https://www.example.com/restaurant-location-1"
              }
            },
            {
              "@type": "ListItem",
              "position": 2,
              "item": {
                "@type": "Restaurant",
                "name": "La Pergola",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "priceRange": "$$$",
                "servesCuisine": "Italian",
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.9,
                  "reviewCount": 1150
                },
                "url": "https://www.example.com/restaurant-location-2"
              }
            },
            {
              "@type": "ListItem",
              "position": 3,
              "item": {
                "@type": "Restaurant",
                "name": "Pasta e Basta",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "priceRange": "$$$",
                "servesCuisine": "Italian",
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.2,
                  "reviewCount": 690
                },
                "url": "https://www.example.com/restaurant-location-3"
              }
            }
          ]
        }
      </script>
    </head>
    <body>
    </body>
  </html>

宿泊所(Hotels および VacationRental)の例

JSON-LD での宿泊所のカルーセルの例です。


<html>
    <head>
      <title>Top 5 Hotels in Paris</title>
      <script type="application/ld+json">
        {
        "@context": "https://schema.org",
        "@type": "ItemList",
            "itemListElement": [
              {
                "@type": "ListItem",
                "position": 1,
                "item": {
                  "@type": "Hotel",
                  "name": "Four Seasons Hotel George V, Paris",
                  "image": [
                    "https://example.com/photos/1x1/photo.jpg",
                    "https://example.com/photos/4x3/photo.jpg",
                    "https://example.com/photos/16x9/photo.jpg"
                  ],
                  "priceRange": "$$$$",
                  "amenityFeature": {
                      "@type": "LocationFeatureSpecification",
                      "name" : "internetType",
                      "value": "Free"
                  },
                  "aggregateRating": {
                    "@type": "AggregateRating",
                    "ratingValue": 4.9,
                    "reviewCount": 50
                  },
                  "url": "https://www.example.com/four-seasons"
                }
              },
              {
                "@type": "ListItem",
                "position": 2,
                "item": {
                  "@type": "VacationRental",
                  "name": "Downtown Condo",
                  "image": [
                    "https://example.com/photos/1x1/photo.jpg",
                    "https://example.com/photos/4x3/photo.jpg",
                    "https://example.com/photos/16x9/photo.jpg"
                  ],
                  "priceRange": "$$",
                  "amenityFeature": {
                    "@type": "LocationFeatureSpecification",
                    "name" : "instantBookable",
                    "value": true
                  },
                  "aggregateRating": {
                    "@type": "AggregateRating",
                    "ratingValue": 4.7,
                    "reviewCount": 827
                  },
                  "url": "https://www.example.com/downtown-condo"
                }
              },
              {
                "@type": "ListItem",
                "position": 3,
                "item": {
                  "@type": "Hotel",
                  "name": "Ritz Paris",
                  "image": [
                    "https://example.com/photos/1x1/photo.jpg",
                    "https://example.com/photos/4x3/photo.jpg",
                    "https://example.com/photos/16x9/photo.jpg"
                  ],
                  "priceRange": "$$$$",
                  "amenityFeature": {
                    "@type": "LocationFeatureSpecification",
                    "name" : "freeBreakfast",
                    "value": true
                },
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.9,
                  "reviewCount": 1290
                },
                "url": "https://www.example.com/ritz-paris"
              }
            }
          ]
        }
      </script>
    </head>
    <body>
    </body>
  </html>

おすすめスポットの例

JSON-LD でのおすすめスポットのカルーセルの例です。


<html>
    <head>
      <title>Top 5 Things To Do in Paris</title>
      <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "ItemList",
          "itemListElement": [
            {
              "@type": "ListItem",
              "position": 1,
              "item": {
                "@type": "Event",
                "name": "Paris Seine River Dinner Cruise",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "offers": {
                  "@type": "Offer",
                  "price": 45.00,
                  "priceCurrency": "EUR"
                },
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.2,
                  "reviewCount": 690
                },
                "url": "https://www.example.com/event-location1"
              }
            },
            {
              "@type": "ListItem",
              "position": 2,
              "item": {
                "@type": "LocalBusiness",
                "name": "Notre-Dame Cathedral",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "priceRange": "$",
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.8,
                  "reviewCount": 4220
                },
                "url": "https://www.example.com/localbusiness-location"
              }
            },
            {
              "@type": "ListItem",
              "position": 3,
              "item": {
                "@type": "Event",
                "name": "Eiffel Tower With Host Summit Tour",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "offers": {
                  "@type": "Offer",
                  "price": 59.00,
                  "priceCurrency": "EUR"
                },
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.9,
                  "reviewCount": 652
                },
                "url": "https://www.example.com/event-location2"
              }
            }
          ]
        }
      </script>
    </head>
    <body>
    </body>
  </html>
  

Product の例

JSON-LD での商品のカルーセルの例です。


<html>
    <head>
      <title>Top coats of the season</title>
      <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "ItemList",
          "itemListElement": [
            {
              "@type": "ListItem",
              "position": 1,
              "item": {
                "@type": "Product",
                "name": "Puffy Coat Series by Goat Coat",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "offers": {
                  "@type": "AggregateOffer",
                  "lowPrice": 45.00,
                  "highPrice": 60.00,
                  "priceCurrency": "EUR"
                },
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.9,
                  "reviewCount": 50
                },
                "url": "https://www.example.com/puffy-coats"
              }
            },
            {
              "@type": "ListItem",
              "position": 2,
              "item": {
                "@type": "Product",
                "name": "Wool Coat Series by Best Coats Around",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "offers": {
                  "@type": "AggregateOffer",
                  "lowPrice": 189.00,
                  "highPrice": 200.00,
                  "priceCurrency": "EUR"
                },
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.7,
                  "reviewCount": 827
                },
                "url": "https://www.example.com/wool-coats"
              }
            },
            {
              "@type": "ListItem",
              "position": 3,
              "item": {
                "@type": "Product",
                "name": "Antartic Coat by Cold Coats",
                "image": [
                  "https://example.com/photos/1x1/photo.jpg",
                  "https://example.com/photos/4x3/photo.jpg",
                  "https://example.com/photos/16x9/photo.jpg"
                ],
                "offers": {
                  "@type": "Offer",
                  "price": 45.00,
                  "priceCurrency": "EUR"
                },
                "aggregateRating": {
                  "@type": "AggregateRating",
                  "ratingValue": 4.9,
                  "reviewCount": 1290
                },
                "url": "https://www.example.com/antartic-coat"
              }
            }
          ]
        }
      </script>
    </head>
    <body>
    </body>
  </html>
  

トラブルシューティング

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