← 逆流而上
Wudelay

Canonical 標籤是什麼?重複內容處理教學

Wudelay AI發布於 約 10 分鐘的航程

Canonical 標籤是什麼?重複內容處理教學

canonical 標籤是一段放在網頁原始碼裡的 HTML 標記,格式是 <link rel=”canonical” href=”網址”>,作用是告訴 Google:這一群長得很像的頁面裡,哪一個才是「正版」,排名與權重訊號都算在它身上。如果網站裡有好幾個網址顯示幾乎一樣的內容——像是 http 版跟 https 版並存、網址後面多了排序或追蹤參數、同一篇文章被分到兩個分類底下——Google 很難自己判斷該收錄哪一個,canonical 標籤就是用來解決這個判斷問題的工具。

不過要先說清楚一件事:canonical 不是強制指令。Google 官方文件把它定義為一種提示而非規則——網站主可以宣告偏好,但最終由系統自己判斷哪一個版本最適合收錄。這也是為什麼不少人明明設定了 canonical,Search Console 卻顯示 Google 選了別的網址。

以下依序整理重複內容怎麼產生、canonical 三種宣告方式、語法規則、常見錯誤,到怎麼用 Search Console 確認設定是否真的生效。

canonical 標籤是什麼?

完整名稱是 rel=”canonical” 連結註解,中文圈通常稱為「標準網址標籤」。它放在頁面的 head 區塊裡,範例如下:<head><title>頁面標題</title><link rel=”canonical” href=”https://example.com/dresses/green-dresses” /></head>。這一行的重點有兩個:第一,網址要用絕對路徑(完整網址),不能寫成 /dresses/green-dresses 這種相對路徑;第二,就算是標準頁面本身,也建議加上指向自己的 canonical(稱為自我參照 canonical),而不是只在重複頁面上加。

canonical 標籤本身是一種 HTML 標記,牽涉到原始碼層級的設定,如果對 HTML 標籤在 SEO 裡扮演的角色還不熟,可以先看HTML 標籤與 SEO 的基本關係。

網站為什麼會出現重複或相似內容?

多數網站的重複內容不是刻意複製貼上,而是技術架構自然產生的副產品。常見來源包括:

  • 協定或網域差異:http 與 https 版本並存、有無 www 的網址同時能打開。
  • 網址參數:排序、篩選、UTM 追蹤參數、session ID 等,會讓同一頁內容對應出一大串不同網址。
  • 裝置版本:獨立的行動版網址(例如 m.example.com)跟桌機版網址內容相同。
  • 列印版或簡化版頁面:部分 CMS 會自動產生 print 版網址。
  • 分類或標籤重複收錄:同一篇文章同時掛在兩個分類底下,各自產生一個網址。
  • 內容聯合或轉載:文章授權給其他網站刊登,內容幾乎一致。

這些情境的共同點是:內容對讀者來說都「有用」,所以不適合直接刪除或擋爬蟲,而是該用 canonical 把訊號收斂到一個網址上。

宣告 canonical 的三種方式,訊號強弱不同

Google 官方文件列出三種宣告標準網址的方法,再加上 301 轉址一起比較的話,訊號強度由強到弱分別是:

方式 怎麼做 適用情境 訊號強度
301 重新導向 直接把舊網址導到新網址 確定要徹底換成新網址,舊網址不再需要保留 最強
rel=”canonical” 連結標籤 在 head 裡加一行 link 標籤 一般網頁最常用的方式 強
HTTP 標頭(Link header) 伺服器回應裡夾帶 Link: <網址>; rel=”canonical” PDF、Word 等無法加 HTML 標籤的檔案 強
Sitemap 只列標準網址 sitemap.xml 裡只放想被收錄的那個網址 頁面數量龐大、難以逐一加標籤時的輔助訊號 弱

官方也提到,這些方法可以疊加使用,同時用兩種以上的方式一致指向同一個網址,會提高 Google 真的採用這個標準網址的機率;但前提是每一種方法指向的網址都要一致,一旦互相矛盾,等於是在製造混亂訊號。

rel=”canonical” 怎麼寫?語法規則一次看懂

除了絕對路徑跟自我參照這兩個重點之外,還有幾條官方列出的規則:

  • canonical 標籤只能放在 <head> 區塊裡,放在 body 裡沒有效果。
  • 一個網頁只能有一個 canonical 宣告,如果同一頁出現多個互相衝突的 rel=”canonical”,Google 可能會全部忽略。
  • 如果網頁有獨立的行動版網址,應該在桌機版加 rel=”alternate” 指向行動版,同時桌機版自己的 canonical 仍指向自己;行動版網頁則用 canonical 指回桌機版。
  • 如果用 JavaScript 動態產生 canonical 標籤,要確保它最終真的被正確寫進 HTML 原始碼,而不是只存在於瀏覽器執行後的 DOM——最保險的做法是直接寫進伺服器回傳的 HTML,不要靠 JavaScript 事後插入或竄改。

