Canonical 標記(rel="canonical")是 SEO 技術中處理重複內容最關鍵的工具。當您的網站因為網址參數、HTTP/HTTPS 切換、CMS 自動生成或行銷追蹤碼,產生許多內容相同但網址不同的頁面時,搜尋引擎會把排名權重分散到各個版本,導致沒有任何一個頁面能夠取得理想排名。在 2026 年 AI 搜尋時代,ChatGPT、Perplexity、Google AI Overviews 在抓取頁面建立知識索引時,canonical 標記更成為決定「哪個版本被引用、被推薦」的關鍵訊號。這篇文章適合電商網站經營者、企業官網管理者、行銷人員,以及正在做 SEO 技術稽核的工程師閱讀,從觀念、實作、常見錯誤到 AI 搜尋影響,完整說明 canonical 標記的所有重點。
什麼是 canonical 標記?
Canonical 標記(又稱 rel="canonical" 或「規範網址標記」)是一段放在 HTML <head> 區段中的標記,功能是告訴搜尋引擎,當有多個網址出現相同或非常相似的內容時,哪一個網址才是「主要版本」(canonical version)。其他副本網址雖然仍可被存取,但搜尋引擎會把排名權重、連結價值集中到 canonical 指定的那一個網址上。
Canonical 標記的核心功能,是讓搜尋引擎在多個重複版本中,選擇您指定的那一個版本作為搜尋結果中的代表,避免排名權重被分散。
Canonical 標記的基本語法
Canonical 標記由 Google、Bing、Yahoo 在 2009 年共同發起,屬於開放標準。它的格式相當簡單,只需在頁面 <head> 區段加入一行 <link> 標記即可:
<head>
<title>產品名稱 - 品牌官網</title>
<link rel="canonical" href="https://www.example.com/product/abc">
</head>
在這個範例中,無論使用者是透過 https://www.example.com/product/abc?utm_source=fb 或 https://www.example.com/product/abc?ref=newsletter 進入頁面,搜尋引擎都會知道真正應該被索引的網址是 https://www.example.com/product/abc。
Canonical 標記能解決哪些問題?
Canonical 標記主要處理以下三類重複內容的情境,這也是台灣中小企業官網與電商網站最常遇到的問題:
http:// 與 https://、www 與非 www 版本,以及大小寫不同的網址。為什麼規範化對 SEO 很重要?
重複內容是一個容易被忽略卻嚴重影響排名的議題。當搜尋引擎抓取到多個內容相同的網址時,會造成三個直接的 SEO 損害:爬蟲預算(Crawl Budget)被浪費、排名權重被稀釋、搜尋引擎選錯「代表頁」。
爬蟲預算的浪費
Google 的爬蟲對每個網站有固定的抓取配額,稱為 Crawl Budget。如果一個 1,000 頁的網站,因為網址參數變化而產生 50,000 個 URL,爬蟲就會把預算花在抓取重複頁面,真正重要的新頁面或更新頁面反而被延後索引。這對台灣許多電商網站特別嚴重——一個商品分類頁可能因為篩選參數(顏色、尺寸、價格區間)而產生數十倍的網址變體。
排名權重被稀釋
假設一篇高品質文章獲得 10 個外部反向連結,但這些連結分別指向 5 個不同的網址版本(因為分享時加上不同的追蹤碼),每個版本只獲得 2 個連結的權重。使用 canonical 標記後,所有連結權重會集中到 canonical 指定的那個版本,讓該頁面在搜尋結果中能取得更好的排名。
搜尋引擎可能選錯代表頁
如果沒有 canonical 標記,當搜尋引擎判斷網站上有重複內容時,會自行選擇一個「最具代表性」的版本顯示在搜尋結果中。但 Google 的演算法不一定能選對——它可能選到帶有追蹤參數的版本、選到舊版頁面,或選到分頁列表頁而非主要商品頁,這會直接影響使用者點擊與品牌印象。
網址重複是怎麼發生的?
您可能會想:「為什麼我的網站會有重複網址?我明明只做了一個首頁。」這個問題的根源,在於人類把網頁當作一個概念,而搜尋引擎把每個獨一無二的網址都視為一個獨立頁面。
對搜尋引擎而言,每一個獨一無二的 URL 都是一個獨立的頁面——即使內容完全相同,只要網址的字串不同(包含協定、大小寫、結尾斜線、參數),就會被視為不同頁面。
首頁就可能有 10 種以上的版本
以最簡單的「首頁」為例,以下這些網址在搜尋引擎眼中是完全不同的頁面,但內容卻可能完全一樣:
http://example.com http://www.example.com https://example.com https://www.example.com https://www.example.com/ https://www.example.com/index.html https://www.example.com/index.php https://www.example.com/?utm_source=facebook https://www.example.com/?fbclid=IwAR123 https://www.example.com/HOME
對人類來說,這些網址都代表「同一個首頁」;但對 Googlebot 來說,這是十個獨立的頁面,而且內容完全相同——這就是典型的重複內容問題。
CMS 與動態網站讓問題更嚴重
現代的內容管理系統(WordPress、Shopify、Wix、Cyberbiz、91APP 等)與動態程式碼,會自動為相同內容產生多種網址路徑,並透過 URL 參數實現搜尋、排序、篩選、付費追蹤等功能。一個典型的台灣電商網站,可能因為以下情境產生成千上萬的重複網址:
-
追蹤參數(Tracking Parameters)
UTM 行銷追蹤、Facebook 廣告 fbclid、Google Ads gclid、Email 行銷的點擊識別碼等,讓每次分享都產生不同網址。
?utm_source=fb&utm_medium=cpc&utm_campaign=summer2026 -
分頁與排序參數
商品列表的分頁、依價格/熱門度/新品排序,以及顏色、尺寸、品牌的篩選參數,讓同一商品分類產生數十種網址。
/shoes?page=2&sort=price_desc&color=black&size=US9 -
多重路徑(Multiple Paths)
同一個商品可以透過多個分類路徑到達,或同時存在中英文版本、桌機版/行動版的網址。
/products/abc、/category/shoes/abc、/brand/nike/abc指向同商品 -
Session ID 與使用者識別
購物車、登入狀態的 session ID 寫進網址,讓每位使用者看到的網址都不同。
/cart?sessionid=ABC123XYZ -
列印版與 AMP 版
專為列印或行動載入優化而產生的對應版本網址,內容相同但網址不同。
/article/seo-guide/print、/amp/article/seo-guide
Canonical 標記的正確寫法
Canonical 標記有三種放置位置:HTML <head>、HTTP Header,以及 Sitemap。其中以 HTML <head> 最為常用,也最容易維護。
方法一:HTML 標記(最常用)
在 <head> 區段中加入一行 <link rel="canonical">,這是 95% 以上網站採用的方法:
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<title>台北網頁設計推薦 - 新視野</title>
<link rel="canonical" href="https://www.newscan.com.tw/web-design/">
</head>
方法二:HTTP Header(適合 PDF、圖片)
如果是 PDF、圖片、影片等非 HTML 檔案無法寫入 <head>,可以透過伺服器設定在 HTTP 回應標頭中加入 canonical:
HTTP/1.1 200 OK Content-Type: application/pdf Link: <https://www.example.com/whitepaper.pdf>; rel="canonical"
方法三:Sitemap.xml(輔助訊號)
XML Sitemap 中列出的網址,本身也是給搜尋引擎的 canonical 提示。Google 不會把 sitemap 視為絕對指令,但會作為決定 canonical 的其中一個訊號。建議 sitemap 中只放 canonical 版本的網址,不要放帶參數的副本網址。
絕對路徑 vs 相對路徑
canonical 標記強烈建議使用絕對路徑(完整的 https:// 開頭),不要使用相對路徑。雖然 Google 支援相對路徑,但實務上會因為 base URL 解析錯誤而產生問題。
| 路徑類型 | 範例 | 建議 |
|---|---|---|
| 絕對路徑 | <link rel="canonical" href="https://www.example.com/abc"> |
✅ 強烈建議 |
| 協定相對 | <link rel="canonical" href="//www.example.com/abc"> |
⚠ 不建議 |
| 相對路徑 | <link rel="canonical" href="/abc"> |
❌ 避免使用 |
Canonical 標記的最佳實踐
正確使用 canonical 標記,需要遵守幾個關鍵原則。以下六項是經過實務驗證、最常被忽略也最容易出錯的重點:
-
Canonical 標記可以指向自己(Self-Referencing Canonical)
如果一個頁面就是它自己的主要版本,在
<head>中加入指向自己的 canonical 標記是完全合理且建議的做法。這稱為「自我參照 canonical」,能預防未來因為追蹤參數或其他原因產生的重複問題。頁面/blog/seo-guide中加入<link rel="canonical" href="https://www.example.com/blog/seo-guide">。即使有人用?utm_source=fb分享,搜尋引擎仍知道主要版本是哪一個。 -
主動為首頁設定 canonical
首頁是最常被以多種網址形式連結的頁面,人們可能用
http://、https://、含www、不含www、加/index.html等各種方式分享。在首頁主動加上 canonical 標記,能預防無法預料的重複網址問題。首頁加入<link rel="canonical" href="https://www.example.com/">,統一所有首頁變體。 -
逐一檢查動態產生的 canonical
如果網站使用 CMS 或自動產生 canonical 的程式碼,務必逐頁檢查實際產生的標記是否正確。常見錯誤是程式 bug 導致每頁的 canonical 都指向首頁,或都指向自己(包含參數版本),完全失去 canonical 的意義。
電商網站常見問題:
/product/abc?color=red的 canonical 寫成/product/abc?color=red而非/product/abc。 -
避免發送相互矛盾的訊號
不要讓 canonical 標記與其他 SEO 訊號相互矛盾。例如:A 頁 canonical 指向 B,B 頁 canonical 又指向 A;或 A canonical 到 B,但伺服器又把 B 301 轉址回 A。多層串接(A→B→C→D)也會讓 Google 難以判斷,可能直接忽略所有 canonical 訊號。
錯誤:A→B、B→A 形成循環,搜尋引擎不知道哪個才是主版本。正確:統一所有頁面 canonical 都指向最終版本。
-
謹慎使用在「近似重複」的頁面
canonical 標記不僅可用於完全相同的頁面,也可用於內容非常相似的頁面(如:同一商品的不同顏色、尺寸頁面)。但如果頁面差異太大,Google 會忽略 canonical 標記,並把它們視為獨立頁面索引。
服飾店一件 T 恤有黑、白、灰三色頁面,內容 90% 相同,可以將灰、白 canonical 指向黑色版本作為主頁面。
-
跨網域使用 canonical(Cross-Domain Canonical)
如果您同時擁有多個網站(例如新聞集團在六個品牌站發布相同文章),可以用跨網域 canonical 標記,把所有版本的排名權重集中到一個主網站。但請注意:被 canonical 指向的版本將不會出現在搜尋結果中,所以這個選擇對營運策略影響很大。
a-news.com 的文章 canonical 指向 main-site.com,則 a-news.com 的版本不會出現在 Google 搜尋結果中,所有流量會集中到 main-site.com。
Canonical 標記與 301 轉址的差異
canonical 標記和 301 轉址都能處理「多個網址指向同一內容」的問題,但兩者的行為與適用情境完全不同。許多人會混用甚至誤用,導致 SEO 問題。
| 比較項目 | Canonical 標記 | 301 轉址 |
|---|---|---|
| 使用者體驗 | 使用者仍可訪問副本網址,看到的內容相同 | 使用者被自動轉到目標網址,無法訪問原網址 |
| 搜尋引擎行為 | 建議性訊號,搜尋引擎可能採納或忽略 | 強制性指令,搜尋引擎必須遵守 |
| 權重傳遞 | 大部分權重會傳遞(但不保證 100%) | 幾乎 100% 權重傳遞到目標頁 |
| 適用情境 | 內容相同但兩個網址都需保留(例如參數網址、AMP 版) | 網址永久變更,舊網址不再需要 |
| 實作位置 | HTML <head> 或 HTTP Header |
伺服器設定(.htaccess、nginx 設定) |
| 使用者點擊舊網址 | 正常顯示頁面 | 被導向新網址 |
什麼時候用 canonical?什麼時候用 301?
選擇的關鍵在於:使用者還需不需要看到舊網址。
- 網址需要保留可訪問(例如:含 utm 參數的網址要繼續被廣告系統使用) → 用 canonical
- 網址結構永久變更(例如:重新規劃分類後
/old-cat/換成/new-cat/) → 用 301 - 商品頁有多種篩選版本但內容差異很小 → 用 canonical
- 產品下架或頁面合併,舊網址不再有意義 → 用 301
- 網站從 HTTP 改成 HTTPS、從非 www 改成 www → 用 301(永久變更)
Canonical 在 AI 搜尋時代的角色
進入 2026 年後,使用者透過 ChatGPT、Perplexity、Google AI Overviews、Claude 等 AI 搜尋工具找資料已成為主流。這些 AI 搜尋引擎在抓取網頁內容、建立知識索引時,canonical 標記比過去更為關鍵。
在 AI 搜尋時代,canonical 標記不僅影響 Google 排名,還決定了您的網站內容會以哪個版本被 AI 引用、被推薦給使用者。
AI 引用來源的優先選擇
當 ChatGPT 或 Perplexity 在回答使用者問題時,如果引用了您的網站內容,通常會優先選擇canonical 指定的版本作為來源連結。如果您的網站有重複內容問題,AI 可能會引用到帶有追蹤參數的版本,或非主要的分類頁,影響品牌一致性與分析數據準確度。
Google AI Overviews 的引用偏好
Google AI Overviews(原 SGE)在生成摘要時,會優先擷取被 canonical 標記為主版本的頁面。如果一篇文章因為 utm 追蹤碼產生多個版本,而 canonical 標記又設錯,可能導致 AI Overviews 顯示了過時的版本或非預期的網址。
結構化資料與 canonical 的協同效應
canonical 標記與結構化資料(Schema.org)在 AI 搜尋中具有協同放大效應。當 canonical 確定了主版本、結構化資料明確描述了頁面內容、Open Graph 提供了社群分享資訊,這三者協同運作可以讓 AI 搜尋引擎更精準地理解、引用、推薦您的網站內容。
Canonical 標記常見錯誤
即使了解 canonical 的觀念,實務上仍經常因為細節失誤導致設定失效或反效果。以下七個是台灣中小企業官網與電商網站最常見的錯誤:
- 所有頁面的 canonical 都指向首頁 常見於 WordPress 外掛或主題程式錯誤,結果讓搜尋引擎以為整站只有一個主要頁面,內頁全部失去索引機會。改善方式:使用 Screaming Frog 或 Sitebulb 全站爬取,檢查每頁的 canonical 是否指向正確的頁面。
- Canonical 指向 404 或 5xx 錯誤頁 如果 canonical 指向的網址回傳錯誤,搜尋引擎會忽略該 canonical,可能造成原本應該被合併的重複頁全部獨立索引。改善方式:定期用 Google Search Console 的「索引」報告檢查,確保所有 canonical 目標都回傳 200 OK。
-
在 noindex 頁面上設定 canonical
同時在一個頁面上設定
<meta name="robots" content="noindex">和 canonical,會給搜尋引擎相互矛盾的訊號。改善方式:如果頁面要禁止索引就用 noindex,如果要合併到主版本就用 canonical,不要同時使用。 -
使用相對路徑導致解析錯誤
寫成
<link rel="canonical" href="/product/abc">看似簡潔,但在某些情境下搜尋引擎可能解析到錯誤的 base URL。改善方式:一律使用完整絕對路徑https://www.example.com/product/abc。 -
canonical 寫在 <body> 而非 <head>
HTML 標準明確規定 canonical 必須在
<head>區段內。寫在<body>中的 canonical 會被完全忽略,但開發者經常因 JS 動態插入而出錯。改善方式:使用 View Source 而非開發者工具檢查 HTML 結構,確保 canonical 在<head>內。 - 多個 canonical 標記同時存在 一個頁面如果有兩個或以上的 canonical 標記(常因 CMS 與外掛同時加),Google 會選一個遵守或全部忽略。改善方式:每頁只能有一個 canonical,使用 Chrome DevTools 或 SEO 外掛(如 SEO Meta in 1 Click)確認。
- 用 canonical 處理應該用 hreflang 的多語系 多語系網站(中文版、英文版)的內容是「翻譯」而非「重複」,應該用 hreflang 而非 canonical 標記。改善方式:每個語言版本各自指向自己的 canonical,並透過 hreflang 標記告知搜尋引擎語言對應關係。
Canonical 標記檢查清單
以下是實務 SEO 稽核時用的 canonical 檢查清單,適合企業內部或代理商在每月 SEO 健診時使用。建議搭配 Google Search Console 與 Screaming Frog 進行全站檢查:
- 所有頁面的
<head>內都有一個(且只有一個)canonical 標記 - Canonical 使用絕對路徑(
https://開頭的完整網址) - Canonical 指向的網址回傳 HTTP 200(不是 301、404 或 5xx)
- Canonical 指向的網址沒有設定 noindex
- 網站首頁有自我參照的 canonical 標記
- 商品頁、分類頁、搜尋結果頁的 canonical 已正確設定
- 含追蹤參數(utm、fbclid、gclid)的網址 canonical 指向乾淨版本
- Sitemap.xml 中只包含 canonical 版本的網址
- 沒有 canonical 鏈式串接(A→B→C)或循環(A→B→A)
- 多語系版本使用 hreflang 而非 canonical 互指
- HTTP 與 HTTPS、www 與非 www 之間統一使用 301 轉址而非 canonical
- 分頁系列(
?page=2、?page=3)各自 canonical 到自己,而非全部指向第一頁
實用檢查工具推薦
結論:canonical 是 SEO 技術中不可忽略的基礎
canonical 標記看似只是一行簡單的 HTML 程式碼,但它決定了搜尋引擎如何理解您的網站結構、如何分配排名權重、如何在搜尋結果中呈現您的內容。在 2026 年的 AI 搜尋時代,canonical 更進一步影響您的網站被 AI 引擎引用的版本,直接關係到品牌的數位可見度。
如果您正在進行網站 SEO 稽核,可以從以下五個問題開始自我檢查:
- 所有頁面是否都有一個明確、正確的 canonical 標記?
- 含追蹤參數的網址是否都被 canonical 指向乾淨版本?
- 是否有任何 canonical 指向 404、5xx 或 noindex 頁面?
- 多語系或多區域版本是否正確使用 hreflang 而非 canonical?
- Google Search Console 報告中,Google 實際採用的 canonical 是否符合您的預期?
常見問答 FAQ
Canonical 標記必須每個頁面都設定嗎?
Canonical 標記和 301 轉址有什麼差別?該用哪一個?
Canonical 標記可以指向不同網域的網址嗎?
為什麼我設定了 canonical,Google Search Console 卻顯示「Google 選擇了不同的 canonical」?
分頁(?page=2、?page=3)應該怎麼設定 canonical?
rel="prev" 和 rel="next" 標記,因此目前的最佳做法是:1. 每個分頁的 canonical 指向自己——?page=2 的 canonical 指向 ?page=2、?page=3 指向 ?page=3,不要全部指向第一頁。2. 不要把分頁 canonical 全部指向第一頁——這是常見錯誤,會讓 Google 認為第 2 頁之後的內容都不重要,導致深層商品或文章無法被索引。3. 每頁的 title 與 description 加入頁碼差異——例如「商品列表 - 第 2 頁」、「最新文章 - 第 3 頁」,讓搜尋引擎清楚知道這些是不同頁面。4. 分頁列表頁可以用 noindex, follow——如果分頁本身沒有 SEO 價值,但仍希望 Google 透過分頁發現深層商品,可用 noindex follow 取代 canonical。例外:如果有「全部商品在同一頁」的「View All」頁面,可以將所有分頁 canonical 指向 View All 版本,但前提是 View All 載入速度仍可接受。
Canonical 標記能解決所有重複內容問題嗎?
<link rel="amphtml"> 使用。5. 站內搜尋結果頁、購物車頁——這些頁面應該直接用 noindex 阻擋索引,而非用 canonical 處理。canonical 適合的場景是「同一網站內部,內容相同或極相似的多個合法網址版本」,超出這個範圍就應該選擇其他更合適的 SEO 技術。