SEO 優化 / / 9 min

結構化資料 Schema.org 教學:幫 Google 更懂你的網頁

完整的結構化資料教學,從 Schema.org 基礎觀念到實際操作,教你用 JSON-LD 標記讓 Google 更理解你的網頁內容。

目錄

什麼是結構化資料,為什麼你該在意

你有沒有注意到,有些搜尋結果長得跟別人不一樣?有的會顯示星等評分、有的會展開 FAQ 問答、有的出現食譜的卡路里和烹飪時間、有的甚至直接跳出產品價格和庫存狀態。

這些不是 Google 的魔法,而是那些網站用了結構化資料(Structured Data)。

結構化資料簡單來說就是一段特殊格式的程式碼,放在你的網頁裡,用來告訴 Google:「這個頁面上的這段文字是什麼意思。」人類看到「4.8」可能會猜那是評分,但 Google 不確定——它也可能是價格、版本號、或是隨便一個數字。結構化資料就是幫 Google 消除這種歧義。

這套標記語言的標準叫做 Schema.org,是由 Google、Microsoft、Yahoo、Yandex 共同維護的開放標準。它定義了上千種資料類型,從文章、產品、活動、食譜到醫療資訊都有。

做好結構化資料有什麼好處?

  • 複合式搜尋結果(Rich Results):你的搜尋結果會比一般結果大、資訊更豐富、更吸引點擊
  • 更高的點擊率:根據研究,有複合式搜尋結果的頁面,點擊率平均比一般結果高出 30-50%
  • 語音搜尋優勢:Google Assistant 回答問題時,常常會引用有結構化資料的內容
  • Knowledge Panel:品牌或組織的結構化資料可能出現在搜尋結果右側的知識面板

JSON-LD:Google 推薦的標記格式

結構化資料有三種格式:JSON-LD、Microdata、RDFa。Google 官方推薦的是 JSON-LD,因為它最簡潔、最容易維護、不會跟你的 HTML 混在一起。

JSON-LD 是一段放在 <script> 標籤裡的 JSON 格式程式碼,通常放在頁面的 <head> 區段。它不會影響頁面的外觀,純粹是給搜尋引擎看的。

一個最基本的文章(Article)Schema 長這樣:

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "文章標題",
  "author": {
    "@type": "Person",
    "name": "作者名"
  },
  "datePublished": "2026-02-08",
  "image": "https://example.com/image.jpg",
  "publisher": {
    "@type": "Organization",
    "name": "網站名稱"
  }
}

看起來很單純對吧?@context 告訴 Google 這段資料用的是 Schema.org 標準,@type 說明這是一篇文章,接下來就是各種屬性。每個 @type 都有它對應的屬性清單,你可以在 Schema.org 的網站上查到。

JSON-LD 結構化資料的基本架構:@context、@type 與屬性的巢狀關係圖解

最常用的 Schema 類型

Schema.org 定義了上千種類型,但實務上你最常用到的大概就是這幾種:

Article / BlogPosting:適用於新聞文章或部落格文章。可以標記標題、作者、發佈日期、封面圖片等。做好之後有機會出現在 Google 的「精選新聞」區塊。

Product:電商網站的必備。可以標記產品名稱、價格、庫存狀態、評分、品牌等。搜尋結果會直接顯示價格和評分星等。

FAQPage:在頁面上有問答內容的時候使用。做好之後搜尋結果會出現可展開的問答區塊,非常搶眼,而且可以佔據更多搜尋結果空間。

LocalBusiness:實體商家必備。可以標記店名、地址、電話、營業時間、評分等。跟 Google 商家檔案搭配使用效果最好。

HowTo:教學步驟類的內容。可以把每個步驟、所需時間、所需工具都標記出來。搜尋結果會顯示步驟列表。

BreadcrumbList:麵包屑導航。讓搜尋結果的 URL 區域顯示層級路徑而不是普通的網址,幫助使用者理解頁面在網站中的位置。

Organization:組織或公司的基本資訊。包括名稱、Logo、社群媒體連結等。有助於觸發 Google 的知識面板。

VideoObject:頁面上有影片的時候使用。標記影片標題、描述、縮圖、時長等。搜尋結果會顯示影片預覽。

每種類型都有「必要屬性」和「建議屬性」。Google 的文件會告訴你哪些屬性必須填,哪些填了有加分。建議盡可能把建議屬性也填完,資訊越完整,Google 給你顯示複合式結果的機率越高。

實作範例:一步步來

講了這麼多概念,來看幾個實際的例子。

FAQPage Schema

假設你的頁面上有一段 FAQ 區塊,HTML 長這樣:

<h2>常見問題</h2>
<h3>SEO 需要多久才能看到效果?</h3>
<p>一般來說需要 3-6 個月才能看到明顯的排名變化。</p>
<h3>SEO 一個月要花多少錢?</h3>
<p>視產業和競爭程度而定,中小企業的行情大約在每月 2-10 萬元。</p>

對應的 JSON-LD 是:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "SEO 需要多久才能看到效果?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "一般來說需要 3-6 個月才能看到明顯的排名變化。"
      }
    },
    {
      "@type": "Question",
      "name": "SEO 一個月要花多少錢?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "視產業和競爭程度而定,中小企業的行情大約在每月 2-10 萬元。"
      }
    }
  ]
}

LocalBusiness Schema

