SEO GUIDE
SEO 指南 Q & A
電商 SEO

Product Schema 完整實作教學 | 電商商品結構化資料指南

Product Schema 示意:左側 JSON-LD 程式碼區塊標記商品資訊,中間整理出名稱、價格、評分與庫存等欄位,右側是帶有星等與價格欄位的商品搜尋結果卡片。

在 AI 搜尋時代,Product Schema 已從「加分項」變成電商網站的「必備基礎建設」。當 ChatGPT、Perplexity、Google AI Overviews 為消費者推薦商品時,結構化資料能讓價格、庫存、評分等資訊被機器準確讀取,是商品被正確理解的基礎。本篇將完整拆解 Product Schema 的必備欄位、變體商品寫法、折扣價格標記,以及與 Google Merchant Center 的整合策略,並提供台灣中小型電商可直接套用的範例程式碼。

為什麼電商必須實作 Product Schema

過去談 Product Schema,多半聚焦於「讓 Google 搜尋結果出現星等與價格的 Rich Snippet」。但進入 AI 搜尋時代,情勢已徹底改變:使用者越來越少直接點進搜尋結果,而是直接從 AI 答案中選購商品。當消費者問 ChatGPT「2 萬元以下推薦的人體工學椅」、問 Perplexity「適合送女友的生日禮物」,商品資訊越完整、越容易被機器讀懂,越有機會被拿來比較與推薦。

對於依賴自然流量的中小型電商而言,把商品資訊整理成機器讀得懂的格式,已是基本功。

Product Schema 帶來的三個關鍵效益

  • 搜尋結果視覺強化:商品圖片、價格、評分、庫存狀態有機會直接出現在 Google 搜尋結果,比純文字結果更醒目。
  • Google Shopping 免費曝光:透過 Merchant Center 整合,可在「購物」分頁取得免費商品曝光,無需投放廣告。
  • AI 搜尋讀得更準:價格、評分、庫存寫成結構化資料,AI 與搜尋引擎較不容易誤讀;不過各家 AI 並未公開是否優先採用頁面上的 Schema。
實務觀察:許多台灣電商使用 Shopify、SHOPLINE、91APP 等平台,內建會輸出基本 Product Schema,但通常只涵蓋 name、price、image 等基本欄位,實際內容依平台與佈景主題而異。aggregateRating、brand、gtin、sku 等關鍵欄位往往需要手動補齊,否則無法觸發 Rich Snippet。

Product Schema 必備欄位完整解析

Google 官方文件將 Product Schema 欄位分為「必填(required)」與「建議(recommended)」兩類。建議欄位雖非強制,但實務上若缺失,Rich Snippet 通常不會顯示。以下是最新版本的完整欄位對照表:

欄位名稱 類型 重要性 說明
name Text 必填 商品名稱,應與頁面 H1 一致。
image URL 必填 商品圖片,建議至少 1200×1200,可放陣列含多張。
description Text 建議 商品描述,50 到 300 字之間最佳。
brand Brand 建議 品牌名稱,可用 Brand 物件包裹。
sku Text 建議 商家自訂編號,內部辨識用。
mpn Text 建議 製造商料號,B2B 與工業品強烈建議填寫。
gtin / gtin13 Text 建議 全球商品條碼(EAN-13、UPC、ISBN),Google Shopping 必填。
offers Offer 必填 價格與庫存資訊,需包含 price、priceCurrency、availability。
aggregateRating AggregateRating 建議 整體評分,觸發星等 Rich Snippet 的關鍵。
review Review 建議 個別評論,建議搭配 aggregateRating 一起放。

最小可行版本(Minimum Viable Schema)

以下是涵蓋 Google 必填欄位的最簡 Product Schema,適合剛起步的電商先導入:

