SEO GUIDE
網站專欄 Q & A
電商 SEO

商品變體 SEO : 多色多尺寸的 4 種 URL 策略與 canonical 設定

商品變體 SEO : 多色多尺寸的 4 種 URL 策略與 canonical 設定
一件 T 恤有 5 種顏色、4 種尺寸,就是 20 個變體。如果處理不當,這 20 個組合可能變成 20 個內容幾乎相同的網址,互相搶排名、稀釋權重,甚至讓 Google 不知道該收錄哪一頁。本文不談分頁(rel=next)或篩選器(Faceted Navigation)問題,只專注在商品變體(Product Variants)的 URL 與 canonical 處理:4 種 URL 策略怎麼選、canonical 該指向哪一層、hasVariant 結構化資料怎麼寫,以及 Shopify、WooCommerce 兩大平台的預設行為差異。

商品變體是什麼?為什麼會踩到 SEO 地雷

商品變體指的是同一款商品在顏色、尺寸、材質、容量等屬性上的不同版本。一件襯衫有黑、白、藍三色,每色又有 S/M/L/XL 四個尺寸,這就是 12 個變體。對使用者來說它們是「同一件商品的不同選擇」,但對搜尋引擎來說,每個能被獨立存取的網址都是一個獨立頁面。

問題從這裡開始。當每個變體都產生獨立網址,而這些頁面的標題、敘述、商品介紹、圖片 alt 幾乎一模一樣時,就會出現三個典型後果:

1. 重複內容稀釋權重。外部連結與內部連結被分散到 12 個近乎相同的網址,沒有任何一頁累積到足夠的權重去衝排名。
2. 索引預算浪費。Googlebot 把抓取資源花在 12 個雷同頁面,真正重要的商品主頁或分類頁反而抓取頻率下降。
3. 排名版本不可控。Google 可能自行選一個「藍色 XL」當作收錄版本顯示在搜尋結果,而那不一定是您想主打的版本。

變體 SEO 的核心問題只有一句話:要讓 Google 把多個變體當成「一件商品」,還是「多件商品」。

在 2026 年的 AI 搜尋時代,這件事更重要了。當使用者在 ChatGPT、Perplexity 或 Google AI Overviews 詢問「推薦哪款 OO」時,AI 引用的是結構清晰、變體關係明確的商品資料。一個 canonical 與 Schema 都標記正確的商品,比 12 個各自為政的雷同頁,更容易被 AI 完整理解並引用。

4 種變體 URL 策略完整對照

處理變體 URL 沒有單一正解,取決於變體之間的差異程度與您的搜尋意圖。若想先了解單一商品頁本身的優化,可參考商品頁 SEO;以下聚焦變體的四種主流策略:

策略 A:單一 URL,JavaScript 切換

整款商品只有一個網址(例如 /product/cotton-tee/),顏色與尺寸用前端 JavaScript 切換,不產生任何新網址。這是內容差異小(只差顏色)時最乾淨的做法,所有權重天然集中在一頁,零重複內容風險。缺點是每個顏色無法單獨在搜尋結果出現。

策略 B:URL 參數 + canonical 指回主商品

變體用查詢參數呈現,例如 /product/cotton-tee/?color=blue&size=m,但每個參數頁的 canonical 都指向乾淨主網址 /product/cotton-tee/。適合需要可分享變體連結、但不想讓參數頁參與排名的情況。重點是務必設好 canonical,否則參數組合會爆炸成大量重複頁。

策略 C:獨立靜態 URL,各自 self-canonical

每個變體有自己的靜態網址(如 /product/cotton-tee-blue/),canonical 指向自己,讓每個變體獨立競爭排名。只有在變體間有顯著搜尋需求差異時才用——例如「紅色洋裝」「黑色洋裝」各自有大量獨立搜尋量,且您願意為每頁撰寫差異化的標題、敘述與內容。否則就是自找重複內容麻煩。

策略 D:獨立靜態 URL,canonical 全指向主商品

變體一樣有獨立網址,但 canonical 統一指向主商品頁,把權重集中。兼顧「使用者能用乾淨網址分享特定變體」與「SEO 權重集中」兩個目標,是多數電商最安全的折衷方案。

策略網址形式canonical 指向權重適用情境
A 單一 URL無新網址,JS 切換自己完全集中變體差異極小(純顏色)
B 參數 + canonical?color=blue主商品集中需分享變體連結但不要排名
C 獨立 self-canonical/tee-blue/自己各自競爭變體有獨立搜尋量且能差異化內容
D 獨立 + 集中 canonical/tee-blue/主商品集中多數電商的安全折衷
實務建議:九成的中小型電商選 A 或 D 就對了。只有當您能明確證明「藍色版」與「紅色版」各自有可觀的獨立搜尋量、且願意為每個變體寫出真正不同的內容時,才考慮策略 C。否則放任各自競爭,通常只會讓所有版本都排不上去。