canonical 只是提示:Google 怎麼決定最終答案

前面提過,canonical 是提示而非規則,Google 判斷標準網址時會綜合考量好幾個訊號,包括網站主宣告的 canonical、redirect 設定、sitemap 裡列出的網址,以及協定版本(http/https)。其中幾個比較少被提到的細節:

  • HTTPS 優先:Google 預設傾向選 HTTPS 版本當標準網址,除非出現 SSL 憑證無效、頁面引用了不安全的資源、HTTPS 版本本身又被導回 HTTP,或是 HTTPS 頁面的 canonical 反而指向 HTTP 版——這幾種情況會讓 Google 轉而選擇 HTTP 版本。
  • hreflang 群集優先:如果網站有多語系版本並用 hreflang 互相標註,Google 傾向從同一個 hreflang 群集裡選標準網址;例如 de-de 和 de-ch 兩個版本互相標註 hreflang,就會比沒有被納入群集的 de-at 更容易雀屏中選。

canonical 常見錯誤

以下幾個是官方文件明確點名、實務上也最常踩到的錯誤:

  • 全站 canonical 寫死指向首頁:通常是佈景主題或 CMS 設定不當,把所有頁面的 canonical 都硬指到首頁,等於告訴 Google「這些頁面都不重要,收首頁就好」,其他頁面因此很難被單獨索引。
  • 不同方法指向不同網址:例如 sitemap 列的是 A 網址,頁面裡的 canonical 標籤卻指向 B 網址,這種矛盾訊號會讓 Google 的判斷更不穩定。
  • 分頁全部指向第一頁:後面會獨立說明,正確做法是每一頁自我參照,而不是全部導回第一頁。
  • 用相對路徑而不是絕對路徑:官方明確建議用完整網址,相對路徑在某些情境下會被誤解析。
  • canonical 跟 noindex 同時用在同一頁:這兩個設定互相矛盾——一個是「允許索引但訊號併到別處」,一個是「完全不准索引」,同時出現會讓 Google 無所適從,應該只選一個用。
  • 用 robots.txt 封鎖想當作標準版本的網址:如果 Google 的爬蟲根本進不去那個網址,就無從判斷內容、更不可能把它選為標準版本。網站的 robots.txt 設定如果擋錯地方,canonical 會整個失效。

分頁內容的 canonical 要怎麼設定?

部落格列表頁、電商分類頁常見的分頁(例如 /blog/page/2、/blog/page/3)是另一個容易設錯的地方。早期流傳的做法是把所有分頁都指向第一頁,但這其實是錯誤示範——官方文件不建議統一指向第一頁,而是每一頁都該有自己的 canonical,指向自己。

另外,曾經用來標示分頁關係的 rel=”next” 和 rel=”prev” 標籤,Google 已經不再使用,保留著也不會有負面影響,但不需要靠它們處理 canonical 問題。正確做法很單純:確保每一頁有獨立、乾淨的網址,並用一般的 <a href> 連結做好上一頁、下一頁的導覽即可。

canonical、301 轉址、noindex 怎麼選?

這三者常被搞混,但解決的問題其實不同:

做法 使用者看到的網址 頁面索引狀態 適合情境
rel=”canonical” 不變,使用者仍進入原本網址 頁面技術上仍可存取,但排名訊號併入標準網址 頁面要保留給使用者或特定情境用,但不想讓它獨立參與排名
301 重新導向 直接跳轉到新網址 舊網址不會被索引 頁面已經不需要獨立存在,確定要永久換掉網址
noindex 不變 整頁被排除在索引之外 頁面本身就不該出現在搜尋結果,例如內部搜尋結果頁、會員專屬頁

要特別提醒的是前面提過的禁忌:不要在同一頁同時放 canonical 又放 noindex,兩者的指令方向互相衝突。

用 Search Console 確認 canonical 有沒有生效

設定完 canonical 之後,URL 檢查工具是唯一能直接確認結果的地方。如果還沒把網站加進 Search Console,可以先參考建立 SEO 儀表板的設定步驟。檢查步驟如下:

  1. 在 URL 檢查工具輸入要確認的完整網址。
  2. 找到「頁面索引」區段,裡面有兩個關鍵欄位。
  3. 使用者宣告的規範網址:顯示網站主自己宣告的 canonical 目標,如果頁面不是重複頁面,這欄會顯示「無」。
  4. Google 選定的規範網址:這是 Google 實際採用的標準網址。如果頁面沒有其他相似版本,這欄就會是頁面本身。
  5. 兩個欄位不一致時,代表 Google 選了跟網站主宣告不同的版本,需要進一步排查。

Search Console「頁面索引」報表裡,跟 canonical 有關的狀態

頁面索引報表裡有幾個狀態名稱,直接對應 canonical 的判定結果:

