酒店Schema结构化数据:核心模型与最佳实践指南

2026/1/26
酒店Schema结构化数据:核心模型与最佳实践指南

AI Summary (BLUF)

本文介绍利用Schema.org词汇对酒店及各类住宿信息进行语义标注的基础知识与核心建模方法,涵盖住宿业务、住宿单元等关键实体类型。

Using Schema.org for Hotels and Accommodations

注意:本文参考了 Schema.org 的开发版本。有关我们开发流程的详细信息,请参阅我们的工作方式。

本页提供了使用 Schema.org 词汇表对酒店及各类住宿信息进行语义标注的基础知识和最佳实践。如需功能请求或贡献代码,请使用 GitHub 仓库。

另请参阅:致谢

概述

Overview

使用 Schema.org 为网络上的酒店相关信息建模时,三个核心实体类型构成了基础:

*   **一个 [住宿业务](https://schema.org/LodgingBusiness)**:这代表住宿场所本身,例如酒店、青年旅社、度假村或露营地。它是容纳实际租赁单元(如酒店房间)的本地企业和物理场所。一个住宿业务可能包含多栋建筑,但通常构成一个连贯的地点。
*   **一个 [住宿单元](https://schema.org/Accommodation)**:这指的是场所内实际可租赁的单元,例如酒店房间、套房、公寓、会议室或露营位。这些是提供租赁的具体对象。
*   **一个 [报价](https://schema.org/Offer)**:这模拟了以特定价格和规定条件(例如,入住类型、提前预订要求、条款与条件)租赁住宿单元的商业提议。

在 Schema.org 中,酒店房间的报价遵循与其他任何产品或服务报价相同的模式。然而,Accommodation 并不是 Product 或 Service 的子类。为了使 Offer 能够与 Accommodation 关联,Schema.org 利用了其**多类型实体(MTE)**功能。

当定义一个由 LodgingBusiness 提供的 Accommodation 实例时,它被描述为同时是特定的住宿类型(例如 HotelRoom)和一个 Product。因此,Hotel 为同时被标识为 Product 的 HotelRoom 创建一个 Offer。价格和条款因此是 Offer 的属性,而不是 Hotel 或 HotelRoom 的直接属性。

在不同语法中,MTE 的标记方法很简单:

  • JSON-LD:
    {
      "@context": "https://schema.org/",
      "@type": ["HotelRoom", "Product"]
    }
    
    • JSON-LD:
    {
      "@context": "https://schema.org/",
      "@type": ["HotelRoom", "Product"]
    }
    

对于租赁住宿,必须在 Offer 上附加 businessFunction 属性,其值为 LeaseOut(来自 GoodRelations 本体)。这明确了租赁而非出售的意图,并允许将这些类型重用于房地产列表。

基本模型

Basic Model

下图展示了描述酒店房间及其他住宿报价的核心模式。

描述酒店房间报价的 Schema.org 模式

*   所有 `Accommodation` 类型都是 `Place` 的子类。要将它们用作 `Offer` 的主体,请使用 MTE 技术(同时分配一个 `Accommodation` 类型和 `Product`)。
*   住宿单元与其业务之间的关系通过以下方式表示:
    *   `containedInPlace`(从房间到业务)或 `containsPlace`(从业务到房间)。
*   报价与房间之间的关系通过以下方式表示:
    *   `offers`(从房间产品到报价)或 `itemOffered`(从报价到房间产品)。
*   住宿业务与其报价之间的关系通过以下方式表示:
    *   `makesOffer`(从业务到报价)或 `offeredBy`(从报价到业务)。
*   对于包含不仅仅是房间(例如餐食)或跨越多个夜晚的报价,请使用 `includesObject` 属性以及一个或多个 `TypeAndQuantityNode` 对象。

住宿业务类型

Types of Lodging Businesses

Schema.org 目前为以下类型的住宿业务提供了明确的类型:

  • BedAndBreakfast
    • BedAndBreakfast
  • Campground
    • Campground
  • Hostel
    • Hostel
  • Hotel
    • Hotel
  • Motel
    • Motel
  • Resort
    • Resort

此列表可能会扩展。对于其他形式,请使用通用的 LodgingBusiness 类型。additionalType 属性可以链接到外部标识符(例如,来自受控词表)以指定确切类型。

住宿单元类型

Types of Accommodations

对于特定类型的住宿单元,有以下类型可用:

  • Apartment
    • Apartment
  • CampingPitch
    • CampingPitch
  • House
    • House
  • Suite
    • Suite

此列表也可能扩展。对于其他类型,请使用通用的 Accommodation 类型,可以选择使用 additionalType 来提高精确度。

基础示例

Minimal Example

最基本的形式是,您可以使用名称、描述、联系方式、照片、星级和价格范围等基本信息来标记酒店,而无需详细说明单个房间报价。

  Microdata Example:

<div itemscope itemtype="https://schema.org/Hotel">
  <h1><span itemprop="name">ACME Hotel Innsbruck</span></h1>
  <span itemprop="description">A beautifully located business hotel right in the heart of the alps...</span>
  <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
    <span itemprop="streetAddress">Technikerstrasse 21</span>
    <span itemprop="postalCode">6020</span>
    <span itemprop="addressLocality">Innsbruck</span>, <span itemprop="addressRegion">Tyrol</span>, <span itemprop="addressCountry">Austria</span>
  </div>
  Phone: <span itemprop="telephone">+43 512 8000-0</span>
  <img itemprop="photo" src="../media/hotel_front.png" alt="Front view of the hotel" />
  Star rating: <span itemprop="starRating" itemscope itemtype="https://schema.org/Rating">
    <meta itemprop="ratingValue" content="4">****
  </span>
  Room rates: <span itemprop="priceRange">$100 - $240</span>
</div>

Microdata 示例:

<div itemscope itemtype="https://schema.org/Hotel">
  <h1><span itemprop="name">ACME Hotel Innsbruck</span></h1>
  <span itemprop="description">一家位于阿尔卑斯山中心的商务酒店,位置优越...</span>
  <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
    <span itemprop="streetAddress">Technikerstrasse 21</span>
    <span itemprop="postalCode">6020</span>
    <span itemprop="addressLocality">Innsbruck</span>, <span itemprop="addressRegion">Tyrol</span>, <span itemprop="addressCountry">Austria</span>
  </div>
  电话: <span itemprop="telephone">+43 512 8000-0</span>
  <img itemprop="photo" src="../media/hotel_front.png" alt="酒店正面视图" />
  星级: <span itemprop="starRating" itemscope itemtype="https://schema.org/Rating">
    <meta itemprop="ratingValue" content="4">****
  </span>
  房价: <span itemprop="priceRange">$100 - $240</span>
</div>

有关完整属性列表,请参阅 Hotel 类型页面。此处描述的模式同样适用于其他住宿业务(例如 Campground、MeetingRoom),只需替换相应的类型即可。

酒店详细信息标记

Information about the Hotel

如果您的网站提供更丰富的详细信息,可以使用许多额外的 Schema.org 属性。以下是关键领域的重点介绍。

地理位置

Geo Position

在 geo 属性中使用 GeoCoordinates 来指定纬度和经度。

<div itemprop="geo" itemscope itemtype="https://schema.org/GeoCoordinates">
  <meta itemprop="latitude" content="47.2649990" />
  <meta itemprop="longitude" content="11.3428720" />
</div>

电话与传真

Telephone and Fax

使用 telephone 和 faxNumber 属性。

Phone: <span itemprop="telephone">+43 512 8000-0</span>
Fax: <span itemprop="faxNumber">+43 512 8000-99</span>

星级评分

Star Rating

星级评分表示住宿质量。可以是简单的数值,也可以包含评级机构信息。

简单标记

Simple

直接使用 starRating 标记数值。

Star rating: <span itemprop="starRating" itemscope itemtype="https://schema.org/Rating">
  <meta itemprop="ratingValue" content="4">****
</span>

高级标记:评分类型

Advanced: Type of Star Rating

使用内嵌 Rating 的 author 属性来指定颁发机构(例如 DEHOGA、HOTREC)。

Star rating: <span itemprop="starRating" itemscope itemtype="https://schema.org/Rating">
  <span itemprop="author" itemscope itemtype="https://schema.org/Organization">
    <span itemprop="name">DEHOGA</span>
  </span>
  <meta itemprop="ratingValue" content="4">****
</span>

注意: 官方星级评分使用 starRating。客户评论和综合评分应分别使用 review/Review 和 aggregateRating/AggregateRating。

照片与商标

使用 photo 表示物业图片,使用 logo 表示企业商标。

<img itemprop="logo" src="../media/logo.png" alt="hotel logo" />
<img itemprop="photo" src="../media/hotel_front.png" alt="Front view of the hotel" />

地图

Map

使用 hasMap 属性链接到地图。

<a itemprop="hasMap" href="https://www.google.com/maps?ie=UTF8&hq&ll=47.1234,11.1234&z=13">
  Click here for a map.
</a>

营业时间(接待处)

Opening Hours (Reception)

使用 openingHours 或结构更清晰的 openingHoursSpecification 来指示接待处营业时间。

Reception opening hours:
<meta itemprop="openingHours" content="Mo-Fr 07:00-23:00">Mon-Fri 07.00-23.00
<meta itemprop="openingHours" content="Sa 08:00-23:00">Saturdays 08.00-23.00
<meta itemprop="openingHours" content="Sun 08:00-12:00">Sundays 08.00-12.00

房间数量

Number of Rooms

使用 numberOfRooms。对于简单计数,使用数字。对于细分(例如,单人间与双人间),使用 QuantitativeValue。

  Simple:

<span itemprop="numberOfRooms">60</span> rooms.

  Detailed:

<span itemprop="numberOf
Roger深圳
本文由 Roger 审核,最后更新于 2026年10月29日
联系编辑 →
← 返回文章列表
分享到:微博

版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。

文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。

若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。