Albert's SEO Note
輸入關鍵字開始搜尋

301、302、Canonical 怎麼選,三種網址處理方式的實戰差異

3 個 SEO 網址處理原則:錯誤轉址會導致排名歸零。正確設定 301 302 canonical 才能有效傳遞權重並解決重複內容。301 適用永久搬家且不折損 PageRank,302 僅限短期測試保留舊網址索引,Canonical 則用來收斂多參數網址排名訊號。精準掌握技術細節確保改版流量穩定。

Albert · · 18 min read
301、302、Canonical 怎麼選,三種網址處理方式的實戰差異

本文重點

  • 301 轉址為網域搬家標準做法,官方證實不再折損 15% 權重,能將 PageRank 完整轉移至新網址。
  • 302 僅適用短期活動導流,搜尋引擎會保留舊網址索引。若誤用長達數月,將引發嚴重的排名波動與索引混亂。
  • Canonical 能解決多參數網址重複問題,將分散的權重收斂至單一標準頁面,有效避免浪費爬取預算。
  • Canonical 支援跨網域宣告。授權轉載時加上標籤,能確保權重歸於原創網站,防止排名被大型平台取代。

在網站改版、商品上下架或多重參數產生的重複內容情境中,正確判斷何時該用 301 302 canonical 是 SEO 人員的必修課。選錯處理方式不僅會導致索引混亂,更可能讓累積已久的排名權重瞬間歸零。這篇文章將從技術實作到策略選擇,帶你釐清這三種網址處理方式的實戰差異。

一、為什麼網址處理是 SEO 的隱形地雷

網址處理不當是導致網站流量流失最常見的隱形地雷。搜尋引擎將每一個獨立的 URL 視為一個實體,當網址發生變動或存在多個相似網址時,如果沒有明確指示,Google 就會自行猜測,這往往會導致爬取預算浪費與排名分散。

在處理重複內容 SEO 時,系統必須明確知道哪一個網頁才是應該被索引與排名的「標準版本」。如果不主動設定轉址或標準網址標籤,搜尋引擎可能會選擇一個你不期望的 URL 顯示在搜尋結果中,甚至因為內容高度重複而降低該頁面的整體評價。

二、301 永久轉址的適用情境與權重傳遞

301 轉址(Moved Permanently)是明確告訴搜尋引擎該網址已「永久」移動到新位置,並會將舊網址的 SEO 權重與排名訊號完全轉移給新網址。這是處理永久性網址變更最安全且標準的做法。

(一)網域搬家與 URL 重構的標準做法

當網站進行 HTTP 升級至 HTTPS、更換全新網域、或是因為網站架構調整而改變 URL 結構時,都必須使用 301 永久轉址。在執行內部網址優化(詳見 on-page-seo-checklist)並修改了文章或產品的 Slug 後,舊網址必須 301 指向新網址,否則原本收藏舊網址的使用者會遇到 404 錯誤,Google 也會將新網址視為一個毫無權重的全新頁面。

(二)301 轉址是否會折損權重的歷年演變

根據 Google 官方 Search Central 的歷年說明,早期透過 301 轉址確實會流失約 15% 的 PageRank 權重。然而,自 2016 年起,Google 官方人員已明確證實,任何 30x 系列的轉址都不再折損 PageRank。這意味著你可以放心地為了優化網站架構而進行 301 轉址,不必擔心單純因為轉址動作而遭受排名懲罰。

(三)不同伺服器環境的 301 設定範例

不同的伺服器架構有對應的轉址實作方式。以下是三種常見環境的設定範例:

Apache (.htaccess)

RewriteEngine On
RewriteRule ^old-page\.html$ /new-page.html [R=301,L]

Nginx (nginx.conf)

location = /old-page.html {
    return 301 /new-page.html;
}

Cloudflare (Page Rules) 在 Cloudflare 控制台設定 Page Rule,選擇「Forwarding URL」,狀態碼選擇「301 - Permanent Redirect」,並輸入目標網址。這種在 CDN 層級處理轉址的方式,能大幅減少源伺服器的負載。

三、302 暫時轉址的合理用途與誤用風險

302 暫時轉址(Found / Moved Temporarily)用於短期變更,搜尋引擎會保留舊網址的索引,不會將權重永久轉移給新網址。這意味著在搜尋結果中,舊網址依然會維持原有的排名狀態。

(一)行銷活動與地區導流的合理用途

當你需要進行 A/B 測試、將首頁流量暫時導向特定節慶促銷頁面,或是根據使用者的 IP 位置將其導向特定語言或地區版本的網站時,暫時轉址是唯一的正確選擇。在這些情境下,你不希望短期的活動頁面取代了主頁在搜尋引擎中的永久索引地位。

