Canonical 標籤是什麼?一文搞懂處理重複內容的關鍵設定
Canonical 標籤是解決 SEO 重複內容問題的核心工具。這篇指南將說明 canonical 標籤的定義、正確語法、使用時機與最佳實踐,幫助你有效集中網站權重,避免搜尋引擎索引錯誤的網址版本。
Canonical 標籤是什麼?一段指路給 Google 的 HTML 程式碼
Canonical 標籤是一段寫在 HTML 文件 <head> 區塊內的程式碼,語法為 <link rel="canonical" href="..." />。它的核心作用是向搜尋引擎「提示」或「建議」,在多個網址指向相同或高度相似內容時,哪一個網址才是標準、首選的版本。這個標籤的存在,是為了告訴像 Google 這樣的搜尋引擎:「嘿,這些網址雖然都能看到這份內容,但請你把這個當作主要版本來索引和排名。」
其設計目的在於解決一個常見的 SEO 問題:重複內容。當同一份內容因為 URL 參數、不同協定(HTTP/HTTPS)或區域設定等因素,產生了多個可存取的網址時,搜尋引擎可能會困惑於該索引哪一個版本,導致 SEO 權重分散在多個相似頁面上。Canonical 標籤就像一個指路牌,引導搜尋引擎將這些分散的權重集中到你指定的標準網址上。要更深入了解搜尋引擎如何處理這類問題,可以參考搜尋引擎最佳化是什麼?從爬取、索引到排名的運作原理。
如何正確撰寫 Canonical 標籤?語法與最佳實踐
正確撰寫 Canonical 標籤的關鍵在於使用絕對網址、放置於正確位置,並遵循自我參照的最佳實踐。標準語法是 <link rel="canonical" href="https://www.example.com/your-preferred-page.html" />,這段程式碼必須放在 HTML 文件的 <head> 區段內,不能放在 <body> 中。
Google 強烈建議採用「自我參照 canonical」(self-referencing canonical),即使頁面只有一個版本,也應該讓它的 canonical 標籤指向自己。例如,網址 https://www.skydigital.com.tw/posts/canonical 頁面的 canonical 標籤就應該設定為 href="https://www.skydigital.com.tw/posts/canonical"。這麼做能幫助搜尋引擎明確、無歧義地識別你的首選網址。此外,href 屬性的值必須是完整的絕對網址,包含協議(http:// 或 https://)與完整域名,不能使用相對路徑(如 /posts/canonical)。部署前,務必確認標籤的位置與寫法無誤。
為什麼需要 Canonical 標籤?SEO 重複內容的解決方案
Canonical 標籤的主要用途,是處理各種導致內容重複或高度相似的網站架構問題。在數位行銷的實務中,重複內容並非指完全一模一樣的文字,而是指搜尋引擎認為兩頁以上內容過於相似,可能導致它們相互競爭排名的情況。
常見的適用情境包括:1. URL 參數問題:產品篩選頁面可能因不同的顏色、尺寸參數(例如 ?color=red、?size=XL)產生大量網址,這些頁面的主體內容相同。這時可以讓所有參數網址的 canonical 指向不帶參數的原始頁面。2. 分頁內容:文章或產品列表的分頁(例如 /blog?page=2),建議每頁都進行自我參照。3. 網址協定與 www:確保 http:// 版本指向 https:// 版本,www 與非 www 版本也應統一標準。4. 多語言/地區版本:例如 /en/about/ 和 /zh-tw/about/ 雖然內容相關,但針對不同用戶,應各自設定自我參照的 canonical,並搭配 hreflang 標籤。5. 內容轉載:當你的原創內容出現在其他合作夥伴的網站時,可以在他們的頁面上設定 canonical 指向你的原始網址。
Canonical 標籤 vs. 301 轉址:我該選哪一個?
當面對重複內容時,選擇使用 Canonical 標籤還是 301 轉址,取決於頁面的存廢狀態與你的控制權。這兩者是解決不同問題的工具,有時也可能同時使用。
| 比較維度 | Canonical 標籤 (rel="canonical") | 301 永久轉址 (301 Redirect) |
|---|---|---|
| 訊號強度 | 強烈的「提示」或「建議」訊號。Google 會參考,但不保證 100% 遵循。 | 明確的「永久轉址」指令。這是一個伺服器端的回應,強烈指示瀏覽器和搜尋引擎內容已永久移動。 |
| 使用者體驗 | 不會改變使用者瀏覽器地址列顯示的網址。使用者停留在原始頁面上。 | 會將使用者的瀏覽器自動導向至新網址,地址列會更新為新網址。 |
| 權重轉移 | 用於「集中」權重,告訴搜尋引擎將多個相似頁面的權重視為一個。不保證所有連結權重都被轉移。 | 會將舊網址的大部分連結權重(被認為是約 90% 以上)轉移到新網址。 |
| 頁面存廢狀態 | 用於多個頁面「同時存在」,但需要指定其中一個為標準版本時。原始頁面本身是有效的、可存取的。 | 用於舊頁面已「永久移除」或內容已完全合併到新頁面時。設定後,請求舊網址的用戶會看到新頁面。 |
在實務判斷上,如果你的網站有一個舊的產品頁面 /products/old-item 已經永久下架,並且希望將所有流量導向新頁面 /products/new-item,那麼使用 301 轉址 是正確選擇。反之,如果你的網站因篩選功能產生了 /shoes?brand=nike 和 /shoes?brand=adidas 等頁面,這些頁面都應該能被使用者直接訪問,但你想讓 /shoes 作為標準版,那麼就應該為每個篩選網址設定 Canonical 標籤指向 /shoes。在某些情況下,例如一個舊頁面的內容被移到了新網址,且舊頁面不再有存在的必要,可以同時實施 301 轉址(處理使用者導向)和在新頁面設定自我參照的 canonical(強化標準網址訊號)。
部署 Canonical 前的 7 項關鍵檢查清單
設定 Canonical 標籤並非一蹴可幾,錯誤的設定會讓訊號失效甚至產生矛盾。以下是一份實用的部署前驗證清單,確保你的設定能被搜尋引擎正確解讀。
- [ ] 使用絕對網址:檢查
href屬性的值是否以https://或http://開頭,並包含完整的域名。 - [ ] 位置正確:確認
<link rel="canonical" />標籤是寫在 HTML 文件的<head>區塊內,而不是<body>或文件結尾。 - [ ] 目標可被索引:確保 canonical 標籤指向的網址(href 值)是一個可以被搜尋引擎爬取和索引的頁面。該頁面沒有被
robots.txt封鎖。 - [ ] 避免矛盾訊號:檢查該頁面是否**沒有**同時設定
<meta name="robots" content="noindex">。同時使用 canonical 和 noindex 會讓搜尋引擎混淆,通常導致兩者都失效。 - [ ] 與 Sitemap 一致:如果你的網站有提交 Sitemap,請確認 Sitemap 中列出的該頁面網址,與其設定的 canonical 網址一致。不要讓 Sitemap 說網址是 A,但頁面的 canonical 卻指向 B。
- [ ] 指向有效網址:確認 canonical 指向的網址不是會返回重新導向(301/302)的網址,也不是錯誤頁面(404)。它應該是一個穩定、直接存取的網址。
- [ ] 整合 hreflang(如適用):如果頁面是多語言網站的一部分,除了設定自我參照的 canonical,還需正確配置
hreflang標籤,以明確告訴搜尋引擎各語言版本之間的關係。
完成這些檢查,能大幅降低設定錯誤的風險。若想從更宏觀的層面理解 SEO 的技術基礎,可以閱讀SEO 是什麼?定義、範疇與實作判斷。
總結:Canonical 標籤是 SEO 技術的基礎工具
Canonical 標籤的本質是向搜尋引擎傳遞一個強烈的「提示」訊號,用於在多個網址呈現相同內容時,指定哪一個是首選版本。它是解決因 URL 參數、分頁、協定版本、區域設定等因素造成的重複內容問題,並集中 SEO 權重的首選技術方案。與 301 永久轉址不同,canonical 不會改變使用者訪問的網址,主要用於頁面仍然存在但需區分主次的場景。
在實際部署時,務必參照「部署前的 7 項關鍵檢查清單」,確保使用絕對網址、放置於正確位置、避免與 noindex 等訊號衝突。正確使用這項基礎工具,能讓你的網站架構對搜尋引擎更友善,避免寶貴的連結權重因內容重複而無謂分散。
Canonical 標籤一定要指向自己嗎?
強烈建議指向自己(自我參照),即使頁面只有一個版本。這能幫助搜尋引擎明確識別標準網址,避免被誤判,且是 Google 推薦的最佳實踐。
我同時使用了 Canonical 標籤和 301 轉址,會有衝突嗎?
在大多數情況下會有衝突且不必要。 301 是更強烈的永久轉址指令,會直接將使用者和搜尋引擎帶往新網址;Canonical 則是在多個頁面「同時存在」時,指定其中一個為標準。若頁面已永久移除,應只用 301。
Canonical 標籤寫錯了,會讓我的網站被懲罰嗎?
通常不會直接導致懲罰,但會讓標籤失效。 常見錯誤(如使用相對網址、指向錯誤頁面、與 noindex 同時使用)會導致搜尋引擎忽略此訊號,使重複內容問題依舊存在,權重持續分散。
Canonical 標籤放在 HTML 的 <body> 裡面有效嗎?
無效。 Google 明確指出,rel="canonical" link 元素必須放置在 HTML 文件的 <head> 區段內才能被正確解讀。
分頁該怎麼用 Canonical?指向第一頁還是每一頁都自己指自己?
通常建議每一頁都進行自我參照。 例如,分頁第二頁的 Canonical 指向第二頁自己。若想將分頁內容整體視為一篇,讓第一頁的版本作為標準,此做法已不推薦,可能導致後續頁面內容被忽略。正確做法是確保分頁有良好的連結結構,並可配合 rel="next" 與 rel="prev"(雖然 Google 已不強調,但對某些爬蟲仍有幫助)。
Canonical 標籤需要多久時間才會被 Google 生效?
沒有固定時間。 Canonical 是一個「提示」,Google 在重新爬取和索引該頁面時才會處理此訊號。生效速度取決於頁面的爬取頻率,可能從幾天到幾週不等。你可以透過 Google Search Console 的「網址審查」工具主動提交,加速此過程。
如果我錯誤地將一個重要的產品頁面,Canonical 指向了另一個頁面,會發生什麼事?
這很可能導致被指向的頁面獲得排名權重,而原始產品頁面在搜尋結果中的表現將會大幅下降或消失。 因為你明確告訴 Google 被指向的網址才是標準版本。這是使用 Canonical 標籤時最需謹慎的風險之一。