JSON-LD
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "ErgoMax 人體工學辦公椅",
  "image": [
    "https://example.com/photos/1x1/ergomax.jpg",
    "https://example.com/photos/4x3/ergomax.jpg",
    "https://example.com/photos/16x9/ergomax.jpg"
  ],
  "description": "支援腰椎承托、3D 扶手、滾輪 PU 包覆,適合長時間文書工作者。",
  "sku": "ERGO-MAX-001",
  "brand": {
    "@type": "Brand",
    "name": "ErgoMax"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/ergomax",
    "priceCurrency": "TWD",
    "price": "12800",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition"
  }
}
注意:availability 必須使用 schema.org 完整 URL,例如 https://schema.org/InStock,不能簡寫為 "InStock",否則 Google Rich Results 測試會顯示警告。

關於 GTIN 的台灣實務

GTIN(Global Trade Item Number)是全球統一的商品條碼。台灣商品多使用 13 位 EAN-13(以 471 開頭),書籍則使用 ISBN-13。若您的商品有條碼,務必填入 gtin13;若是自有品牌、無國際條碼,可使用 mpn(製造商料號)替代。Google Shopping 近年對部分品類已強制要求 GTIN 或 brand 加 mpn 組合。

評分與評論:AggregateRating 與 Review 寫法

評分(星等)是 Product Rich Snippet 最吸睛的元素,也是消費者比較商品時最先看的資訊。Google 對評分欄位有兩個強制要求:

  • 評分必須來自真實用戶:不可放編輯部評分或廠商自評。
  • 評分必須在頁面上可見:Schema 中的星等若頁面上找不到,屬於違規,可能被人工處罰。

AggregateRating 標準寫法

JSON-LD
{
  "@type": "Product",
  "name": "ErgoMax 人體工學辦公椅",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "bestRating": "5",
    "worstRating": "1",
    "ratingCount": "238",
    "reviewCount": "186"
  }
}
ratingCount 與 reviewCount 差異:ratingCount 是「給星但未必留言」的總數,reviewCount 是「實際撰寫文字評論」的數量。兩者都填會讓資料更完整,Google 也較容易採用。

個別評論(Review)的完整結構

若想讓單一商品評論也能被 AI 引用(例如 Perplexity 在回答「ErgoMax 椅子的使用心得」時),建議將前 3 到 5 則優質評論一同放入 Schema:

JSON-LD
{
  "@type": "Product",
  "review": [
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "陳小美"
      },
      "datePublished": "2026-03-15",
      "reviewBody": "坐了三個月,腰痛真的改善很多,扶手調整也很順手。",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      }
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "王大同"
      },
      "datePublished": "2026-02-20",
      "reviewBody": "組裝有點複雜花了一小時,但整體做工扎實,值得這個價錢。",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "4",
        "bestRating": "5"
      }
    }
  ]
}

變體商品 Schema:hasVariant 與 isVariantOf

幾乎所有電商都會遇到「同一商品有不同顏色、尺寸、容量」的情境。例如一件 T 恤有 S/M/L/XL 四種尺寸與紅黑藍三種顏色,合計 12 個變體。過去常見的做法是只在主商品頁放一個 Schema,但這會讓 Google 無法理解不同變體的價格差異與庫存,也讓 AI 搜尋無法精準推薦「我想要 L 號黑色」的需求。

變體商品結構化資料三層示意:最上層 ProductGroup 是母商品,中間的 variesBy 列出顏色與尺寸等區分維度,最下層 hasVariant 列出每個變體各自的編號與價格。

schema.org 近年推出 ProductGroup 與 hasVariant 結構,專門處理變體商品,Google 也已正式支援這個寫法。

變體商品的正確結構

邏輯上分為三層:

  • ProductGroup:商品群組(母商品),定義所有變體共用的欄位(品牌、描述、評分)。
  • variesBy:列出區分變體的維度(color、size、material 等)。
  • hasVariant:陣列,列出每個 Product 變體,各自帶 sku、price、image。
