民泊(VacationRental)の構造化データ

Google 検索に表示された民泊のイラスト

民泊のリスティング ページに構造化データを追加すると、Google 検索に表示されるリスティングがより充実したものになります。ユーザーは、民泊の名称、説明文、画像、場所、評価、クチコミなどのリスティング情報を検索結果ですぐに確認できます。

始める前に

以下の手順は、すでに Google のテクニカル アカウント マネージャーと連絡がついていて、Hotel Center にアクセスできるサイトを対象としています。 民泊リスティングの統合に興味があるものの、まだ Google から連絡がない場合は、民泊お問い合わせフォームを使用してお問い合わせください。

この機能を利用できるのは特定の資格要件を満たすサイトに限られ、統合を完了するには追加の手順が必要です。Google に民泊の情報を掲載する方法の詳細については、統合スターター ガイドをご覧ください。

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

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

構造化データの作成、テスト、リリースの概要は次のとおりです。ウェブページに構造化データを追加するための手順ガイドについては、構造化データの Codelab をご覧ください。

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

JSON-LD を使用した簡単な民泊リスティングの例を次に示します。


<html>
  <head>
    <title>My Beautiful Vacation Rental</title>
    <script type="application/ld+json">
      {
        "@context": "https://schema.org",
        "@type": "VacationRental",
        "additionalType": "HolidayVillageRental",
        "brand": {
          "@type": "Brand",
          "name": "brandIdName"
        },
        "containsPlace": {
          "@type": "Accommodation",
          "additionalType": "EntirePlace",
          "bed": [{
            "@type": "BedDetails",
            "numberOfBeds" : 1,
            "typeOfBed": "Queen"
          },
          {
            "@type": "BedDetails",
            "numberOfBeds" : 2,
            "typeOfBed": "Single"
          }],
         "occupancy": {
            "@type": "QuantitativeValue",
            "value" : 2
          },
          "amenityFeature": [
            {
              "@type": "LocationFeatureSpecification",
              "name": "ac",
              "value": true
            },
            {
              "@type": "LocationFeatureSpecification",
              "name": "airportShuttle",
              "value": true
            },
            {
             "@type": "LocationFeatureSpecification",
              "name": "balcony",
              "value": true
            },
            {
              "@type": "LocationFeatureSpecification",
              "name": "beachAccess",
              "value": true
            },
            {
              "@type": "LocationFeatureSpecification",
              "name": "childFriendly",
              "value": true
            }
          ],
          "floorSize": {
            "@type": "QuantitativeValue",
            "value" : 75,
            "unitCode": "MTK"
          },
          "numberOfBathroomsTotal": 1,
          "numberOfBedrooms": 3,
          "numberOfRooms": 5
        },
        "identifier": "abc123",
        "latitude": "42.12345",
        "longitude": "101.12345",
        "name": "My Beautiful Vacation Rental",
        "address": {
          "addressCountry": "US",
          "addressLocality": "Mountain View",
          "addressRegion": "California",
          "postalCode": "94043",
          "streetAddress": "1600 Amphitheatre Pkwy, Unit 6E"
        },
        "aggregateRating": {
          "ratingValue": 4.5,
          "ratingCount": 10,
          "reviewCount": 3,
          "bestRating": 5
        },
        "image": [
          "https://example.com/mylisting/unit_image1.png",
          "https://example.com/mylisting/unit_image2.png",
          "https://example.com/mylisting/unit_image3.png",
          "https://example.com/mylisting/unit_image4.png",
          "https://example.com/mylisting/unit_image5.png",
          "https://example.com/mylisting/unit_image6.png",
          "https://example.com/mylisting/unit_image7.png",
          "https://example.com/mylisting/unit_image8.png"
        ],
        "checkinTime": "18:00:00+08:00",
        "checkoutTime": "11:00:00+08:00",
        "description": "A great Vacation Rental in the perfect neighborhood.",
        "knowsLanguage": ["en-US", "fr-FR"],
        "review": [{
          "@type": "Review",
          "reviewRating": {
            "@type": "Rating",
            "ratingValue": 4,
            "bestRating": 5
          },
          "author": {
            "@type": "Person",
            "name": "Lillian Ruiz"
          },
          "datePublished": "2024-12-01",
          "contentReferenceTime": "2024-11-17"
        },
        {
          "@type": "Review",
          "reviewRating": {
            "@type": "Rating",
            "ratingValue": "5",
            "bestRating": "5"
          },
          "author": {
            "@type": "Person",
            "name": "John S."
          },
          "datePublished": "2024-10-01",
          "contentReferenceTime": "2024-09-28"
        }
      ]
      }
    </script>
  </head>
  <body></body>
  </html>

資格に関するガイドライン

民泊の構造化データを Google 検索で使用するためには、次のガイドラインに準拠する必要があります。

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

次の表は、schema.org/VacationRental を使用して民泊リスティングをマークアップするためのプロパティと使用法を示しています。構造化データが表示されるようにするには、必須プロパティを含める必要があります。また、推奨プロパティを使用することでコンテンツに関する詳細情報を追加でき、ユーザー エクスペリエンスの向上につながります。

