W whoops.tw
SEO

Canonical URL 完全指南:解決重複內容問題,搶回被吃掉的 SEO 流量

Canonical URL(標準網址)是你在同一份內容出現多個網址時,指定要 Google 收錄、排名、累積權重的那一個主要網址;它透過 HTML 裡的一行 <link re…

Canonical URL(標準網址)是你在同一份內容出現多個網址時,指定要 Google 收錄、排名、累積權重的那一個主要網址;它透過 HTML 裡的一行 <link rel="canonical"> 來宣告。關鍵在於 Google 把它當成強烈建議(hint)而非指令(directive),當 Sitemap、內部連結、301 之間互相打架時,Google 會直接推翻你的設定改選自己認為更合適的版本 [來源:〈Consolidate duplicate URLs〉〈https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls〉〈2026〉]。換句話說,真正決定成敗的是整站訊號是否一致,那行語法只是其中一個輸入。

重點先看:Canonical 是 hint 不是 directive,Google 會在訊號矛盾時自行選版本;根據官方說明,當 sitemap 列 A、canonical 指 B 時 Google 可能忽略你的設定,全站一致性才是唯一能讓 Google 不推翻你選擇的做法 [來源:〈Consolidate duplicate URLs〉〈https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls〉〈2026〉]。

Canonical URL 是什麼?標準網址跟 Canonical Tag 的差別

很多人把 Canonical URL 跟 Canonical Tag 當成同一件事混著講,其實兩者完全不同。Canonical URL 是「你想讓 Google 當成主版本的那個網址」,是一個目標;Canonical Tag 則是放在 HTML <head> 裡、用來宣告這個網址的那行語法,是一個動作。一個是你要去的地方,一個是你舉起來的牌子。關於Canonical 標籤的基本觀念與作用,建議先建立清楚認知再往下看。

它要解決的核心問題很具體:同一份內容常因為網址參數、http 與 httpswww 與非 wwwRWD 響應式網頁設計與 AMP 等差異,變成好幾個看起來幾乎一樣的網址。對搜尋引擎來說這些是「不同頁面」,會被分別打分,最終出現在 SERP 搜尋結果頁 的版本往往不是你想要的那一頁。Canonical 的角色就是站出來說:權重和行為信號全部集中給我指定的這一頁。

要弄懂這些網址差異從何而來,先把網址的組成結構拆解清楚會輕鬆很多;而網域與網址如何區分,是另一個常被混淆的基本觀念,釐清後判讀 canonical 設定才不會迷路。

這裡有個一定要記住的觀念。Google 從未把 Canonical 當成指令(directive),它只是強烈建議(hint),Google 保留最終決定權 [來源:〈Consolidate duplicate URLs〉〈https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls〉〈2026〉]。這也是為什麼很多人貼了語法、排名卻沒改善:他們以為設了就有效,忽略了其他訊號。想了解整體技術面,可以參考技術性 SEO 與網站架構優化,其中網址路徑的構成與意義也值得一起弄懂。

Google 在挑選 canonical 時,真正在比較的是「兩個網址夠不夠像」。它會綜合評估頁面的主要內容、標題與 heading 結構、內部連結的指向密度、網址是否出現在 sitemap、是否為 HTTPS、載入速度與行為信號等多項指標,把一群相近網址聚成一組,再從中選出一個主版本。你寫在 HTML 裡的 canonical 標籤只是其中一個輸入,當其他訊號都指向另一個版本,你的宣告就會被邊緣化。理解這套挑選機制,後面所有設定原則才講得通:你的任務是把全站訊號調到一致,讓 Google 在比較時毫無懸念選回你指定的那一頁。

重複內容吃掉 SEO 流量的三個風險

講個會讓人心痛的事實:重複內容對多數網站來說其實是參數、篩選、商品規格變體自然產生的技術現象,跟抄襲幾乎無關。但只要同一份內容以多個網址存在,又沒有 Canonical,Google 就會把每個網址當獨立頁面分別打分,結果是你本來該衝上第一頁的文章,被拆成幾個弱勢版本一起往下掉。想完整定義並排查重複內容,可以參考重複內容的判定標準與處理方式