(二)把 302 當 301 用會發生什麼事

許多開發者在實作轉址時,因為框架預設值而誤用 302,這也是最常被問到 301 跟 302 差別的關鍵痛點。如果將本該永久搬家的網址設定為 302,短期內 Google 不會將權重轉移到新網址,新網址將難以獲得排名。若 302 狀態持續存在過久(通常數個月以上),Googlebot 最終可能會自行判斷這其實是一個永久變更,並將其視同 301 處理,但這段過渡期會造成嚴重的排名波動與索引混亂。

(三)307 與 302 轉址的微妙差異

在技術層面上,307 轉址(Temporary Redirect)是 HTTP 1.1 的標準,它嚴格要求客戶端在轉址時必須保持原本的 HTTP 方法(例如原本是 POST 請求,轉址後也必須是 POST)。在 SEO 領域,Googlebot 將 307 與 302 視為完全相同的暫時轉址訊號,因此在排名影響上兩者並無二致。

四、當轉址不適合但內容重複時的 Canonical 處理策略

當你必須保留多個網址供使用者存取,但這些網頁的內容高度相似時,Canonical 標籤是告訴搜尋引擎「哪一個才是標準版本」的最佳解法。它不會干擾使用者的瀏覽體驗,僅在背景向爬蟲傳遞訊號。

(一)rel canonical 寫法與放置位置

標準的 rel canonical 寫法必須放置在網頁 HTML 原始碼的 <head> 區塊內,或者透過 HTTP 回應標頭(HTTP Header)來宣告。

HTML 寫法範例:

<link rel="canonical" href="https://example.com/standard-page/" />

HTTP Header 寫法範例(適合 PDF 等非 HTML 檔案):

Link: <https://example.com/standard-page.pdf>; rel="canonical"

