飯店價格:啟用檢索器導覽和價格標記

本指南說明如何使用微資料導覽屬性標記網站,讓 Google 的價格準確度檢索器自動瀏覽預訂漏斗,並驗證房價。

如要查看所有可用結構化資料屬性 (包括細列的稅金、費用和房型詳細資料) 的完整技術規格,請參閱飯店價格結構化資料參考資料


使用自訂 data-nav-* HTML 屬性註解互動式元素,並宣告漏斗階段,讓檢索器能夠遍歷預訂流程。

1.1 頁面頂端階段聲明 (data-nav-stage)

預訂漏斗中顯示房價的每個頁面,都應在 <body> 代碼或主要包裝函式代碼 (例如 <div><section><main>) 中宣告階段。這會告知檢索器目前處於預訂流程的哪個階段,並協助日後排解問題。

  • data-nav-stage (建議):宣告有效的漏斗階段。雖然並非必要,但指定名稱 (例如 "landing""room-selection""checkout""ready-for-payment") 有助於在驗證期間識別有效階段。

1.2 最終階段指標 (data-nav-stage-final)

在顯示價格的最後一頁,也就是使用者輸入個人或付款資訊之前,請在網頁頂端容器中加入最終階段旗標和階段聲明 (例如 data-nav-stage="ready-for-payment")。

  • data-nav-stage-final (選用):在付款前,於最終價格頁面將 "true" 設為 data-nav-stage-final="true"。這會向檢索器指出此頁面是最終頁面,且可擷取價格以進行驗證。這個頁面必須包含微資料標記的價格結構。

1.3 關鍵路徑互動屬性

在中間頁面中,標記可讓使用者在預訂關鍵路徑中前進的互動元素 (按鈕或連結)。如果同一網頁需要執行多項動作,請指定執行順序。在嘗試擷取最終頁面的價格前,檢索器會依指定順序執行。

屬性 必要值 目的
data-nav-criticalpath "true" 標示檢索器必須點選才能繼續的必要按鈕/連結。
data-nav-interactiontype "CLICK" 宣告必須點按才能繼續流程。
data-nav-interactionorder "1""2"、... 如果同一網頁需要執行多項動作,請宣告執行順序。

最簡單的導覽範例

<button data-nav-criticalpath="true"
        data-nav-interactiontype="CLICK"
        data-nav-interactionorder="1">
  Continue
</button>

2. 價格聲明 (微資料)

在預訂漏斗的最終可存取頁面 (輸入個人或付款資訊前),使用微資料標記標記價格方案 (一個價格方案)。頁面只能標記一項方案,指出檢索器擷取的房價,對應使用者在前往你網站前,於 Google 上選取的房價。如要進一步瞭解如何定義到達網頁參數,請參閱變數和條件

Google 完全支援飯店價格結構化資料參考資料中的完整階層 (包括細列的基本房價、個別稅金、費用和房型詳細資料),同時也接受簡化的結構化資料樹狀結構,方便你在網頁上標記飯店價格。

如要提供可訂房的房價,必須提供住宿總價。如果行程或房型無法預訂或已售完,請在 makesOffer 下方宣告 https://schema.org/SoldOut,但不要提供 priceSpecification

<div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer">
  <meta itemprop="availability" content="https://schema.org/SoldOut"/>
  Sold Out
</div>

詳情請參閱availability 屬性規格。

2.1 簡化的結構化資料樹狀結構

為簡化預訂頁面上的標記,您只需要宣告根飯店和預訂容器、入住日期 (YYYY-MM-DD)、入住人數,以及包含總入住價格的單一方案:

Hotel / LodgingReservation (Root Container)
├── identifier                   [Meta/Attribute] Hotel ID
├── name                         [Visible text] Hotel Name
├── checkinTime / checkoutTime   [Visible text with YYYY-MM-DD in content="..."] Stay Dates
├── numAdults / numChildren      [Visible text] Occupancy
└── makesOffer (Offer)
    └── priceSpecification (CompoundPriceSpecification)
        ├── priceCurrency        [ISO Code, such as "USD"] Currency
        └── price                [Visible text] Total Stay Price (Taxes & Fees Included)

2.2 重要顯示規則

如要確保系統能正確擷取價格,請在標記 HTML 時遵守下列顯示規則:

  • 必須顯示住宿總價:使用 itemprop="price" 直接在頁面上標記顯示的價格數字。請勿使用隱藏中繼資料 (<meta>) 或屬性值 (value="..."content="...") 做為價格數字。
  • 機器可讀取的住宿日期:盡可能在網頁上標記可公開顯示的住宿日期。如有需要,您可以在 <span> 元素上使用 content="..." 屬性,在顯示可見日期 (例如 <span itemprop="checkinTime" content="2026-08-10">August 10, 2026</span>) 時提供標準 YYYY-MM-DD 格式。
  • 非顯示欄位:未直接顯示在網頁上的欄位 (例如飯店 ID 或幣別代碼) 可以使用 <meta> 標記或 content="..." 屬性。

