開場:所以,重定向和 Canonical 到底差在哪?
OK,今天來弄懂這個。重定向(Redirect)跟 Canonical URL(標準網址)。這兩個東西常常一起出現,尤其是在處理 SEO 的「重複內容」問題時。 但它們根本不是同一回事。一個是強制命令,一個是溫柔建議。用錯了,網站的 SEO 權重會被分散,排名往下掉。 簡單講,就是跟搜尋引擎溝通的方式不一樣。
我自己的筆記習慣是,先把這兩個東西想像成生活中的場景。一個是搬家,另一個是指定分身裡的本尊。這樣比較好記。
先說結論:一個是搬家通知,一個是指定本尊
301 永久重定向 (301 Redirect):這就像是你家永久搬遷了。 你在舊家門上貼了個大大的公告:「我搬到新地址了,以後請直接去那裡找我。」所有訪客(使用者)和郵差(搜尋引擎爬蟲)都會被直接帶到新家。舊家地址等於作廢,所有信件、包裹(SEO 權重、連結價值)都會自動轉寄到新家。 這是強制性的,沒有商量餘地。
rel="canonical" 標籤:這比較像... 你有很多長得很像的雙胞胎兄弟姊妹,但你才是本尊。當有人問 Google:「誰才是真正的你?」你就透過這個標籤指著自己說:「是我啦!」 那些長得很像的頁面,例如因為 UTM 參數、篩選功能或行動版產生的不同網址,但內容都一樣的頁面,都可以繼續存在,使用者也能看到。 但你只是「建議」Google:「嘿,這些頁面的功勞(排名訊號)都算在我頭上就好。」Google 通常會聽,但不是百分之百。 說到底,它還是一個信號,不是命令。
Google 到底怎麼看這兩件事?
從搜尋引擎的角度來看,這兩者傳遞的「信號強度」完全不同。Google 官方文件有提到,重定向是「強烈信號」,而 `rel="canonical"` 雖然也是強烈信號,但 Sitemap 只是「微弱信號」。 這點很重要。強烈代表 Google 會優先採納。
當 Google 爬蟲遇到 301 重定向,它會理解成「舊的 URL 已經永久失效,以後請更新索引,改用新的 URL」。 這是一個非常明確的指令。而且,大部分的連結權重 (Link Equity) 都會被轉移到新網址。
但遇到 Canonical 標籤,Google 的反應比較像是:「喔,了解了。你建議我把這個頁面當作主要版本。」 在大多數情況下,Google 會整合這些重複頁面的信號到你指定的標準網址上。 但如果 Google 覺得你亂標,例如 Canonical 指向的頁面內容跟當前頁面差太多,它可能會直接忽略你的建議,自己選一個它認為最適合的版本。 所以說,這是一個信任遊戲。
還有一個關鍵是使用者體驗。301 Redirect 會直接改變瀏覽器上的網址,使用者會被帶到新頁面。 但 Canonical 標籤對使用者是完全透明的,他們停留在哪個網址,瀏覽器就顯示哪個網址,完全不會察覺背後有 SEO 的操作。
實戰場景:什麼時候用哪個?
好了,理論講完,直接看表格最快。這是我整理的決策筆記,什麼情況該用哪個,一目了然。
| 判斷依據 | 301 重定向 (Redirect) | Canonical 標籤 |
|---|---|---|
| 使用情境 | 舊頁面真的「死掉了」,完全不想讓任何人看到。像是網站改版換網址、HTTP 轉 HTTPS、產品下架。 | 頁面們都「活著」,也都需要被使用者看到,只是想跟 Google 說誰是老大。例如,商品頁有多種顏色規格、有 UTM 參數的行銷網址。 |
| 對使用者的影響 | 使用者會被強制帶到新網址,瀏覽器上的 URL 會變。 蠻直接的。 | 使用者完全沒感覺,URL 不會變。 他們看的是 A 頁面,但背後你可能跟 Google 說 B 頁面才是正宗。 |
| 對搜尋引擎的強度 | 超級強烈!是「命令」。Google 官方都說是強烈信號,基本上一定會遵守。 | 算強烈,但只是「建議」。Google 通常會聽,但如果它覺得你的建議很瞎(比如內容完全不同),它有權不理你。 |
| 權重轉移 | 絕大部分的連結權重 (PageRank) 會被轉移到新頁面。 幾乎是無損搬家。 | 也是為了集中權重,把分散在各分身頁面的信號,全部灌給本尊頁面。 |
| 實作難度 | 通常需要動到伺服器設定 (.htaccess) 或主機後台,對新手來說比較麻煩一點。 | 相對簡單,只要在 HTML 的 區塊加一行程式碼就好。 很多 CMS 系統(像 WordPress)都有外掛可以輕鬆搞定。 |
常見的坑:別這樣亂用
講幾個我踩過或看過的雷。這比搞懂定義還重要。
- Redirect Chain(重定向鏈):A 轉到 B,B 又轉到 C... 這種連環轉址超浪費檢索預算,而且每轉一次,權重就可能耗損一點。Google 爬超過大概 5-10 次可能就不想理你了。 要盡量讓重定向一步到位。
- Canonical 指向錯誤的頁面:最常見的就是 Canonical 指到一個 404 頁面,或是也設了 noindex 的頁面。這等於是跟 Google 說:「我的本尊頁面不存在」,超蠢的。
- 內容差異太大的頁面互指:如果 A 頁面是講「蘋果」,B 頁面是講「橘子」,你卻在 A 頁面設定 Canonical 指向 B,Google 只會覺得你在亂搞,然後大概率會忽略這個設定。
- HTTP/HTTPS 混用:網站已經是 HTTPS 了,但 Canonical 卻還指向舊的 HTTP 版本。這會讓 Google 感到困惑。 應該統一版本,最好是搭配 301 重定向,將所有 HTTP 的流量都導到 HTTPS。
所以到底哪個比較「強」?
回到最初的問題。如果只論「強制力」,那 301 重定向絕對是贏家。 它是直接釜底抽薪,讓舊網址從此消失在使用者和搜尋引擎的視野中。Canonical 則是一種更細膩、更具彈性的管理方式,它允許重複頁面繼續為不同目的服務(例如行銷追蹤),同時又能集中 SEO 權重。
所以沒有誰比較好,只有哪個比較適合你的當下情境。 關鍵在於,你到底想不想讓使用者或 Google 再看到「舊的」或「重複的」那個網址。如果答案是「完全不想」,那就用 301。如果答案是「頁面要留著,但希望 Google 把功勞算在主頁上」,那就用 Canonical。
最後,Google 官方其實也說,就算你沒設定,它們也會自己試著找出標準網址。 但...你真的敢把網站的命運完全交給演算法嗎?我自己是不敢啦,能自己控制的,還是自己來最保險。
換你說說看:你遇過最頭痛的重複內容情境是什麼?最後是用 301 還是 canonical 解決的?在下面留言分享一下你的實戰經驗吧!
