ORON
回科技觀點
SEO12 分鐘閱讀

canonical 標籤:同一頁多個網址該讓 Google 認哪個

同一頁長出六個網址,排名分數就被切成六份。canonical 標籤怎麼寫、六個常見錯誤,以及它跟 301、noindex 的分工。

canonical 標籤:同一頁多個網址該讓 Google 認哪個

Search Console 裡出現一行字:「重複,Google 選擇的標準網址與使用者指定的不同」。點進去一看,同一個產品頁有六個網址都被抓到了——有帶 ?utm_source=fb 的、有結尾多一條斜線的、有從不同分類路徑進去的,還有一個是 www 版本。頁面內容一模一樣,只是網址長得不一樣。

更尷尬的狀況是:客戶用公司名加產品名去 Google 搜尋,點進來的網址後面掛著一串廣告追蹤參數。那是三個月前投廣告留下來的版本,Google 把它當成正本收錄了。

這類問題不會讓官網掛掉,所以很容易放著不管。但它會慢慢吃掉排名——同一篇內容的分數被切成好幾份,每一份都不夠力。canonical 標籤就是用來處理這件事的工具:告訴搜尋引擎「這幾個網址其實是同一頁,請認這一個」。

書架上整排書背緊貼排列,象徵同一份內容在官網上以多個網址同時存在,需要指定哪一個是正本

Photo by Sevda Afshar on Unsplash

為什麼同一頁會長出好幾個網址

多數老闆的第一反應是「我網站只有一個網址啊」。但網址是由系統組出來的,只要組法不同,對搜尋引擎來說就是不同的頁。常見來源有這幾類:

  • 追蹤參數:?utm_source=、?fbclid=、?gclid=。廣告和電子報帶進來的流量都會掛這些。
  • 排序與篩選參數:?sort=price、?color=black、?page=1。商品列表頁最容易爆量。
  • 網域與通訊協定:http 與 https、www 與非 www,如果沒做轉址就是四個版本。
  • 結尾斜線與大小寫:/service/ 與 /service、/Product 與 /product。多數伺服器會當成不同資源。
  • 多重分類路徑:同一件商品同時掛在「廚房家電」和「熱銷商品」兩個分類下,有些購物車系統會各給一個網址。
  • 首頁的多種寫法:/、/index.php、/home。
  • 列印版與預覽版:/print、?preview=true,或是開發測試站整站被收錄。

想知道自己有幾個版本,最快的方式是在 Google 搜尋框輸入 site:你的網域.com 掃一遍,再去 Search Console 的「頁面」報表看「重複」與「替代頁面」這兩類被排除的網址有多少。數字通常比預期的大。

重複網址真正的代價

這件事的影響不是抽象的「SEO 不好」,而是三個具體的損失。

一、外部連結的分數被切散。假設有五個網站連到你的文章,但他們複製的網址各不相同——兩個帶 UTM、兩個是 www 版、一個是乾淨版。對搜尋引擎來說,這是五個頁面各拿到一票,而不是一個頁面拿到五票。排名靠的是集中度,不是總量。

二、抓取預算被浪費。搜尋引擎每天花在你網站上的抓取次數是有限的。如果多數次數都用在抓同一頁的不同參數版本,新發的文章和剛上架的商品就得排很久的隊。這在商品數上千的購物網站特別明顯。

三、搜尋結果顯示你不想要的那一個。如果沒有明確指定,搜尋引擎會自己挑一個當正本——可能挑到帶參數的、挑到舊版本、挑到列印版。客戶看到的就是那個網址,分享出去的也是那個網址,問題會一直滾下去。

幾張白色吊牌用細繩掛在一起,象徵 canonical 標籤的作用是替每一頁標明唯一的標準網址

Photo by Avesta on Unsplash

canonical 標籤怎麼寫

它是一行放在 HTML <head> 區塊裡的標籤:

<link rel="canonical" href="https://www.example.com/product/abc" />

意思是:不管你是從哪個網址進到這一頁,請把分數都記在 href 指的那個網址上。實務上有幾個規則要守住:

  • 用絕對網址,含 https:// 和網域。相對路徑在不同層級的頁面容易解析錯。
  • 一頁只放一個。出現兩個以上,搜尋引擎可能全部忽略。常見意外是版型本身有一個、SEO 外掛又塞一個。
  • 每一頁都自我參照。沒有重複問題的頁面,canonical 就指向自己。這會擋掉別人幫你加參數所產生的版本。
  • 目標網址要回傳 200、可被索引。指向 404、301 或掛了 noindex 的頁面,等於沒設。
  • 目標網址不能被 robots.txt 封鎖。抓不到的頁面無法被當成正本。
  • 它是建議,不是命令。如果你指定的那一頁內容明顯比較少、或實際上長得不一樣,搜尋引擎會自己改選。Search Console 的「網址審查」工具會同時顯示「使用者宣告的標準網址」和「Google 選擇的標準網址」,兩者不一致就是訊號。