JSON-LD
{
  "@context": "https://schema.org/",
  "@type": "ProductGroup",
  "name": "ErgoMax 人體工學辦公椅",
  "description": "支援腰椎承托、3D 扶手...",
  "brand": {
    "@type": "Brand",
    "name": "ErgoMax"
  },
  "productGroupID": "ERGO-MAX",
  "variesBy": [
    "https://schema.org/color",
    "https://schema.org/size"
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "ratingCount": "238"
  },
  "hasVariant": [
    {
      "@type": "Product",
      "sku": "ERGO-MAX-BLK-L",
      "color": "黑色",
      "size": "標準款",
      "image": "https://example.com/ergomax-black.jpg",
      "offers": {
        "@type": "Offer",
        "url": "https://example.com/ergomax?c=black&s=l",
        "priceCurrency": "TWD",
        "price": "12800",
        "availability": "https://schema.org/InStock"
      }
    },
    {
      "@type": "Product",
      "sku": "ERGO-MAX-GRY-XL",
      "color": "灰色",
      "size": "加大款",
      "image": "https://example.com/ergomax-gray.jpg",
      "offers": {
        "@type": "Offer",
        "url": "https://example.com/ergomax?c=gray&s=xl",
        "priceCurrency": "TWD",
        "price": "14800",
        "availability": "https://schema.org/InStock"
      }
    }
  ]
}
實務建議:變體 URL 建議使用查詢字串(query string)而非獨立路徑,例如 /ergomax?color=black,讓主商品頁的 SEO 權重集中,同時各變體又能被 AI 精準引用。

反向關聯:isVariantOf

若您的網站每個變體都有獨立 URL(例如 /ergomax-black-l、/ergomax-gray-xl 是不同頁),則每個變體頁應使用 isVariantOf 反向指向 ProductGroup:

JSON-LD
{
  "@type": "Product",
  "sku": "ERGO-MAX-BLK-L",
  "isVariantOf": {
    "@type": "ProductGroup",
    "productGroupID": "ERGO-MAX",
    "url": "https://example.com/products/ergomax"
  }
}

折扣商品 Schema 與 PriceSpecification 進階寫法

折扣是電商最常見的促銷手法,但很多網站把折扣資訊放在頁面圖片上、用 JS 動態渲染,導致 Google 與 AI 搜尋抓不到「原價、折扣價、折扣期限」。Schema.org 提供 UnitPriceSpecification 與 priceValidUntil 兩個機制來正確標記折扣。

折扣商品結構化資料示意:價格吊牌上分別標出被劃掉的原價、目前的特價與折扣期限,三項資訊都要寫進 Product Schema,搜尋引擎與 AI 才讀得到。

標準折扣寫法(含原價對比)

JSON-LD
{
  "@type": "Product",
  "name": "ErgoMax 人體工學辦公椅",
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/ergomax",
    "priceCurrency": "TWD",
    "price": "9990",
    "priceValidUntil": "2027-06-30",
    "availability": "https://schema.org/InStock",
    "priceSpecification": {
      "@type": "UnitPriceSpecification",
      "priceType": "https://schema.org/StrikethroughPrice",
      "price": "12800",
      "priceCurrency": "TWD"
    }
  }
}

offers 的 price 是目前實際售價,另一筆標上 StrikethroughPrice 的價格是被劃掉的原價,Google 會因此把目前售價視為特價,符合資格時可能以「原價 NT$12,800 劃線、特價 NT$9,990(約省 22%)」的方式呈現。Google 目前只支援 StrikethroughPrice 這個 priceType 值(過渡期仍接受 ListPrice),實際售價不要加 priceType。範例中的日期請改成您實際的活動截止日。

注意:Google 文件說明,priceValidUntil 若是已經過去的日期,產品摘要可能不會顯示。折扣結束前務必更新此欄位,否則商品會在搜尋結果上失去吸引力。這個欄位是「有截止日才填」,沒有期限的常態價格可以不填,不必每年設成年底再回頭修改。

免運、會員價、預購等特殊情境