如果你有一家咖啡廳:

{
  "@context": "https://schema.org",
  "@type": "CafeOrCoffeeShop",
  "name": "好日子咖啡",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "南京東路二段 123 號",
    "addressLocality": "台北市",
    "addressRegion": "中山區",
    "postalCode": "10489"
  },
  "telephone": "+886-2-1234-5678",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "08:00",
      "closes": "18:00"
    }
  ],
  "priceRange": "$$",
  "image": "https://example.com/cafe.jpg",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "128"
  }
}

注意 @type 用的是 CafeOrCoffeeShop 而不是泛泛的 LocalBusiness。Schema.org 有很多子類型,盡量選最精確的那個。

常用 Schema 類型與對應的複合式搜尋結果樣式:FAQ、Product、LocalBusiness、Article 的呈現效果

測試和驗證工具

寫好結構化資料之後,一定要測試。語法有任何錯誤,Google 就不會處理。

Google Rich Results Test(search.google.com/test/rich-results):最重要的工具。貼上你的網址或直接貼程式碼,它會告訴你結構化資料有沒有錯誤、是否符合複合式搜尋結果的資格。

Schema Markup Validator(validator.schema.org):由 Schema.org 提供的驗證工具,可以檢查你的標記是否符合 Schema.org 的語法規範。比 Google 的工具更嚴格,會檢查所有屬性是否正確。

Google Search Console:在「強化」區塊裡,你可以看到 Google 實際偵測到的結構化資料、有沒有錯誤或警告、以及複合式搜尋結果的曝光和點擊數據。

驗證的時候要注意兩件事:

  1. **沒有錯誤(Error)**是基本要求,有錯誤 Google 就不會處理
  2. **沒有警告(Warning)**代表最佳狀態,有警告通常意味著缺少某些建議屬性,不會導致失敗但可能影響顯示效果

常見的結構化資料錯誤

做結構化資料最容易犯的幾個錯誤:

標記的內容跟頁面上看不到:Google 明確規定,結構化資料標記的內容必須在頁面上對使用者可見。你不能在 JSON-LD 裡寫了 5 星評分,但頁面上根本沒有顯示任何評分。這是操弄行為,Google 偵測到會處罰。

使用錯誤的 Schema 類型:把新聞文章標記成 Product、把一般文章標記成 NewsArticle。每種類型都有它的適用場景,用錯了不但沒幫助,還可能觸發 Google 的垃圾內容政策。

缺少必要屬性:每種 Schema 類型都有必要屬性。Product 類型如果少了 name 或 image,Google 就不會處理。

日期格式錯誤:日期要用 ISO 8601 格式,像 2026-02-082026-02-08T10:00:00+08:00。用「2026 年 2 月 8 日」或「02/08/2026」都不行。

自我評分:在自己的網站上用 AggregateRating 給自己打分,但評分數據沒有實際的評論支持。Google 不接受「自評自誇」式的評分標記。

進階技巧和注意事項

掌握了基礎之後,有幾個進階的觀念可以幫你做得更好:

巢狀結構(Nesting):一個頁面上可以有多個相關的 Schema 類型互相巢狀。比如一篇文章裡面可以巢狀 author(Person 類型)、publisher(Organization 類型)。結構越完整,Google 對你的內容理解越精確。

多個 Schema 並存:一個頁面可以同時有 Article、BreadcrumbList、FAQPage 等多個 Schema。你可以用 @graph 把它們包在一起,或是直接放多個 <script type="application/ld+json"> 標籤。

動態生成:如果你的網站是用 CMS 或框架開發的,結構化資料應該動態生成而不是手動寫死。大多數主流的 CMS 都有外掛可以處理這件事。WordPress 有 Yoast SEO、Rank Math,它們都會自動幫你產生基本的結構化資料。

持續監控:結構化資料不是做完就忘記。定期到 Google Search Console 檢查有沒有新的錯誤或警告。網站改版、內容更新的時候,結構化資料也要跟著調整。

不要標記隱藏內容:這一點再強調一次。如果你的頁面上有一個折疊區塊,裡面的內容使用者點開才看得到,那用結構化資料標記是可以的。但如果內容是用 CSS display:none 完全隱藏、使用者永遠看不到的,那就不要標記。

結構化資料實作流程:選擇類型、撰寫 JSON-LD、測試驗證、部署上線、監控維護的五步驟流程圖

從哪裡開始

如果你的網站目前完全沒有結構化資料,建議按照這個順序來做:

  1. 先做 BreadcrumbList:最簡單,適用於所有網站,馬上就能讓搜尋結果的 URL 區域更好看
  2. 加上 Organization:把你的品牌基本資訊標記好,有助於觸發知識面板
  3. 依內容類型加對應的 Schema:文章頁用 Article、產品頁用 Product、FAQ 頁用 FAQPage
  4. 如果是實體商家,加上 LocalBusiness:配合 Google 商家檔案,強化在地搜尋表現
  5. 用 Google Search Console 持續監控:確保沒有錯誤,追蹤複合式搜尋結果的表現

結構化資料不是什麼高深的技術,但它是少數「投入時間少、回報卻很明顯」的 SEO 工作。花幾個小時設定好,你的搜尋結果就會比競爭對手更顯眼、更容易被點擊。而在 SEO 的世界裡,多 10% 的點擊率可能就代表多 10% 的業績。