canonical 標記層級:該指向哪裡?

canonical 的判斷邏輯,本質上是回答一個問題:這些變體頁,您希望 Google 當成同一頁,還是不同頁?

判斷準則很簡單——看內容差異與搜尋意圖差異:

當變體內容幾乎相同(只差顏色色塊與一兩張圖):用集中式 canonical,全部指向主商品頁。Google 會把所有變體的排名訊號合併到主頁。
當變體內容有實質差異(不同規格、不同用途、不同搜尋族群):用 self-canonical,讓每頁獨立收錄。但前提是您真的為每頁寫了差異化的標題、H1、敘述與內文。

關鍵觀念:canonical 是「建議」不是「命令」。如果您把 canonical 指向主頁,但每個變體頁的內容差異其實很大,Google 可能會忽略您的 canonical、自行收錄變體頁。反過來,內容雷同卻硬要 self-canonical,Google 也可能自動合併。標記要與實際內容差異一致,Google 才會尊重。

hasVariant / isVariantOf 結構化資料寫法

2024 年起 Google 正式支援商品變體結構化資料,用 ProductGroup 搭配 hasVariant,明確告訴搜尋引擎「這是一組變體」。這是讓變體關係被正確理解的最直接方式,在 AI 搜尋時代尤其重要。

核心邏輯有兩種寫法:

方式一(主流):ProductGroup 包住所有變體,每個變體是 Product,透過 hasVariant 列出。
方式二:在每個變體 Product 上用 isVariantOf 指回所屬的 ProductGroup

{ "@context": "https://schema.org", "@type": "ProductGroup", "name": "純棉素 T", "productGroupID": "TEE-001", "variesBy": ["https://schema.org/color", "https://schema.org/size"], "hasVariant": [ { "@type": "Product", "sku": "TEE-001-BLU-M", "color": "藍", "size": "M", "offers": { "@type": "Offer", "price": "590", "priceCurrency": "TWD", "availability": "https://schema.org/InStock" } }, { "@type": "Product", "sku": "TEE-001-BLK-L", "color": "黑", "size": "L", "offers": { "@type": "Offer", "price": "590", "priceCurrency": "TWD", "availability": "https://schema.org/InStock" } } ] }

重點欄位:variesBy 宣告變體依哪些屬性區分(顏色、尺寸),productGroupID 是這組商品的共同識別碼,每個變體都要有自己的 skuoffers。價格與庫存若各變體不同,務必分別標記,否則 Google 會視為資料不一致。單一商品的 Product Schema 寫法可參考專文。

Shopify 與 WooCommerce 預設行為比較

兩大平台對變體的處理邏輯差很多,了解預設行為才知道要不要手動調整。

項目ShopifyWooCommerce
變體 URL用參數 ?variant=ID,不產生獨立路徑單一商品頁,變體用 AJAX 切換,預設無獨立網址
canonical 預設參數頁 canonical 自動指向乾淨主網址商品頁 self-canonical(單一頁)
重複內容風險低(參數已被 canonical 收斂)低(本來就單頁)
變體 Schema需主題或 App 支援 ProductGroup外掛產生,品質依外掛而定
常見問題collection 路徑造成同商品多入口外掛 Schema 欄位不全、價格區間標記錯
Shopify 注意:真正容易出問題的不是 ?variant= 參數,而是同一商品可從多個 collection 路徑進入(例如 /collections/tees/products/cotton-tee/products/cotton-tee)。確認主題已把 canonical 統一指向 /products/ 路徑。
WooCommerce 注意:預設變體靠 AJAX 切換、不換網址,本身 SEO 友善。但若您裝了會把每個變體變成獨立網址的外掛,就要回頭檢查 canonical 與 Schema,別讓外掛默默製造重複內容。

何時集中權重、何時放任競爭

這是整篇文章最需要判斷的地方。決策只看一件事:變體之間是否存在「獨立的搜尋需求」

該集中權重(canonical 指主頁 / 單一 URL)的情況:

顏色、尺寸這類純屬性差異,使用者搜尋時不會特別指定(很少人專門搜「藍色純棉素 T」)。這時把所有變體訊號合併到主頁,讓主頁去衝「純棉素 T」這個有量的關鍵字,遠比讓每個顏色各自掙扎有效。

該放任各自競爭(self-canonical + 差異化內容)的情況:

變體本身對應到不同的搜尋族群,且各有可觀搜尋量。例如手機殼分「iPhone 15」與「iPhone 16」版本,兩者使用者完全不同、搜尋量都很大——這時讓它們各自獨立收錄才合理。但代價是:每頁都得有真正不同的標題、敘述與內容,不能只換型號文字。