六個常見的設定錯誤

這些錯誤的共同特徵是:設定看起來有做,但效果是負的。

  1. 全站 canonical 都指向首頁。外掛預設值沒改,或開發時複製貼上留下來的。結果是所有內頁都在說「我不是重點,首頁才是」,內頁可能陸續從搜尋結果消失。這是破壞力最大的一種。
  2. 分頁第二頁指回第一頁。商品列表或文章列表的第 2、3、4 頁,各自是不同的內容,應該自我參照。指回第一頁會讓後面幾頁的商品連結比較難被抓到。
  3. 測試站與正式站互指。把正式站整站複製到測試環境時,canonical 一起被複製過去。測試站的 canonical 指向正式站看似無害,但反向的情況——正式站指向測試站——會讓整站有掉出索引的風險。上線前全站掃一次。
  4. 用 canonical 處理多語系。中文頁的 canonical 指向英文頁,等於告訴搜尋引擎中文頁不用收。多語系要用 hreflang,canonical 各自指自己。
  5. 由 JavaScript 動態寫入。有些前端框架在渲染後才插入 canonical。搜尋引擎多半能處理,但多了一層不確定;更麻煩的是原始 HTML 裡已經有一個,JS 又加一個,變成兩個。
  6. canonical 和 301 混用。同一個網址既設了 canonical 指向 B,伺服器又 301 轉去 C。訊號互相打架,結果難以預測。
一排金屬檔案櫃抽屜,象徵搜尋引擎的索引需要一份明確的對照,才知道該把哪個網址歸檔為正本

Photo by Maksym Kaharlytskyi on Unsplash

canonical、301、noindex 該用哪一個

這三個工具經常被混用。判斷標準其實很單純:看那個網址你還要不要留著給人用。

情境 該用 原因
舊網址不再需要,內容搬到新網址 301 轉址 訊號最明確,使用者也會被帶到正確的頁
兩個網址都要能開(追蹤參數、排序參數) canonical 頁面還要用,只是不希望被分開計算
站內搜尋結果頁、購物車、會員中心 noindex 本來就不該出現在搜尋結果
參數版本數量多到吃掉抓取預算 canonical 搭配 robots.txt 先指定正本,再減少無意義的抓取
內容被其他網站轉載 請對方加跨站 canonical 讓分數回到原始出處

要提醒一點:canonical 和 robots.txt 封鎖不要同時套在同一個網址上。被 robots.txt 擋住的頁面,搜尋引擎讀不到裡面的 canonical,等於白設。

怎麼驗證設對了

設完不要只看程式碼,要看搜尋引擎實際怎麼判讀。四個步驟:

  1. 看原始碼。在頁面上按右鍵檢視原始碼,搜尋 canonical,確認只出現一次、網址寫得完整。前十個最重要的頁面都手動看一遍。
  2. 用 Search Console 網址審查。輸入網址後展開「索引」區塊,比對「使用者宣告的標準網址」與「Google 選擇的標準網址」。不一致就代表你的宣告沒被採用,通常是內容差異,或指向了不可索引的頁。
  3. 掃全站。用爬取工具(例如 Screaming Frog 的免費版,可掃數百個網址,一般中小企業官網多半夠用)把全站的 canonical 匯出成表格,排序後異常值會自己跳出來——例如一堆不同頁面指向同一個網址。
  4. 排程複查。換版型、裝新外掛、改購物車設定之後重新掃一次。canonical 是最容易被外掛覆寫的設定之一。

今天可以先做的三件事

不需要整站大改,按順序處理就好。

第一,先確認首頁與前五個主要頁面的 canonical 是自我參照。如果發現內頁全部指向首頁,這就是當下最優先的修正項,其他都可以等。

第二,到 Search Console 的「頁面」報表,把被標為「重複」的網址清單匯出來。看它們是從哪裡長出來的——參數、斜線、還是 www。找到源頭,一次處理一類,比逐頁改快得多。

第三,把 http 與非 www 版本的 301 轉址設好。這是一次性的伺服器設定,做完就少掉一批重複來源,比任何標籤都直接。

canonical 標籤的價值不在於讓排名往上衝,而在於讓已經做好的內容不要白白漏掉分數。對多數中小企業官網來說,這類「把漏洞補起來」的工作,投報率往往比再寫十篇新文章來得高。

想把這些做到你的網站上?

不論是快速上線的模板建站、客製官網或後台系統,留個訊息,我們會回你「能做+報價+時程」。

加 LINE 詢問