VacationRental

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

必須プロパティ
containsPlace

Accommodation

民泊リスティングには、ベッド数、利用状況、部屋数、および amenityFeature プロパティなどの詳細情報をマークアップするための Accommodation が 1 つ含まれている必要があります。

containsPlace.occupancy

QuantitativeValue

民泊リスティングで宿泊可能とする最大宿泊客数についての情報。

"occupancy": {
  "@type": "QuantitativeValue",
  "value" : 5
  }
containsPlace.occupancy.value

Integer

民泊リスティングで宿泊可能とする宿泊客の数値。

identifier

Text

宿泊施設の一意の識別子。

その他のガイドライン:

  • 識別子はリスティングのコンテンツとは独立して設定してください。たとえば、宿泊施設の所有者がリスティング名や寝室数などを更新しても、識別子が変わらないようにします。
  • 同じリスティングに対しては、言語が異なっても同じ識別子を使用してください。
image

URL を反復

リスティングの画像。リスティングには少なくとも 8 枚の写真(寝室、バスルーム、共用エリアの画像を各 1 枚以上)含める必要があります。

加えて、宿泊施設のリスティング画像の要件にも準拠してください。

latitude
(または geo.latitude

Number

リスティングの場所の緯度。精度は小数点 5 桁以上にする必要があります。

longitude
(または geo.longitude

Number

リスティングの場所の経度。精度は小数点 5 桁以上にする必要があります。

name

Text

民泊リスティングの名称。

推奨プロパティ
additionalType

Text

民泊リスティングの種類。いくつかの推奨値を次に示します。

  • Apartment
  • Bungalow
  • Cabin
  • Chalet
  • Cottage
  • Gite
  • HolidayVillageRental
  • House
  • Villa
  • VacationRental

これらの値の定義の全文は宿泊施設ビジネスのカテゴリで確認できます。

address

PostalAddress

民泊施設の物理的所在地の完全な情報。

民泊施設の番地、都市、州または地域、郵便番号を指定します。該当する場合は、建物名、部屋番号も含めます。

私書箱や郵便物受け取り専用住所は、正式な住所とは見なされません。

"address": {
  "addressCountry": "US",
  "addressLocality": "Mountain View",
  "addressRegion": "California",
  "postalCode": "94043",
  "streetAddress": "1600 Amphitheatre Pkwy, Apartment 4E"
}
address.addressCountry

Text

民泊リスティングの国(2 文字の ISO 3166-1 alpha-2 国コードを使用)。

address.addressLocality

Text

民泊リスティングの都市。

address.addressRegion

Text

リスティングの州または地域の名前。

address.postalCode

Text

民泊リスティングの郵便番号。

address.streetAddress

Text

民泊リスティングの完全な番地。該当する場合は、建物名、部屋番号も含めます。

aggregateRating

AggregateRating

民泊の平均評価は、複数の評価やクチコミに基づいています。クチコミ抜粋のガイドラインと、必須および推奨される AggregateRating プロパティのリストに準拠してください。

brand

Brand

この宿泊施設に関連付けられたブランド ID。宿泊施設をブランドに関連付ける方法、ブランド アイコンと表示名を各ブランド ID にリンクする方法について詳しくは、Hotel Center のドキュメントをご覧ください。

"brand": {
  "@type": "Brand",
  "name" : "brandIdName"
}
checkinTime

Time

宿泊施設へのチェックイン開始時刻(ISO 8601 形式)。

例: 14:30:00+08:00

checkoutTime

Time

宿泊施設へのチェックイン終了時刻(ISO 8601 形式)。

例: 14:30:00+08:00

containsPlace.additionalType

Text

宿泊施設の部屋のタイプ。次のいずれかの値を使用します。

  • EntirePlace
  • PrivateRoom
  • SharedRoom
containsPlace.amenityFeature

amenityFeature を反復

宿泊施設に特定の機能や設備があるかどうか。ブール値の例は次のパターンに準拠してください。

"amenityFeature": {
  "@type": "LocationFeatureSpecification",
  "name" : "featureName",
  "value": true
}
ブール値

amenityFeature.name プロパティには次のいずれかの値を使用します。リスティングが英語ではなくても、値には英語を使用してください。

ac

宿泊施設にエアコンがあるかどうか。

airportShuttle

空港や他のターミナルへの送迎を提供するかどうか。

balcony

宿泊施設にバルコニーがあるかどうか。

beachAccess

宿泊施設の近くに公共のビーチがあるかどうか。

kidsFriendly

宿泊施設がお子様に適しているかどうか。

crib

宿泊施設にベビーベッドが用意されているかどうか。

elevator

宿泊施設にエレベーターがあるかどうか。

fireplace

宿泊施設に暖炉があるかどうか。

freeBreakfast

宿泊施設は朝食付きかどうか。

gymFitnessEquipment

宿泊施設にジムやフィットネスの設備があるかどうか。

heating

宿泊施設に暖房があるかどうか。

hotTub

宿泊施設に温水浴槽があるかどうか。

instantBookable

宿泊施設は決済手続きを通じて即時予約ができるかどうか。代替手段は承認待ちです。

ironingBoard

宿泊施設でアイロン台を利用できるかどうか。

kitchen

宿泊施設にキッチンがあるかどうか。

microwave

宿泊施設で電子レンジを利用できるかどうか。

outdoorGrill

宿泊施設にグリルがあるかどうか。

ovenStove

宿泊施設にオーブンまたはコンロがあるかどうか。

patio

宿泊施設にテラスがあるかどうか。

petsAllowed

宿泊施設でペットの同伴が許可されているかどうか。

pool

宿泊施設にプールがあるかどうか。

privateBeachAccess

宿泊施設に専用のプライベート ビーチがあるかどうか。

selfCheckinCheckout

宿泊施設はセルフ チェックイン / チェックアウトに対応しているかどうか。

smokingAllowed

室内での喫煙が許可されているかどうか。

tv

宿泊施設にテレビがあるかどうか。

washerDryer

宿泊施設に洗濯機があるかどうか。

wheelchairAccessible

宿泊施設が車椅子対応であるかどうか。

wifi

宿泊施設で Wi-Fi が利用できるかどうか。

非ブール値

amenityFeature に関しては、次の非ブール値 namevalue のペアもサポートされています。リスティングが英語ではなくても、どちらの値にも英語を使用してください。

非ブール値は次のパターンに準拠してください。

"amenityFeature": {
  "@type": "LocationFeatureSpecification",
  "name" : "featureName",
  "value": "detail"
  }

internetType

宿泊施設で利用できるインターネットの種類。いくつかの推奨値を次に示します。

  • Free
  • Paid
  • None

"amenityFeature": {
  "@type": "LocationFeatureSpecification",
  "name" : "internetType",
  "value": "Free"
}

parkingType

宿泊施設で利用できる駐車場の種類。いくつかの推奨値を次に示します。

  • Free
  • Paid
  • None

"amenityFeature": {
  "@type": "LocationFeatureSpecification",
  "name" : "parkingType",
  "value": "Free"
}
poolType

宿泊施設で利用できるプールの種類。いくつかの推奨値を次に示します。

  • Indoor
  • Outdoor
  • None

"amenityFeature": {
  "@type": "LocationFeatureSpecification",
  "name" : "poolType",
  "value": "Outdoor"
}

licenseNum

世界の特定地域の宿泊施設に対して表示が義務付けられているライセンス番号(観光用または事業用)。これは反復する可能性があるため、複数のライセンスを所持している場合は、ライセンスの認証機関をコンテキストとして追加することをおすすめします(例: Paris: 123456ABC)。

"amenityFeature": {
  "@type": "LocationFeatureSpecification",
  "name" : "licenseNum",
  "value": "Paris: 123456ABC"
}
containsPlace.bed

BedDetails を反復

リスティングに掲載するベッドの種類と台数についての情報。

"bed": [{
  "@type": "BedDetails",
  "numberOfBeds" : 1,
  "typeOfBed": "Queen"
  },
  {
  "@type": "BedDetails",
  "numberOfBeds" : 2,
  "typeOfBed": "Single"
  }]
containsPlace.bed.numberOfBeds

Integer

リスティングに掲載するベッド数。

containsPlace.bed.typeOfBed

Text

リスティングに掲載するベッドの種類。いくつかの推奨値を次に示します。

  • CaliforniaKing
  • King
  • Queen
  • Full
  • Double
  • SemiDouble
  • Single

containsPlace.floorSize

QuantitativeValue

宿泊施設の規模。これは unitCode プロパティ値を使用して指定する必要があります。

  • 平方フィートの場合: FTK または SQFT
  • 平方メートルの場合: MTK または SQM
"floorSize": {
  "@type": "QuantitativeValue",
  "value" : 75,
  "unitCode": "MTK"
  }
containsPlace.numberOfBathroomsTotal

Integer

リスティングに掲載するバスルームの合計数。RESO で提供している不動産規約に準拠したバスルームの単純な合計数が必要です。 たとえば、フルバスルームが 2 つとハーフ バスルームが 1 つある宿泊施設の場合、バスルームの合計数は 2.5 となります。

containsPlace.numberOfBedrooms

Integer

リスティングに掲載する寝室の合計数。

containsPlace.numberOfRooms

Integer

リスティングに掲載する部屋の合計数。

description

Text

宿泊施設の説明。

knowsLanguage

Repeated Text

ホストの使用可能言語。IETF BCP 47 標準の言語コードを使用してください(en-USfr-FR など)。

review

Repeated Review

リスティングに掲載する 1 件以上のユーザーのクチコミ。クチコミ抜粋のガイドラインと、必須および推奨される Review プロパティのリストに準拠してください。

"review": {
  "@type": "Review",
  "reviewRating": {
    "@type": "Rating",
    "ratingValue": "4",
    "bestRating": "5"
  },
  "datePublished": "2023-02-09"
  "author": {
    "@type": "Person",
    "name": "Lillian R"
  }
}

review.contentReferenceTime

DateTime

クチコミ作成者の滞在開始日。

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

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

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

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

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

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

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

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

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

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

トラブルシューティング

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