沒有獨立搜尋量的變體就集中權重,有獨立搜尋量且能差異化內容的變體才獨立競爭。

變體商品的 Google Merchant Center 對應

如果您有投放 Google 購物廣告或想出現在免費商品列表,變體在 Merchant Center 的商品饋給(Product Feed)有一套對應規則,與網站 SEO 的 canonical 邏輯不完全相同。

關鍵欄位是 item_group_id:把同款的所有變體填入相同的 item_group_id,Google 就會把它們歸為一組,在購物結果中自動以可切換的變體形式呈現。每個變體仍需各自提供 idcolorsizepriceavailability 與正確的 link

容易踩雷:商品饋給的 link 應指向能直接看到該變體的網址。若您採策略 A(單一 URL、JS 切換),所有變體 link 都會是同一頁——這在 Merchant Center 是允許的,但要確認落地頁能用參數或錨點自動帶出對應變體,否則使用者點藍色廣告卻看到預設的黑色,會拉高跳出率。

變體 SEO 常見錯誤檢查清單

上線前對照這份清單,可以避開九成的變體 SEO 問題:

檢查項目正確做法
變體頁 canonical與內容差異一致:雷同就指主頁,有差異才 self-canonical
標題與敘述集中策略下不需逐變體寫;獨立策略下必須每頁差異化
結構化資料用 ProductGroup + hasVariant,標清 variesBy 與每個 sku
內部連結主導覽與麵包屑指向主商品頁,不要連到一堆變體頁
Sitemap只放您要收錄的網址;canonical 指主頁的變體不放進 sitemap
圖片 alt變體圖片 alt 帶入顏色/規格,避免全部雷同
缺貨變體用 Schema availability 標 OutOfStock,不要直接刪頁產生 404

變體與重複內容Canonical 是緊密相關的議題,建議一併閱讀;商品變體也是電商 SEO的一環,想掌握整體權重配置邏輯,可從 SEO 是什麼 這篇 pillar 開始。

常見問題 FAQ

同款多色商品,每個顏色該不該做成獨立網址?
取決於顏色是否帶來獨立搜尋需求。一般服飾、配件的顏色差異,使用者很少專門搜「藍色版」,這時用單一 URL(JS 切換)或集中式 canonical 最有效,能把權重集中到主商品頁去衝有量的關鍵字。只有當某些顏色本身就是熱門搜尋詞(例如特定聯名色、限定色),且您願意為它撰寫差異化內容時,才值得做成獨立 self-canonical 網址,否則只會分散權重、製造重複內容。
變體頁的 canonical 指向主商品後,變體還會被收錄嗎?
正常情況下不會單獨收錄,Google 會把變體的排名訊號合併到 canonical 指定的主頁,搜尋結果只顯示主頁。但 canonical 是建議而非強制,若變體頁內容與主頁差異過大,Google 可能忽略您的標記、自行收錄變體。因此標記要與實際內容一致:希望集中權重,就讓變體內容盡量貼近主頁;若內容差很多卻想集中,反而會讓 Google 無所適從。
ProductGroup 和單純的 Product Schema 有什麼差別?
Product 描述的是「一件商品」,ProductGroup 描述的是「一組變體商品的集合」。當您有同款多色多尺寸時,用 ProductGroup 搭配 hasVariant 列出所有變體,並以 variesBy 宣告變體依哪些屬性區分(顏色、尺寸),Google 就能理解這是一組相關變體,而非多件無關商品。這在 2026 年的 AI 搜尋情境下特別有價值,能讓 ChatGPT、Perplexity 等更準確地理解與引用您的商品結構。
Shopify 的 ?variant= 參數網址會造成重複內容嗎?
預設不會。Shopify 會自動把帶 ?variant= 參數的網址 canonical 指向乾淨的商品主網址,Google 因此會收斂到同一頁。真正容易出問題的反而是同一商品可從多個 collection 路徑進入,造成多個入口網址。建議確認主題已將 canonical 統一指向 /products/ 路徑,並在 Search Console 檢查實際收錄的是否為您預期的主網址,而非某個 collection 路徑版本。
變體商品缺貨或下架時,網址該怎麼處理?
暫時缺貨不要刪網址,改用 Schema 的 availability 標記為 OutOfStock,保留頁面與累積的排名,補貨後改回 InStock 即可。若是單一變體永久停產但主商品還在,從變體選單移除該選項即可,不需特別轉址。若整款商品永久下架,再評估 301 轉址到同類商品或分類頁,或回傳 410。最忌諱的是直接刪頁產生 404,會浪費掉已累積的權重與外部連結。

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