狀態 意思 需要處理嗎
Alternate page with proper canonical tag 這頁被正確標示為其他頁面的替代版本,canonical 設定正確 不用處理,這是正常現象
Duplicate without user-selected canonical 頁面被判定為重複內容,但沒有宣告 canonical,由 Google 自行選了另一個網址 建議補上明確的 canonical 宣告
Duplicate, Google chose different canonical than user 已經宣告 canonical,但 Google 選了另一個網址當標準版 需要排查,通常是內容不夠不同或訊號衝突
Page with redirect 這個網址會轉址到別的頁面,本身不會被索引 正常現象,除非轉址設定有誤

頁面被判定為 Duplicate 通常不是壞事,代表 Google 已經找到並索引了標準頁面,其餘版本正常不會出現在搜尋結果裡——除非網站主認為 Google 選錯了版本。如果想先確認網站有沒有更根本的收錄問題,可以對照網站沒被收錄的檢查步驟。

Google 選的跟設定的不一樣,怎麼排查?

如果 Search Console 持續顯示「Duplicate, Google chose different canonical than user」,可以照以下順序排查:

  1. 用 URL 檢查工具確認 Google 目前選定的標準網址,評估這個版本是否真的不合理。
  2. 檢查技術設定,包括 canonical 標籤本身有沒有寫錯、伺服器回應是否正常、多語系頁面的 hreflang 標註是否完整。
  3. 確認重複頁面之間的內容差異夠不夠明顯,差異越清楚,重新分組判斷的速度越快;重新評估約需兩週。
  4. 如果等待後仍未更新,可以用 URL 檢查工具裡的「要求建立索引」功能,優先處理最重要的網址。

常見的根本原因還包括:CMS 外掛設定錯誤、伺服器對不同網域回應相同內容、網站遭駭客植入跨網域的 canonical 或轉址,以及內容被其他網站抄襲或轉載。前兩種屬於網站自己可以修正的技術問題,後兩種則分別需要清查入侵痕跡,或透過 DMCA 等管道要求下架。

轉載或聯合內容,適合用 canonical 處理嗎?

技術上 canonical 標籤可以跨網域使用,指向另一個完全不同網域的網址。但如果情境是文章授權給其他網站轉載,官方目前不建議用於聯合內容,因為轉載版本的排版、額外內容通常跟原文有不少差異,Google 不一定會採信這個跨網域宣告;更有效的做法是請轉載方在刊登的版本上加 noindex,或用 robots.txt 擋掉,確保只有原文網址會出現在搜尋結果。

常見問題

canonical 標籤會直接影響排名高低嗎?

不會。canonical 決定的是「一組相似頁面裡,由誰代表大家參與排名」,真正影響排名高低的還是內容品質、技術體質與外部連結等其他 SEO 因素。

完全沒設定 canonical 會怎樣?

Google 會自動幫每一組重複頁面選一個它認為最合適的標準版本,多數情況下猜得還算準。但網站規模一大、相似頁面一多,誤判的機率也會提高,這也是官方建議主動宣告 canonical 的原因。

canonical 設定後,Search Console 多久會更新?

官方排查指南提到,重新評估一組重複頁面通常需要約兩週,如果超過這個時間狀態還是沒變,可以用 URL 檢查工具主動要求重新建立索引。

WordPress 網站要怎麼加 canonical?

多數主流 SEO 外掛都會自動幫每個頁面加上指向自己的 canonical,不需要手動寫程式碼;只有在處理分類重複、參數網址這類特殊情境時,才需要額外手動指定或覆寫。

canonical 可以取代 301 轉址嗎?

不行。canonical 是「保留頁面存在、但訊號併到別處」的提示;如果舊網址已經確定不需要了,該用的是 301 轉址,直接把使用者和爬蟲都導向新網址。

參考資料

  1. How to Specify a Canonical with rel=”canonical” and Other Methods(Google Search Central)
  2. What Is URL Canonicalization(Google Search Central)
  3. Fix Canonicalization Issues(Google Search Central)
  4. Pagination Best Practices for Google(Google Search Central)
  5. URL Inspection tool – Search Console Help(Google Search Console Help)
  6. Page indexing report – Search Console Help(Google Search Console Help)

把這篇放進別人的河裡

ThreadsLINE

river breath・河的呼吸

讀完不急著走。跟著河面呼吸三輪,把讀到的,沉下去。

吸 —— 讓念頭浮起

「唵」—— 圓滿俱足,我與河本為一體

Wudelay ・ 人生之河

同一條支流

SEO公司的優缺點是什麼?一個接案者的實話

2026-09-11約 12 分鐘

GEO 是什麼?生成式引擎優化:讓文章被 AI 搜尋引用的方法

2026-09-10約 18 分鐘

內部連結怎麼佈局?文章少的新站這樣串內鏈不浪費權重

2026-09-07約 10 分鐘