3. 範例

下列端對端範例說明如何使用導覽屬性和微資料,為漏斗中間步驟和最終結帳頁面加上標記。

範例 1:含有可點選按鈕的中介網頁

以下程式碼片段顯示中繼房型選擇頁面 (room-selection),其中標記了單一重要路徑動作按鈕,可推進流程:

<body data-nav-stage="room-selection">
  <!-- Main page content -->
  <button class="btn-continue"
          data-nav-criticalpath="true"
          data-nav-interactiontype="CLICK"
          data-nav-interactionorder="1">
    Book This Room
  </button>
</body>

範例 2:最終價格頁面,含有階段指標和最少的微資料

以下程式碼片段顯示付款前的最後一頁 (ready-for-payment),其中 data-nav-stage-final="true" 是在包裝函式中宣告,且權威住宿價格會清楚顯示:

<body data-nav-stage="ready-for-payment" data-nav-stage-final="true">

  <!-- Root Container: Co-Typed Hotel & LodgingReservation -->
  <div itemscope itemtype="https://schema.org/Hotel https://schema.org/LodgingReservation">
    
    <!-- Hotel Identifier (Can be hidden meta tag) -->
    <meta itemprop="identifier" content="grand-view-001" />
    <h1 itemprop="name">Grand View Hotel</h1>
    
    <!-- Visible Stay Dates & Occupancy -->
    <p>
      Check-in: <span itemprop="checkinTime" content="2026-08-10">Aug 10, 2026</span> |
      Check-out: <span itemprop="checkoutTime" content="2026-08-15">Aug 15, 2026</span> |
      Guests: <span itemprop="numAdults">2</span> Adults, <span itemprop="numChildren">1</span> Child
    </p>

    <!-- Single Minimal Rate Offer -->
    <div itemprop="makesOffer" itemscope itemtype="https://schema.org/Offer">
      <div itemprop="priceSpecification" itemscope itemtype="https://schema.org/CompoundPriceSpecification">
        
        <p class="summary-total">
          Total Stay Price (Taxes & Fees Included):
          
          <!-- 3-letter ISO Currency Code (can use content="" for hiding the 3-letter currency code while displaying a symbol) -->
          <span itemprop="priceCurrency" content="EUR">€</span>
          
          <!-- VISIBLE TOTAL STAY PRICE (Directly wrapped, no hidden attributes) -->
          <span itemprop="price">650.00</span>
        </p>

      </div>
    </div>

  </div>

</body>

4. 驗證導入狀態

部署變更前,請先測試標記和導覽標記,確保檢索器能順利驗證價格資料。

4.1 驗證價格和微資料結構

你可以使用 Schema.org 驗證工具Google 複合式搜尋結果測試,檢查從網頁網址或 HTML 內容擷取的微資料。根據飯店價格結構化資料參考資料中的規格,驗證擷取的欄位,並確認 itemprop="price" 元素是網頁上顯示的項目。

4.2 驗證導覽

如要驗證代碼,請在 Google Chrome 中開啟「瀏覽器開發人員工具」,方法是按一下滑鼠右鍵並選取「檢查」 (或按下 F12),檢查 HTML DOM。

確認您的實作方式符合下列導覽規定:

  • 宣告頁面頂端階段:預訂流程中的每個頁面都會在 <body> 或根包裝函式標記中包含 data-nav-stage="...",最終價格頁面則會包含 data-nav-stage-final="true"
  • 完成重要路徑:中繼頁面的互動元素 (按鈕或連結) 標示為 data-nav-criticalpath="true"data-nav-interactiontypedata-nav-interactionorder。如果有多個動作,請確認訂單號碼設定正確無誤。

4.3 驗證曝光度和標記品質

確認微資料符合所有結構和顯示規定 (詳情請參閱簡化結構化資料樹狀結構重要顯示規則):

  • 嚴格的階層:請確保標記遵循必要的巢狀結構順序 (簡化樹狀結構或完整的結構化資料參考規格)。如果元素順序有誤或巢狀結構不正確,檢索器可能會略過這些元素。
  • 顯示價格: itemprop="price"直接包裝顯示價格 數字,不含隱藏屬性或 <meta> 標記。
  • 機器可讀的住宿日期: checkinTimecheckoutTime 包含標準 YYYY-MM-DD (可選用 content="..." 屬性)。
  • 直接元素標記:所有可見屬性 (飯店名稱、住宿日期、入住人數) 都會包裝可見的網頁文字。