瞭解結構化資料的運作方式

Google 搜尋一直竭盡所能在瞭解網頁內容。而透過在網頁中加入結構化資料,你可以為 Google 提供有關網頁內容的明確線索。結構化資料是一種標準化格式,作用是提供網頁相關資訊以及將網頁內容歸類。舉例來說,食譜網頁上會包括食材、烹飪時間和溫度,以及熱量等各類資訊。

Google 會利用從網路上找到的結構化資料來瞭解網頁內容,以及收集網路和全世界的資訊。舉例來說,以下是一段可能出現在 Unlimited Ball Bearings 公司聯絡資訊網頁上的 JSON-LD 結構化資料程式碼片段,而其中介紹了該公司的聯絡資訊:

    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Organization",
      "url": "http://www.example.com",
      "name": "Unlimited Ball Bearings Corp.",
      "contactPoint": {
        "@type": "ContactPoint",
        "telephone": "+1-401-555-1212",
        "contactType": "Customer service"
      }
    }
    </script>

Google 搜尋也會使用結構化資料來提供特別的搜尋結果功能和強化項目。舉例來說,當食譜網頁提供了有效的結構化資料,就可以顯示在圖片搜尋結果中,如下所示:

搜尋結果功能 對應的結構化資料 (精簡格式)
蘋果派食譜複合式搜尋結果。 

    <html>
  <head>
    <title>Grandma's Holiday Pie</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Recipe",
      "name": "Grandma's Holiday Apple Pie",
      "author": "Elaine Smith",
      "image": "http://images.edge-generalmills.com/56459281-6fe6-4d9d-984f-385c9488d824.jpg",
      "description": "A classic apple pie.",
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "4",
        "reviewCount": "276",
        "bestRating": "5",
        "worstRating": "1"
      },
      "prepTime": "PT30M",
      "totalTime": "PT1H",
      "recipeYield": "8",
      "nutrition": {
        "@type": "NutritionInformation",
        "servingSize": "1 medium slice",
        "calories": "230 calories",
        "fatContent": "1 g",
        "carbohydrateContent": "43 g"
      },
      "recipeIngredient": [
        "1 box refrigerated pie crusts, softened as directed on box",
        "6 cups thinly sliced, peeled apples (6 medium)",
        "..."
      ],
      "recipeInstructions": [
        "1...",
        "2..."
       ]
    }
    </script>
  </head>
  <body>
  </body>
</html>

由於結構化資料會標示出食譜的每一項元素,因此使用者可以運用食材、熱量和烹飪時間等條件來搜尋你的食譜。

在編碼結構化資料時,應使用資訊所屬網頁上的頁內標記。換句話說,網頁上的結構化資料,應該要能描述該網頁內容。請不要為了容納結構化資料而特別建立空白網頁,或是針對使用者看不到的資訊新增結構化資料 (即使提供的是正確資訊)。如需更多技術指南和品質指南,請參閱結構化資料一般指南

結構化資料格式

這份說明文件旨在介紹結構化資料的必要屬性、建議屬性及選用屬性,並且說明這些屬性對 Google 搜尋所代表的特殊意義。雖然大部分的 Google 搜尋結構化資料都使用 schema.org 詞彙,但是針對 Google 搜尋的運作方式,developers.google.com 說明文件才是你最終的參考指南,請忽略 schema.org 的說明文件。例如,本文未提及的屬性和物件,就表示是 Google 搜尋並不需要的項目,即便 schema.org 說明文件將其標示為必要項目,也不具參考價值。

請務必在開發期間使用結構化資料測試工具測試你的結構化資料,並於部署完畢後使用複合式搜尋結果狀態報告監控網頁的健康情況。這是因為網頁仍可能會在部署完畢後,因為建立範本或提供服務時出現差錯而毀損。

如果想讓某個物件以進階效果顯示於 Google 搜尋,則必須針對該物件提供所有必要屬性。一般來說,採用的建議功能越多,你的資訊就越有可能以進階效果在搜尋結果顯示。不過,與其設法將所有可能的建議屬性一網打盡,但屬性資料卻因為不完整、格式錯誤或內容不正確而漏洞百出,還不如採取量少質精策略,提供較少的建議屬性,但個個完整無誤。

除了本文介紹的屬性和物件外,Google 還可能廣泛運用 sameAs 屬性和其他 schema.org 結構化資料。只要我們判斷有使用價值,這些元素都可能在未來的搜尋功能派上用場。

如果沒有另外說明,Google 搜尋一般都會支援下列格式的結構化資料:

格式 說明和位置
JSON-LD* (建議) 這個 JavaScript 標記法會嵌入網頁標頭或內文的 <script> 標籤。由於標記不會與使用者可見的文字交錯,因此可透過更簡易的方式表達巢狀項目,例如 Country > PostalAddress > MusicVenue > Event。此外,Google 可以解讀動態植入網頁內容的 JSON-LD 資料,例如透過內容管理系統中的 JavaScript 程式碼或內嵌小工具進行解讀。
微資料 這是一種開放社群 HTML 規格,作用是在 HTML 內容中為結構化資料提供巢狀結構。微資料使用 HTML 標記屬性,命名你想用結構化資料呈現的資源,這一點與 RDFa 類似。微資料通常是用在網頁內文,但標頭中也可以使用。
RDFa 這是一種 HTML5 擴充功能,透過引入與使用者可見內容對應的 HTML 標記屬性支援連結資料;所謂「使用者可見內容」也就是你想對搜尋引擎描述的內容。RDFa 一般是用在 HTML 網頁的標頭和內文部分。

結構化資料指南

請務必遵循一般結構化資料指南和你結構化資料所屬類型的專屬指南,否則你的結構化資料可能會無法顯示在 Google 搜尋的複合式搜尋結果中。

建構、測試並發布結構化資料

請參閱我們推薦的結構化資料網頁建立流程。