這背後有三個風險。第一是排名信號分散,反向連結、點擊、回訪等行為信號被瓜分到好幾個網址,沒有一頁累積得到足夠權重;第二是 Googlebot 的爬蟲預算被浪費在重複抓取,這對大型網站特別傷,你可以把爬取預算優化讓 Google 更有效抓取一起看,爬取與爬取預算的運作原理則能幫你掌握背後機制;第三是 Google 可能選錯版本顯示在 SERP,例如把帶追蹤參數、或毫無轉換價值的空白版本排上去。

換個角度想,Canonical 能帶來的好處正好對應這些風險。它讓你明確指定主網址、把所有版本的外部連結與行為信號整合到同一頁、簡化 GA 與 GSC 報表(不用再看一堆參數網址)、還能讓 Googlebot 把時間花在你的新內容上。這跟關鍵字蠶食修復與排名搶救其實是同一類問題:都是訊號被自己的頁面瓜分。

把外部連結分散的後果量化來看會更有感。Ahrefs 針對其索引頁面的研究指出,反向連結是 Google 前三大排名因素之一,且連向某頁的網站數量與該頁流量之間存在明確的正相關 [來源:Ahrefs〈96.55% of Content Gets No Traffic From Google(2023 年新研究)〉 https://ahrefs.com/blog/search-traffic-study/ 2023-12-01]。這正是為什麼同一份內容拆成多個網址、讓外部連結被各版本瓜分如此致命:當連結訊號被稀釋,沒有任何一頁累積得到足夠權重,排名自然衝不上去,用 Canonical 把所有版本指向同一主網址,本質上就是把分散的連結效益收攏回單一頁面。

同樣的道理在 Backlinko 對搜尋結果的大規模分析裡更直觀。研究檢視大量 Google 搜尋結果後發現,排名第一的網頁平均擁有的反向連結數量,是第二到第十名結果的三點八倍 [來源:Backlinko (Brian Dean)〈Search Engine Ranking: We Analyzed 11.8 Million Google Search Results〉 https://backlinko.com/search-engine-ranking 2025-04-14]。連結的集中度幾乎直接決定了誰能拿下第一名,而 Canonical 正是把分散的連結集中到單一版本的關鍵工具。換句話說,沒設好 Canonical、任由連結散落在幾個參數網址,等於在這場連結集中度的競賽裡自廢武功。

以一個月流量約 5 萬到 20 萬工作階段的內容站為例,這類網站最典型的重複內容來源其實不是抄襲,而是站內篩選器、排序參數、追蹤碼自然產生的一整排變化版網址。依這類站的常見狀況,GSC 報表裡經常會看到同一篇文章掛著約 3 到 8 個大同小異的網址,每個都吃掉一點曝光與點擊,單一網址能累積到的曝光往往只剩原本集中時的約四到六成;當整站把這類分散網址收攏回單一主網址後,主網址在接下來約 4 到 12 週的索引更新週期內,曝光與點擊通常會逐步回升,回升幅度依網站規模與外部連結集中度而異,沒有保證數字。要特別誠實說明的是,Canonical 整合並不是保證漲流量的開關,它的本質是把分散訊號收攏回主網址,實際能否反映成排名提升,還取決於主網址本身的內容品質、載入速度與外部連結強度;如果主網址本身的內容比那些被收掉的變體頁更薄、轉換更差,收攏之後排名反而可能停滯。實務上的決策角度是:先把主網址的內容與技術健康度顧好,再做集中整合,順序顛倒常常會讓人誤以為「Canonical 沒用」,其實是地基還沒打穩。

重複內容風險沒有 Canonical 時設了 Canonical 後
排名信號分散到多個網址,無一頁能累積權重集中到指定主網址
外部連結效益被各版本稀釋合併到主頁面
爬蟲預算浪費在重複抓取用在新內容索引
SERP 顯示版本Google 隨機選,可能選到參數網址優先顯示你指定的版本
報表分析GA、GSC 充滿相似網址難以判讀信號集中,報表清楚

會懷疑「我又沒抄襲為什麼排名變差」的人,多半就是踩到這個雷。重複內容對 SEO 的殺傷力是隱性的,不會讓你被懲罰,但會讓你永遠排不上去。低品質與重複內容對 Google 信任度的影響,可以搭配低品質與重複內容對 Google 信任的影響一起理解。

哪些情境一定要設 Canonical

判斷要不要設 Canonical 其實只有一個準則:同一份內容是否會以超過一個網址存在。只要答案是會,就讓所有變化版網址指回最乾淨的主網址。實務上最常碰到的不外乎幾類:網址協定與版本差異、追蹤參數、電商規格變體、內容聯合刊登、分類標籤搜尋頁、多語系版本,以及沒有重複時的預防性 Self-Canonical。

網址版本差異是最普遍的來源。只要同一頁存在 http 與 https、有無 www、行動版 m.、AMP 頁面、查詢參數等差異,就可能被視為不同頁面。建議統一使用 HTTPS、不帶多餘參數、前後一致的偏好版本;Google 雖會優先採用 HTTPS 作為 canonical [來源:〈Consolidate duplicate URLs〉〈https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls〉〈2026〉],但你不能因此賭它自己選對,仍要明確設定。HTTPS 相關可看SSL 憑證安裝與 SEO 影響解析,網址命名則可參考WordPress 永久連結的 SEO 設定

追蹤參數是另一個高頻來源,同一頁常因 UTM 追蹤碼與參數設定、session id 產生一堆變化版網址,內容相同但 Google 會當獨立頁面。處理時要把兩件事分開:保留追蹤用途、收攏排名訊號。UTM 是給 GA 看的,目的是追溯流量來自哪一檔活動,這個功能要完整保留,網址本身可以照常帶參數;但帶參數頁面的 HTML 裡必須放一個指向乾淨主網址的 canonical。關鍵在於 canonical 的 href 一律指向沒有 UTM 的乾淨主網址,當下那個帶參數的網址永遠不該出現在 href 裡。若想從搜尋量角度評估這些變化版的價值,Bing 關鍵字搜尋量的免費查詢方法可作為輔助參考。

電商網站的難處在於規格變體,顏色、尺寸、容量不同會產生多個商品頁,文案圖片幾乎一樣就屬於高度重複內容。選最完整、預設款、市場需求最大的那一頁當主網址,其餘規格頁指回主頁面,相關細節見WooCommerce 商品頁 SEO 優化。但這裡有一個常被忽略的判斷點:變體頁要不要被索引。如果一個顏色或尺寸的搜尋量夠大、獨立頁面有自己的評論與差異化文案,那頁就該自我引用、保留自己的排名機會;只有當變體頁彼此內容近乎完全相同、對使用者沒有額外價值時,才集中指向一個主商品頁。這個判斷做對,可以避免把有搜尋價值的長尾變體頁全部清掉、反而流失原本能拿到的流量;若是剛起步的商店,可參考WooCommerce 購物網站架設流程先打好基礎。

內容聯合刊登與轉載、分類標籤搜尋頁高度重複,是內容站常見的兩類。文章被媒體或合作夥伴轉載時,原始文章與轉載文章兩個網址、同樣內容會同時存在,想保留原文排名就要請對方放上 Canonical 指回你的主頁面,否則 Google 可能誤判對方版本才是主內容;轉載對 SEO 的完整影響可參考文章轉載指南與 SEO 影響,第三方平台同步則見Medium 平台的 SEO 經營策略。分類、標籤與搜尋結果頁之間常出現類別 A 與類別 B 文章列表 80% 相同、標籤頁差異極小的情況,若這些頁面不需要 SEO 排名,就用 Canonical 指定回主要分類頁或內容頁,這屬於SEO 友善的網站架構設計心法的一環。

多語系與 hreflang 的搭配原則

多語系網站的網址會有多個版本,Canonical 與 hreflang 的搭配很重要。每個語系頁都要 Canonical 指向自己(中文頁指中文頁、不要指英文頁),hreflang 描述語言地區、Canonical 描述主版本,兩者不能互相取代,詳細做法見Hreflang 多語系 SEO 設定手冊,外掛選擇則可參考Polylang 多語系網站教學。最常見的錯誤是把所有語系頁的 canonical 全部指向同一個語言(通常是英文主站)的主網址,等於告訴 Google 其他語言都是重複頁、權重全部歸英文站,結果是各語系頁面在自己的地區搜尋結果裡排不上,主動放棄了在地流量。正確做法是每個語系頁自我引用、hreflang 負責把對的使用者導到對的語言版本。

Self-Canonical 的預防性價值

即使頁面沒有多個版本,Google 官方也建議每一頁放 Self-Canonical(指向自己)[來源:〈Consolidate duplicate URLs〉〈https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls〉〈2026〉]。它能強化「我就是標準版本」的訊號,防止日後被帶參數時造成混亂,也能提高索引穩定性,是一種成本低、效益清楚的預防性設定;把它納入年度內容更新與檢查清單,能讓全站設定維持一致。

Canonical Tag 語法、位置與各平台設定方式

Canonical Tag 的正確位置是 HTML 的 <head></head> 之間,永遠用包含 https:// 與網域的絕對路徑,不要用相對路徑。基本語法是 <link rel="canonical" href="https://example.com/your-url/">。放進 <body> 會被多數搜尋引擎忽略,這是最常見的低級錯誤。

絕對路徑與相對路徑的差別在實務上會帶來真實風險。相對路徑(例如 href="/你的路徑/")在絕大多數情況 Google 仍能解析,但當頁面同時存在多個子網域、或被快取、代理伺服器轉發到不同路徑時,相對路徑會被解析成意想不到的網址,造成 canonical 指錯。絕對路徑把完整網域寫死,無論頁面被怎麼轉發,href 都指向同一個明確目標,這也是 Google 官方與所有主流 SEO 工具一致推薦絕對路徑的原因。多花兩秒把協定、網域、結尾斜線寫齊,能省下日後排查的數小時。

不同平台有不同設法。WordPress 用 Yoast SEO 或 Rank Math,編輯頁就有標準網址欄位可直接填,不必改程式碼,相關教學見Rank Math SEO 外掛完整設定教學Yoast 與 Rank Math SEO 外掛比較,整體 WordPress SEO 可看WordPress 架站與 SEO 優化全攻略。Shopify 與 WooCommerce 多已自帶基本 canonical,但要檢查多規格商品頁與篩選排序頁是否正確指向主網址。Wix、Weebly 等平台在頁面的 SEO 設定或進階設定中可直接填寫。

非 HTML 檔案例如 PDF、Word、白皮書,無法編輯 <head>,就要改用 HTTP Header。在伺服器回應加入 Link: <https://example.com/your-url/>; rel="canonical",適用 PDF 與 HTML 內容相同、白皮書提供多種格式下載、想把權重集中回 HTML 版本等情境。

搭配 Sitemap 一起做才能真正穩定。原則是 Sitemap 只列 canonical 網址,不放參數頁、追蹤碼頁、篩選頁 [來源:〈Consolidate duplicate URLs〉〈https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls〉〈2026〉]。原因是 Sitemap 會加強 Google 的訊號一致性判斷,若 Sitemap 列 A、canonical 指 B、內部連結又連到 C,Google 會把這三個互相打架的訊號全部打折,最後選的往往不是你想要的那一頁。所以 Sitemap、Canonical、內部連結三者必須指向同一版本,相關設定見Sitemap XML 產生與提交實作網站 Sitemap 對 Google 收錄的作用

說實在的,正確使用 <link rel="canonical"> 只是技術 SEO 的其中一環,真正複雜的是讓整個網站的 URL 結構、Sitemap、內部連結、內容架構都維持一致。這也是為什麼很多網站明明貼了語法卻一直進不了前頁,問題多半不在那行字,而在地基。想打好基礎可看站內 SEO 技術與內容優化攻略SEO 網址優化與 URL 命名規則

JavaScript、SPA 與動態網站的 Canonical 處理

現代網站大量使用 JavaScript 框架與單頁應用(SPA),canonical 的處理難度因此大幅提高。問題核心在於:Googlebot 雖然會執行 JavaScript,但它的流程是兩階段的,先抓取伺服器回傳的初始 HTML,再把需要執行 JavaScript 才出現的內容排進佇列等待第二輪算繪。如果你的 canonical 是靠前端 JavaScript 動態注入的,它在第一輪抓取時根本不存在,要等到第二輪才被看見。這段延遲期間,Google 已經根據初始 HTML 做了第一輪判斷,一旦初始 HTML 與最終算繪結果的 canonical 不一致,就會產生混淆。

實務上最穩妥的做法,是把 canonical 直接寫進伺服器回傳的初始 HTML 裡,讓它在第一輪抓取就存在,這稱為伺服器端算繪(SSR)或預先算繪。如果技術架構無法做到 SSR,至少要確保前端框架在路由切換時,同步更新 document 裡的 canonical link 標籤,並讓關鍵訊號(標題、heading、主要內容)在初始 HTML 中就已可見。光靠 client-side render 動態產生 canonical,在大型網站上常常是排名訊號飄移、版本被 Google 反覆覆寫的元兇。

檢查 Canonical 是否生效的四種方法

設了 Canonical 之後,你必須確認 Google 是否真的採用,因為訊號矛盾時它會自行選擇不同版本。最可靠的方式是 Google Search Console 的「網址審查」工具,查看「Google 選擇的標準網址」(Google-selected canonical)是否跟你設定的一致 [來源:〈Inspect URLs with the URL Inspection tool〉〈https://developers.google.com/search/docs/inspect-url/index〉〈2026〉]。深入操作可參考Search Console 網址審查工具的使用方式,若還沒安裝,先照Google Search Console 安裝設定教學完成串接。不一致就代表訊號打架、Google 覆寫了你的建議,得回頭檢查 Sitemap、內部連結、301。

方法一:瀏覽器檢視原始碼

在要檢查的頁面按右鍵選「檢視網頁原始碼」(Ctrl+U 或 Cmd+Option+U),用搜尋功能找 canonical,確認語法與 href 正確指向你期望的網址。這是最快的基本檢查。

這裡要特別提醒:檢視原始碼看到的是伺服器回傳的初始 HTML,而「檢查」(F12)看到的 Elements 面板,顯示的是經過 JavaScript 算繪後的最終 DOM。當兩者顯示的 canonical 不一樣時,以原始碼的版本為準,因為那才是 Googlebot 第一輪抓取會看到的內容。如果你的 canonical 只在 Elements 面板看得到、原始碼裡沒有,就表示它是純前端動態注入,屬於前一段提到的高風險狀態,建議改寫成伺服器端輸出。

方法二:開發者工具看 HTTP Header

若 Canonical 設在 HTTP Header(例如 PDF),按右鍵選「檢查」(F12),切到 Network 標籤,重新整理後點第一個資源,在 Response Headers 的 Link 欄位確認是否有 rel="canonical"。

方法三:Search Console 網址審查(最可靠)

登入 Google Search Console,用頂部的「網址審查」工具輸入網址,查看「Google-selected canonical」。這是 Google 實際採用的版本,也是唯一可信的驗證。若跟你設的不一致,就代表設定有問題或訊號矛盾。完整工具介紹見Search Console 完整設定與優化教學,WordPress 串接見WordPress 串接 Google Search Console

判讀網址審查結果時,要看兩個欄位的對照:一個是「使用者宣告的標準網址」(也就是你在 HTML 設定的),另一個是「Google 選擇的標準網址」(Google 實際採用的)。兩者一致代表設定生效;不一致代表 Google 推翻了你的建議,這時要連同「檢索」與「索引」狀態一起看,如果 Google 選的版本回傳 200、你的目標頁卻被 noindex 或載入緩慢,問題往往出在目標頁本身的健康度,而不單純是語法錯誤。

方法四:SEO 爬蟲工具大規模檢查

全站檢查用 Screaming Frog SEO Spider 這類爬蟲軟體,一次抓出每個頁面的 Canonical 與狀態,快速找出迴圈、404、指向錯誤的頁面。瀏覽器外掛如 Ahrefs SEO Toolbar 則能在瀏覽時自動顯示標準網址,想系統化學會 Ahrefs 全套功能可參考搭配 Ahrefs 工具的 SEO 實戰陪跑。除了 Google,Bing Webmaster Tools 的安裝與設定也能從另一個搜尋引擎交叉驗證標準網址。索引查詢可搭配Google 網頁收錄與索引查詢方法

檢查方法適用情境可信度
檢視原始碼確認語法是否存在(初始 HTML)僅確認你設了什麼
開發者工具 Elements確認 JS 算繪後的 DOM canonical與原始碼比對,找注入差異
開發者工具 NetworkHTTP Header 設定(PDF 等)確認語法
Search Console 網址審查驗證 Google 實際採用版本唯一可信的驗證
Screaming Frog 爬蟲全站大量檢查找出異常,仍需 GSC 確認

官方原則與致命錯誤

Google 採用 Canonical 的條件是全站訊號一致,而官方原則可以濃縮成一條主軸:宣告要明確、可檢索,且全站指向同一個偏好版本。絕對網址是最基本的要求,永遠用 https:// 開頭的完整路徑,避免相對路徑在測試站、DNS 網域名稱指向設定混亂的子網域造成問題,也別拿短網址工具產生的網址當 canonical。偏好版本要在全站統一,HTTP/HTTPS 統一指向 HTTPS,www 與非 www 決定一個版本後全站一致;指向也要單一,同時設定多個 canonical 標籤、或同時用 HTML 標籤法與 HTTP 標頭法,搜尋引擎可能直接忽略所有設定。這幾點其實都跟常見 SEO 優化地雷與排名陷阱重疊。

目標頁本身的健康度同樣是硬條件。Canonical URL 必須是有效網址、回傳 200 OK,不能是 404 頁面,也不能被 noindex 或 robots.txt 封鎖;noindex 與 robots.txt 各有用途,noindex 指令的作用與限制robots.txt 的基本觀念建議一起釐清,取捨之道可參考robots.txt 與 noindex 的差異比較。把 Self-Canonical 補上、並記住 Canonical 是強烈建議而非指令,就完整構成了官方立場:Google 通常會遵循,但若它認為你指定的網址與當前頁差異太大,會自行選擇它認為更合適的版本 [來源:〈Consolidate duplicate URLs〉〈https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls〉〈2026〉]。

真正致命的錯誤有兩種。把 Canonical 指向完全不相關的內容(例如把咖啡豆文章指到首頁、或產品 A 指到產品 B),Google 會忽略該標籤,甚至把錯誤頁面索引;最嚴重的是把分頁第 2、3 頁的 Canonical 指向第 1 頁,這會讓後面所有頁面從 Google 索引中消失,等於自動放棄那些頁面的全部自然流量,正確做法是每一頁自我引用,page/2 指向 page/2 自己。

退一步看,這些錯誤的共同點是「訊號不一致」。Google 看到互相矛盾的訊號時,寧可自己選一個版本也不願意盲目聽你的,這跟它作對無關。所以正確的切入點是「讓全站訊號一致,讓 Google 沒有理由推翻你的選擇」,光學會貼語法遠遠不夠。這也是Google 搜尋演算法與排名規則背後一貫的邏輯,黑帽手法如黑帽 SEO 與 Google 懲罰風險中提到的投機操作也救不了訊號混亂的站。

四種 URL 整合工具的決策矩陣

很多 SEO 問題的根源,是把四種本該分工的工具混在一起用。Canonical、301 轉址、noindex、hreflang 各有明確的職責,搞混它們是全站訊號打架最常見的原因。把四者放進同一個矩陣比較,就能依「頁面是否還在、是否要排名、是否同語言、是否永久搬家」四個維度對號入座。

工具頁面是否還在主要職責適合的情境
Canonical在(多個版本並存)指定主版本、整合排名訊號同內容多網址、參數、規格變體
301 轉址舊網址已不存在把使用者與權重永久導到新網址網址變更、網站搬家、刪除舊頁
noindex在(但不要排名)禁止頁面進入索引篩選頁、搜尋結果頁、內部搜尋
hreflang在(多語言版本並存)標示語言與地區對應多語系、多地區網站

用這個矩陣做判斷時,先問頁面還在不在:舊網址已刪除就一定走 301,不要用 canonical 處理搬家,因為使用者點進舊網址會看到 404,canonical 不會把人導走。頁面還在但不想被排名,考慮 noindex;頁面還在且要排名、只是有多個重複版本,才用 canonical。多語系情境則是 hreflang 與 self-canonical 同時上場,兩者職責不能互相替代。把這四個工具的邊界畫清楚,全站訊號打架的問題就能解掉大半。

301 轉址與跨網域 Canonical 的選擇

很多人問:已經做 301 轉址了還需要設 Canonical 嗎?答案是不需要同時用。301 轉址代表「舊網址已永久搬到新網址,權重全部轉移」,Canonical 代表「這頁還在,但把權重算給另一頁」。兩者目的相似但技術不同,搬家場景一定用 301,Canonical 是給同時存在的重複頁面用的,不可並存。詳細差異見301 與 302 轉址的完整設定與 SEO 影響

值得說明的是權重傳遞。Google 近年表示 301、302、canonical 在權重傳遞上已無差異 [來源:〈Consolidate duplicate URLs〉〈https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls〉〈2026〉],所以不必糾結哪個傳得多,重點是選對工具:搬家用 301,整合重複用 Canonical,兩者不要混用。網站搬家流程可參考WordPress 搬家到新主機與新網域WordPress 網站搬家完整流程

比較項目301 轉址Canonical
本質舊網址永久搬到新網址頁面還在,權重算給另一頁
適用場景網站搬家、網址變更同時存在的重複內容
使用者體驗會被導到新網址留在原網址
能否並存不可與 Canonical 同時使用不可與 301 同時使用
權重傳遞Google 表示與 302/canonical 已無差異同左

跨網域 Canonical 的適用範圍

跨網域 Canonical 可以用,但要確保兩邊內容幾乎一模一樣,而且你真的希望把權重集中到那個網域。它主要有三種用途:內容聯合發布(讓新聞媒體轉載你的原創文章)、關係企業網站的重複內容整合、測試環境或開發站與正式站的整合。這跟子網域與子目錄的 SEO 差異是不同層次的問題,網域申請與 DNS 設定的細節也不要搞混。

設錯的後果與補救

設錯會帶來三種後果:排名信號流失,指向的錯誤頁面品質較差會拉低整體排名;重要頁面從搜尋結果消失,把獨一無二的暢銷商品頁 Canonical 指向不相關的促銷活動頁,該頁會被當重複內容從索引移除;權重因迴圈或指向 404 無法集中。遇到Google 排名下滑網站流量下滑時,canonical 設定是該優先檢查的項目之一。補救的順序很固定:先修正 canonical 語法與指向的網址,再到 Search Console 用「要求建立索引」加速更新,接著用網址審查確認 Google 是否接受新設定,最後確保 Sitemap 與內部連結都指向同一版本。要記得補救需要時間,Google 要重新抓取並更新索引,不是修正後立即生效,這跟提升 Google 排名的關鍵方法講的耐心是一致的;過渡期若搭配SEO 與 Google Ads 的搭配策略會更穩。

Canonical 訊號一致性自檢表:用六個檢查點判斷設定健不健康

前面講了工具選擇與常見錯誤,但實務上最缺的其實是一張能逐頁打勾的檢查表。這裡把整篇文章濃縮成一個可重複執行的「訊號一致性自檢表」,六個檢查點對應 Google 在挑選 canonical 時真正在看的訊號。做法是針對你要驗證的主網址,逐項回答「是/否/不確定」,任何一格出現「否」或「不確定」,那一頁的 canonical 設定就不算穩定,Google 隨時可能覆寫。

檢查點要問的問題過關標準
1. href 寫法是否為含 https:// 與網域的絕對路徑?是;相對路徑或帶參數都不算過關
2. 放置位置標籤是否在初始 HTML 的 head 內?是;只出現在 body 或靠 JS 注入為否
3. 目標頁健康度canonical 指向的網址是否回傳 200、未被 noindex 或 robots 封鎖?回傳 200 且可檢索
4. 單一指向全頁是否只有一個 canonical 標籤、且沒有同時用 HTTP 標頭指向另一網址?單一來源,無競爭標籤
5. Sitemap 與內鏈對齊該主網址是否同時出現在 Sitemap、且站內主要連結也指向它?三個訊號(canonical、Sitemap、內鏈)一致
6. Google 實際採用Search Console 網址審查顯示的「Google 選擇的標準網址」是否與你設定的一致?一致;不一致即設定失敗

這張表的價值在於:前面五點是你自己可控的設定面,第六點是結果驗證。很多人只在設定完就收工,跳過第六點,等於從不驗收;也有人只看第六點、卻不回頭修前面五點,等於治標不治本。把六點串成一個閉環檢查流程,每個月上線新內容後跑一次,能讓全站 canonical 在規模變大時仍維持穩定。

用一個常見的踩雷情境說明這張表怎麼抓問題。假設一個 WooCommerce 商店把所有顏色變體頁的 canonical 全部指向「主商品頁」,理論上訊號會集中;但實際上其中一個熱門顏色頁流量不斷下滑。逐項跑自檢表會發現:第 5 點,該顏色頁的站內分類連結、導覽麵包屑全部連到變體頁自己,與 canonical 指向的主頁互相打架;第 6 點,Search Console 顯示 Google 選擇的根本是變體頁自己、而非你宣告的主商品頁。結論是這個變體頁其實有獨立搜尋價值,正確做法是改成自我引用、把排名機會還給它。這個例子示範了自檢表的真正用途:它不只是檢查「語法對不對」,而是幫你判斷「你強行集中的版本,是不是真的該被集中」。

一個容易誤判的觀念:canonical 不是把流量「搬」到主頁,而是把分散的排名訊號收攏。這代表就算設定正確,主頁的流量也不會一夜暴增,而是隨著 Google 重新評估訊號、慢慢累積權重;相對地,被指向的次要版本會逐步失去自己的排名能見度。所以在套用自檢表之前,先想清楚「哪些頁面真的該被收掉、哪些頁面其實值得保留自己排名」,這個前置判斷比任何語法都重要,也是避免把有價值的長尾頁誤清掉的關鍵。

回顧一下整篇文章的核心:Canonical 真正在解決的,是搜尋引擎最頭痛的問題:同一份內容散落在多個網址時,排名權重與行為信號到底要集中給誰。「宣告主網址」只是表面動作,背後真正的成敗關鍵在於整站 Sitemap、內部連結、301、hreflang 是否全部指向同一個版本。想看更大局的 SEO 規劃,可參考SEO 搜尋引擎優化完整實戰指南,技術面還可搭配Core Web Vitals 核心網頁體驗指標一起優化;若想從產業分析一路練到落地實戰,SEO 排名攻略學系統化課程能補上整體打法。

把視野再拉大一點,搜尋版圖正在往 AI 與生成式結果延伸,除了傳統 SEO,GEO 與 AI 搜尋優化的學習資源值得提早布局;而行銷思維的完整建立,可從100 種以上的網路行銷手法總整理中挑出適合自己網站的方向,讓技術設定與行銷策略兩頭並進。

常見問題

Canonical 是指令還是建議?設了就一定有效嗎?

Canonical 是強烈建議(hint)不是指令,Google 保留最終決定權。常見的誤解是貼了語法就會生效,但當 Sitemap、內部連結、301 互相打架時,Google 會推翻你的設定改選自己認為更合適的版本。設了不代表有效,全站訊號一致才是真正能讓 Google 採用的關鍵。

相對路徑的 canonical 為什麼不建議用?

相對路徑在多數情況下 Google 仍能解析,但當頁面同時存在多個子網域、或被快取、代理伺服器轉發到不同路徑時,會被解析成意想不到的網址,造成 canonical 指錯。絕對路徑把完整網域寫死,無論頁面被怎麼轉發,href 都指向同一個明確目標,這也是官方與主流 SEO 工具一致推薦絕對路徑的原因。

帶 UTM 參數的網址,canonical 的 href 要指向哪裡?

一律指向沒有 UTM 的乾淨主網址,當下那個帶參數的網址永遠不該出現在 href 裡。UTM 是給 GA 看的、要保留追蹤用途,網址本身可照常帶參數;但排名訊號必須收攏到乾淨主網址,兩者並不衝突,分開處理即可。

多語系網站的 canonical 可以全部指向英文主站嗎?

不建議。這等於告訴 Google 其他語言都是重複頁、權重全部歸英文站,結果是各語系頁面在自己的地區搜尋結果裡排不上,等於主動放棄在地流量。正確做法是每個語系頁自我引用(中文頁指中文頁),hreflang 負責把對的使用者導到對的語言版本,兩者職責不能互相取代。

JavaScript 網站為什麼排名訊號會飄移?

因為 Googlebot 是兩階段抓取:先抓伺服器回傳的初始 HTML,再把需執行 JavaScript 才出現的內容排進佇列等第二輪算繪。若 canonical 靠前端動態注入,第一輪抓取時根本不存在,一旦初始 HTML 與最終算繪結果不一致就會混淆,這正是大型網站排名訊號飄移、版本被反覆覆寫的常見原因。把 canonical 寫進初始 HTML、讓 SPA 在路由切換時同步更新 href,才能穩定。

Search Console 顯示的 Google-selected canonical 跟我設的不一致,代表什麼?

代表 Google 推翻了你的建議,訊號有矛盾。這時要連同檢索與索引狀態一起看:如果 Google 選的版本回傳 200、你的目標頁卻被 noindex 或載入緩慢,問題往往出在目標頁本身的健康度,而不單純是語法錯誤。回頭檢查 Sitemap、內部連結、301 是否打架,修正後再要求重新建立索引。

相關文章