Schema 允許多個 Offer 並存,可用來標記不同身份或購買情境的價格:

  • 會員價:在 priceSpecification 用 validForMemberTier 標記僅限會員的價格,並搭配會員方案(MemberProgram)標記定義會員等級。
  • 免運:在 Offer 中加入 shippingDetails,指定運費為 0。
  • 預購:availability 設為 https://schema.org/PreOrder,並加上 availabilityStarts 開賣日期。
  • 缺貨補貨中:availability 設為 https://schema.org/BackOrder。

Google Merchant Center 整合策略

Google Merchant Center(GMC)是 Google 購物廣告與「購物分頁」的核心後台。Google 已推出「免費商品資訊」,讓沒投放廣告的商家也能在購物分頁取得自然曝光,而這個免費曝光最依賴的就是 Product Schema。

結構化資料自動擷取流程示意:商品頁的 Product Schema 被自動爬取到 Merchant Center,每天更新價格與庫存,再讓商品出現在購物分頁的免費商品資訊。

Schema 與 Merchant Center Feed 的對應關係

GMC 支援三種上架方式:手動 CSV、API,以及「網站結構化資料自動擷取」。第三種對中小型電商最友善,只要您的網站每個商品頁有完整 Product Schema,Google 會自動擷取並定期更新 Merchant Center 的商品庫存與價格。

Merchant Center 欄位 對應的 Schema 欄位 是否必填
id sku 或 productID 必填
title name 必填
description description 必填
price offers.price 必填
availability offers.availability 必填
brand brand.name 多數品類必填
gtin gtin / gtin13 有條碼商品必填
mpn mpn 無 GTIN 時必填
image_link image 必填
sale_price offers.price(原價另以 StrikethroughPrice 標記) 有折扣時建議

整合的三個關鍵步驟

  1. 確認商家身份:在 Merchant Center 與 Search Console 同時驗證網域所有權。
  2. 啟用結構化資料自動擷取:於 GMC「產品」到「資料來源」中新增「網站擷取」資料來源。
  3. 每週透過 Rich Results Test 與 GMC 診斷工具檢查:確保所有商品的 Schema 通過驗證,並修復警告訊息。
實務經驗:許多台灣商家以為「上了 Schema 就會出現在 Google 購物」,但若 Merchant Center 沒設定,Google 不會自動建檔。Schema 是必要條件,Merchant Center 註冊是充分條件,兩者缺一不可。

AI 搜尋時代:Schema 如何決定您的商品能否被引用

消費者購物路徑已明顯轉向 AI。ChatGPT 推出了購物推薦功能、Perplexity 上線了 Shopping 模式、Google AI Overviews 也在商品類查詢中大量顯示。這些 AI 系統如何挑選商品,各家都沒有完整公開,但Schema 中的價格、庫存、評分是機器最容易直接讀取的商品資訊;Google 也說明,出現在 AI Overviews 與 AI Mode 不需要額外的特殊 Schema,結構化資料內容與頁面可見文字一致才是重點(想全面了解被引用的條件,可參考網站被 AI 引用)。

AI 搜尋如何判讀 Product Schema

從消費者比較商品的角度來看,以下幾個欄位最值得優先補齊(各家 AI 並未公開實際採用的權重):

  • aggregateRating:評分與評論數是比較商品時最直觀的依據,有真實評價的商品較有機會被拿來推薦。
  • price 加 priceValidUntil:價格資訊過期時,Google 的產品摘要可能不會顯示,AI 也可能引用到錯誤價格。
  • availability:缺貨或停產的商品被推薦的機會自然較低,庫存狀態要與頁面隨時同步。
  • brand 加 gtin:有完整品牌與條碼,系統較容易把您的商品與其他網站上的同款商品對應起來。
  • review.reviewBody:AI 回答常會整理評論內容作為推薦理由,真實、具體的評論更有參考價值。

情境示例:同類商品 Schema 差異可能造成的落差