注意,canonical 用法必須使用絕對路徑(包含 https:// 與網域),以避免相對路徑在多重目錄下產生解析錯誤。

(二)跨網域應用與子站合併權重

Canonical 不僅能用於站內,還能進行跨網域(Cross-domain)宣告。當你的原創文章授權給其他大型媒體平台轉載(內容聯播)時,要求對方在文章頁面加上指向你原始文章的 canonical 標籤,能確保搜尋引擎將該篇內容的排名權重歸功於你的網站,避免你的原創頁面反而被權重較高的轉載平台擠下排名。

(三)電商商品頁多參數 URL 的 canonical 收斂技巧

電商網站經常因為排序、篩選、追蹤碼(UTM)等功能產生大量動態網址。例如:

  • https://shop.com/shoes?color=red
  • https://shop.com/shoes?sort=price_asc
  • https://shop.com/shoes?utm_source=fb 這些網址內容幾乎相同,若不處理會嚴重消耗爬取預算。正確的做法是在所有帶有參數的變體頁面中,將 canonical 標籤統一指向乾淨的標準網址 https://shop.com/shoes,藉此將分散的權重收斂至單一頁面。

五、301 302 canonical 三者的實戰比較表

選擇網址處理方式的核心在於「是否需要保留舊網頁給使用者看」以及「權重該如何傳遞」。以下整理三者的關鍵差異:

處理方式使用者是否能看到舊網址?搜尋引擎索引狀態SEO 權重傳遞典型實戰場景
301 永久轉址否(強制跳轉至新網址)舊網址被移除,索引新網址完整傳遞至新網址網域更換、刪除舊頁面並導向新頁面、HTTP 轉 HTTPS
302 暫時轉址否(強制跳轉至新網址)保留舊網址索引權重留在舊網址季節性活動、A/B 測試、商品暫時缺貨
Canonical 標籤是(使用者可正常瀏覽)傾向索引標準網址(由 Google 最終決定)變體網址權重集中至標準網址帶參數的電商網址、跨平台授權文章、多分類下同商品

六、轉址與標準網址的常見誤用情境

錯誤組合轉址與標準網址標籤,會讓搜尋引擎收到衝突的訊號,最終導致指令被忽略,甚至引發索引異常。

(一)301 與 canonical 同時下會發生什麼事

如果你將網頁 A 透過 301 轉址到網頁 B,但網頁 B 的 canonical 標籤卻又指回網頁 A,這會對爬蟲造成邏輯上的無限迴圈。遇到這種衝突訊號時,Google 通常會直接忽略 canonical 標籤,並自行判斷該如何索引,這會完全破壞你原本規劃的權重傳遞策略。

(二)指向 404 或 noindex 頁面的錯誤設定

將變體頁面的 canonical 指向一個已經被刪除(回傳 404)或設定了 noindex 的頁面是嚴重的技術錯誤。這等於告訴 Google:「請把我合併到那個不需要被排名的頁面」。結果將導致所有變體頁面與標準頁面一同從搜尋結果中消失。

(三)把標準版指向變體版的反向錯誤

在處理電商多規格商品時,有時會發生工程師邏輯寫反,將主商品頁 product-A 的 canonical 指向了帶有參數的變體頁 product-A?color=blue。這會導致乾淨的 URL 無法獲得排名,搜尋結果中反而出現帶有一長串參數的網址,降低使用者的點擊意願。

七、使用 GSC 與開發者工具驗證網址處理狀態

實作完成後,必須透過伺服器回應標頭與 Google Search Console 來驗證搜尋引擎是否正確接收到訊號。不要單憑瀏覽器畫面跳轉就認為設定正確。

(一)GSC URL 檢查工具看到的 canonical 判斷

在 Google Search Console(GSC)的 URL 檢查工具中,輸入你的網址並查看「網頁索引建立情形」區塊。這裡會顯示兩個關鍵欄位:

  • 使用者宣告的標準網址:你透過標籤寫入的 URL。
  • Google 選擇的標準網址:Google 爬蟲最終決定採用的 URL。 如果這兩者不一致,代表 Google 認為你宣告的標準網址不合理(例如內容差異過大),並選擇了另一個它認為更適合的網址。

(二)用 curl 指令查看 HTTP 狀態碼與 Location 標頭

在終端機使用 curl -I 指令是確認轉址狀態最精準的方法,它能直接讀取伺服器的 Header,不受瀏覽器快取干擾。

curl -I https://example.com/old-page

你應該要明確看到 HTTP/2 301HTTP/1.1 301 Moved Permanently,以及 Location: https://example.com/new-page 的標頭資訊。

(三)透過 DevTools 確認轉址鏈

開啟瀏覽器的開發者工具(DevTools),切換到 Network(網路)面板,並勾選「Preserve log」(保留紀錄)。接著輸入舊網址,你可以完整觀察到網址跳轉的歷程,藉此檢查是否發生了多次連續跳轉(Redirect Chain),這對爬取預算是極大的浪費。

八、FAQ

(一)Q1: 轉址 chain(A→B→C)會被 Google 怎麼處理?

Googlebot 在一次爬取過程中,最多只會跟隨 5 次連續轉址。如果轉址鏈過長,爬蟲會中斷跟隨,導致最終目標網址無法被正確索引與傳遞權重。最佳實務是直接將 A 指向 C,並將 B 也指向 C,徹底消除中間的轉址節點。

(二)Q2: 站內結構大改要先 301 還是先改 sitemap?

兩者應該同步進行(詳見 sitemap-implementation-gsc)。當你設定好 301 轉址後,建議在新的 Sitemap 中提交新網址,同時暫時保留舊網址的 Sitemap 並提交給 GSC。這樣能強制 Googlebot 去爬取舊網址,從而更快發現 301 轉址訊號,加速整體權重的轉移過程。

(三)Q3: 暫時下架的商品頁要 302、404 還是 410?

取決於商品是否會重新上架。如果只是短期缺貨且未來會補貨,請保持 200 狀態碼並在頁面標示「缺貨中」,或使用 302 暫時轉址到同類別的其他商品。如果商品永久停產且不再販售,則應該直接回傳 404 或 410(Gone),讓搜尋引擎將該頁面從索引中移除。

(四)Q4: Canonical 指向自己(self-canonical)有用嗎?

非常有用,且是 Google 強烈建議的做法。在每一個標準頁面上加上指向自己的 self-canonical,能有效防止有心人士惡意加上參數(如 ?replytocom= 或 UTM 參數)來產生大量重複內容,確保無論網址如何被附加參數,核心權重始終回歸該頁面本身。

(五)Q5: 行動版獨立網域 m.example.com 還在用嗎?

在響應式網頁設計(RWD)成為主流的今天,行動版獨立網域已經極少使用。但如果你的網站仍在使用 m. 子網域,必須嚴格遵守雙向標記規則:桌面版頁面使用 rel="alternate" 指向行動版,而行動版頁面則必須使用 rel="canonical" 指向桌面版,否則會引發嚴重的重複內容災難。

Share
Written by

張家偉 Albert Chang

行銷領域工作五年,其中四年幾乎每天都在想 SEO 的事。這裡寫我的筆記——不追流量、不堆關鍵字,只寫自己想讀的文章。

Related