假設兩個同價位帶的吹風機品牌,A 的 Schema 完整(含 brand、gtin、aggregateRating 與數則真實評論),B 只有 name、price、image。當使用者請 AI 推薦平價吹風機時,A 提供給系統可核對的價格、規格與評價資訊明顯較多,被拿來比較、引用的條件也比較好;但實際是否被引用,仍受內容深度、評價與品牌知名度等多重因素影響,Schema 不是唯一變數。

策略建議:對於 AI 搜尋優化,建議在 Schema 中放入幾則具代表性的真實評論(reviewBody 完整呈現,且頁面上看得到同樣的評論),並確保 aggregateRating 反映真實評價。評論寫得具體,被 AI 整理成推薦理由時也更有說服力。

台灣中小型電商實作步驟與常見錯誤

無論您使用 Shopify、SHOPLINE、91APP、Cyberbiz 還是自架 WooCommerce,實作 Product Schema 的流程大同小異。以下是經驗證可行的六步驟:

標準六步驟導入流程

  1. 盤點現有 Schema:用 Google Rich Results Test 測試 5 到 10 個熱銷商品頁,記錄目前已有與缺失的欄位。
  2. 補齊必填欄位:優先補上 brand、sku、aggregateRating、priceValidUntil 四個最常缺失的欄位。
  3. 導入變體結構:若有顏色或尺寸變體,改寫為 ProductGroup 加 hasVariant 結構。
  4. 整合評論系統:將商品頁的評論模組(如 Loox、Judge.me、自建系統)的評分輸出進 Schema。
  5. 連接 Merchant Center:啟用網站結構化資料擷取,監控 GMC 診斷報告。
  6. 建立每月健檢機制:每月用 Search Console「強化項目」報告檢查錯誤與警告。

新手最常見的五個錯誤

錯誤類型 實際情況 正確做法
availability 縮寫 寫成 "InStock" 應為 "https://schema.org/InStock"
價格包含貨幣符號 "NT$12,800" 價格純數字 "12800",貨幣另放 priceCurrency
評分頁面不可見 Schema 有 ratingValue 但頁面沒顯示星等 頁面與 Schema 必須一致呈現
priceValidUntil 過期 填了過期日期未更新 每月檢查;沒有截止日的常態價格可以不填此欄位
變體商品共用同一 SKU 所有顏色尺寸都用同一個 sku 每個變體必須有獨立 sku
注意:Google 對 Product Schema 的審核越來越嚴。若您的 Schema 與頁面實際顯示不一致(例如 Schema 寫 4.8 星但頁面找不到任何星等),可能會被判定為「結構化資料政策違規」,失去整個網站的 Rich Snippet 資格。請務必確保兩者完全同步。

若您對 Schema 的整體架構還不熟悉,建議先看結構化資料是什麼建立概念,再透過Schema Markup 實作了解 JSON-LD 的基本語法、Google 偏好的格式,以及 FAQPage、Article、Organization 等其他常見 Schema 的寫法。電商網站通常需要同時實作 Product、BreadcrumbList、Organization 三組 Schema,才能讓搜尋引擎完整理解網站結構。更完整的 SEO 佈局可參考SEO 完整指南。

常見問答 FAQ

沒有 GTIN 條碼的自有品牌商品,還能取得 Rich Snippet 嗎?
可以。Google 允許「brand 加 mpn」組合替代 GTIN,適用於自有品牌、手工商品、客製商品。mpn 全名是 Manufacturer Part Number(製造商料號),只要您能提供穩定不變的內部編號即可。建議的命名規則是:品牌縮寫加商品代號加變體碼,例如 ERGO-CHR-BLK-L。但要注意,若是商品本身有國際條碼(例如 OEM 廠商提供),仍建議填入 gtin13,可信度更高,在 Google Shopping 的曝光也較強。實務上,Shopify 與 SHOPLINE 的後台都有 sku 與 barcode 兩個獨立欄位,只要正確填寫,平台會自動輸出對應 Schema。
變體商品到底要用 hasVariant 還是分頁面?哪個對 SEO 比較好?
兩種做法都可行,但策略不同。若變體差異小(僅顏色尺寸不同),建議用單一商品頁加 hasVariant 結構,讓 SEO 權重集中、評論累積在同一頁,Rich Snippet 與 AI 引用表現都比較好。若變體差異大(例如不同口味的食品、不同規格的工具,各自有專屬使用情境與搜尋需求),則建議每個變體獨立頁面,並用 isVariantOf 互相串聯。判斷標準是「使用者會不會用不同關鍵字搜尋?」會的話就分頁,不會的話就合併。台灣多數中小型電商的服飾、3C 配件適合合併;食品、保健品適合分頁。
Shopify、SHOPLINE 內建的 Schema 夠用嗎?需要再自訂嗎?
基本夠用,但通常只涵蓋基礎欄位。平台內建輸出的欄位依平台與佈景主題而異,多半是 name、image、price、availability 等基本欄位。但 aggregateRating、review、priceSpecification、hasVariant 這些觸發 Rich Snippet 與 AI 引用的關鍵欄位,通常需要透過自訂 Liquid 模板、額外評論 App(例如 Loox、Judge.me),或請工程師客製插入。建議的做法是:先用 Google Rich Results Test 檢測現有商品頁,看少了哪些欄位,再針對性補足。多數情境下,加裝一個評論 App,再手動補上 brand 與 gtin 等欄位,就能補齊大部分常用欄位。
Product Schema 實作後多久會看到效果?評分星等什麼時候會出現在搜尋結果?
Schema 部署後,Google 需要時間重新檢索與處理,快則數天、慢則數週,視網站被檢索的頻率而定。Rich Snippet(尤其是星等)的觸發還需要兩個條件同時滿足:一是 Schema 通過 Rich Results Test 驗證,二是網站本身有足夠的權威度與信任度。許多剛起步的電商即使 Schema 完美,星等也可能不會立刻出現,這時不必慌張,持續累積品牌搜尋量、外部連結、用戶評論即可;Google 也明說,即使標記完全正確,也不保證一定會顯示複合式結果。可以在 Search Console 的「強化項目,產品摘要」報告中追蹤 Google 是否已成功讀取您的 Schema。
Schema 中的評分,可以放編輯部測評或廠商自評嗎?
不可以,這是 Google 結構化資料政策的明確違規行為。Google 規定 Product Schema 中的 aggregateRating 與 review 必須來自「真實的最終消費者」,不能是商家自評、編輯部測評、合作媒體評分。若被檢測到,輕則 Rich Snippet 失效,重則整個網站收到「結構化資料政策違規」的人工處罰。若您希望放編輯部測評,正確做法是另外使用 Review Schema(獨立的 Review 物件),並明確標記 author 為「您的網站 Organization」,且必須放在獨立的測評文章頁面,而非商品頁。商品頁的評分必須由真實購買者產生,並建議使用第三方評論系統(如 Loox、Judge.me、Yotpo)以增加可信度,這些系統會自動驗證購買紀錄。
ChatGPT 和 Perplexity 會直接讀取我的 Product Schema 嗎?還是需要其他優化?
不一定。ChatGPT 與 Perplexity 並未公開說明會如何採用網頁中的 JSON-LD,Google 也表示出現在 AI Overviews 與 AI Mode 不需要額外的特殊 Schema。AI 推薦商品時通常會綜合判斷:商品頁的文字描述深度、品牌權威度(維基百科、新聞報導提及次數)、消費者真實評論的多元性、社群討論熱度等。優化策略上,Schema 是地基,但還需要搭配:豐富的商品描述(300 字以上、含使用情境)、真實的用戶 UGC、品牌的線上可見度。建議的順序是:先完成完整 Schema(本篇所述),再強化商品文案的具體性與獨特性,接著累積真實評論,最後在 PTT、Mobile01、Dcard 等台灣社群建立自然提及。這些做法無法保證被引用,但能讓 AI 有更多可信的資訊來源可以參考。

歡迎推廣本文,請務必連結(LINK)本文出處:新視野網頁設計公司