Favicon02

301 轉址是什麼?SEO 影響、設定方法與必要條件

網站換網址後,舊連結該怎麼辦?從永久轉址的原理、目的頁條件,到 WordPress、Apache、Nginx 設定與 HTTP 檢查,掌握搬遷時需要注意的 SEO 訊號。

你把網站文章換了新網址,內容明明還在,讀者點進以前分享的連結,卻只看到找不到網頁。這時需要處理的,就是如何讓舊連結找到新位置;如果這次搬遷是永久的,通常就會用到 301 轉址。

設定好轉址,讀者才能順著舊網址抵達新頁面,搜尋引擎也能取得網址已搬家的訊號。不過,選錯目的頁、舊網域到期,或新頁不讓 Google 索引,都可能讓這件事出問題。

接下來,我們從一組新舊網址開始,了解永久轉址如何運作、對 SEO 有什麼意義,以及你可以怎麼設定、檢查。


301 轉址是什麼?先看舊網址怎麼找到新頁面

301 轉址(301 redirect)是一種永久重新導向:當瀏覽器或搜尋引擎請求舊網址時,伺服器回傳 HTTP 狀態碼 301 Moved Permanently,並透過 Location 回應標頭,指出資源的新位置。這是 MDN 對 HTTP 301 的定義。

例如,你原本的文章放在 https://example.com/old-page/,後來永久改到 https://example.com/new-page/。設定完成後,讀者點舊連結,瀏覽器會先收到搬遷通知,再向新網址發出請求,最後顯示新頁面。

這段流程可以寫成:舊網址 → 301 與新位置 → 新網址 → 200 正常回應。下面是教學示意,並非特定網站的實測結果:

GET https://example.com/old-page/

HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page/

GET https://example.com/new-page/

HTTP/1.1 200 OK

HTTP 狀態碼是伺服器對請求結果的回覆;上面的 200 表示請求成功。Location 則是回應標頭中的欄位,用來告訴瀏覽器下一站在哪裡。

因此,只看見畫面跳到另一頁,還不能確認你做的是 301 轉址。網頁也可能透過其他狀態碼或 JavaScript 跳轉,必須查看實際的 HTTP 回應才能分辨。

舊網址回傳301與Location,再由新網址回傳200的流程

301 轉址為什麼對 SEO 重要?

網站換了網址,以前的文章、書籤、社群貼文和外部連結,不會跟著自動改字。301 轉址能讓這些舊入口繼續通往對應內容,也讓搜尋引擎知道,新網址應該承接這次搬遷。

如果你剛開始接觸網站優化,可以先看SEO 入門教學,了解搜尋引擎如何理解網站,再回來檢查搬遷時需要處理的訊號。

Google 將永久重新導向視為選擇新網址作為標準網址的強訊號。標準網址(canonical URL),就是 Google 在相同或相近內容的多個網址中,選擇作為代表的那一個。相關說明可見 Google 的重新導向文件。

舉例來說,一篇教學原本有外部網站連到舊網址,搬家後仍保留相同主題的完整內容。永久轉址能協助 Google 理解兩個網址的關係,將相關搜尋訊號整合到新位置。

這不代表設定後排名一定不變,也沒有每次固定保留幾成成效的保證。Google 仍要重新抓取、處理網址;內容、內部連結與網站其他變動,也會影響搬遷後的搜尋表現。如果你要處理整站改版,可接著看網站搬家與網站改版的 SEO 注意事項。

Google Search Central 也提供了〈Processing 301 redirects〉影片,可以作為永久轉址主題的延伸參考:

在 YouTube 觀看 Google Search Central 官方影片:Processing 301 redirects


301 轉址與 302 有什麼差別?

選擇永久或暫時轉址,先看原網址未來是否還要恢復使用。已確定搬到新位置,就使用永久轉址;只是短期調整、之後會恢復原頁面,則使用暫時轉址。

類型 適用情況 Google 搜尋的主要理解
301/308:永久 文章永久改網址、整站換網域 將目的網址作為標準網址的強訊號
302/307:暫時 短期調整,預計恢復原網址 以保留原網址為方向,不傳達永久搬遷意圖

例如,文章只是因為短期維護,先把讀者送到服務說明頁,就不適合直接宣告永久搬家。相反地,舊文章網址確定退休,才是永久轉址的典型情境。

301 與 308 都能表達永久搬遷;如果是表單、付款或 API 請求,還要考慮請求方法。301 可能讓原本的 POST 改成 GET,308 則要求保留方法。本文的設定範例以一般內容頁的 GET 瀏覽為限,其他流程應交由開發者確認。

另外,canonical 標籤本身不會把讀者送到另一頁;如果舊網址需要繼續開放閱讀,只是要指出內容的代表版本,才需要另外判斷標準網址 canonical 的設定方式。



301 轉址需要具備哪些條件?

開始設定 301 轉址前,要先確認目的頁合適,而且舊網址確實有辦法送出搬遷通知。以下幾項條件,會直接決定轉址能否正常運作,以及搜尋引擎能否理解這次搬遷。


新舊頁面要有對應關係

目的頁應該能接住讀者原本要找的內容。最容易判斷的情況,是同一篇文章改了網址;如果是合併文章,則要確認新頁確實包含舊頁原本要回答的問題。

例如,兩篇不同版本的運費說明,整理成一篇完整的新運費頁,可以評估把舊頁轉過去。但刪除一篇耳機教學後,直接把讀者送到完全無關的首頁,就沒有解決原本的需求。

Google 提醒,大量舊網址導向不相關的單一頁面,可能被視為 soft 404:雖然伺服器沒有回傳正式的 404,頁面卻無法提供原本應有的內容。

沒有合適替代頁時,讓舊頁正確回傳 404 或 410,比硬塞一個轉址目的地合適。詳見 Google 網站搬遷指南。


你必須能控制舊網址,而且舊網址仍可連線

301 轉址是由舊網址接到請求後回覆,因此你需要有舊站、主機、CDN 或平台的相關設定權限。只在新網站新增一條規則,無法讓一個完全不受你控制的舊網站回應轉址。

如果換了網域,舊網域就得繼續持有,並透過 DNS,也就是網域名稱的解析設定,指向能提供轉址的服務。

舊網址使用 HTTPS 時,還要維持有效的 HTTPS 憑證;否則瀏覽器可能在取得轉址回應前,就先遇到憑證錯誤。

這不一定表示要長期保留整套舊網站,但接收舊網址、回傳轉址的服務必須持續可用。網域、DNS、憑證及伺服器,應一起列入維護清單。


新頁面要正常,而且能被索引

作為搜尋結果新位置的頁面,應正常回傳 200,提供對應內容,並允許搜尋引擎抓取與索引。新頁如果仍保留測試站的 noindex,就是在告訴搜尋引擎不要把它放進搜尋結果。

新頁的 canonical 也要與搬遷方向一致。以本文「新頁是唯一正式版本」的情況來說,新頁應指向自己的新網址,不要一面把舊頁轉過來,另一面又把標準網址指回舊頁。

例如,舊的 /old-page/ 已轉到 /new-page/,新頁就應確認沒有誤留舊網址的 canonical。相關訊號的一致性,可對照 Google 標準網址設定文件。

舊網址則要讓 Google 有機會抓到轉址回應,不要先在 robots.txt 擋住舊路徑。讓舊頁從索引中被新位置取代,應靠搬遷訊號處理,不需要先用移除工具把它藏起來。


直接轉到最終位置,並持續保留

如果網址曾經改過好幾次,請把各個舊網址直接指向目前的正式位置。像是 A 轉到 B、B 再轉到 C,就是轉址鏈;A 轉到 B、B 又回到 A,則是轉址迴圈,會讓請求繞回原點。

例如,文章目前在 C,A 與 B 都已退休,就應分別設定 A → C、B → C。這樣讀者不必多繞一站,也比較容易檢查哪一條規則出了問題。

搬家後的 301 轉址也不要過早刪除。Google 建議一般至少保留一年,並盡可能維持更久;一年是搬遷建議下限,並不是到了就能自動撤除。只要還有人透過舊連結進站,保留轉址仍有實際價值。

如果這次只是想讓網址更好看,先確認修改的必要性。決定改網址前,也可以參考SEO 網址命名與結構的規劃方式,避免改完又改。

永久轉址前確認內容相關、舊網址可連線、新頁可索引;沒有替代頁時正確退役

301 轉址怎麼設定?先選你能管理的地方

設定 301 轉址,先列出「舊網址 → 新網址」的對照,不要急著輸入規則。確認新頁能開啟、內容相關,再依網站平台和自己的權限,選一種方式實作。

例如,這篇教學接下來都使用同一組對照:https://example.com/old-page/ 永久搬到 https://example.com/new-page/。這兩個是示範網址,實作時要換成你的網址。

有平台轉址功能,就從平台後台處理;使用 WordPress,可以評估轉址外掛;有伺服器管理權限,才使用 Apache 或 Nginx 設定。同一條轉址盡量集中在一個地方管理,避免不同層的規則互相影響。


方法一:使用網站平台或 WordPress 外掛

多數有轉址管理功能的平台,會要求來源網址、目的網址與轉址類型。WordPress 的 Redirection 外掛也採用這個概念;依官方新增轉址說明,來源通常填相對於網站根目錄的路徑,目的地則可以填完整網址。

  1. 先在舊網址所屬的 WordPress 安裝並啟用 Redirection,完成外掛初始化後,開啟轉址管理頁。
  2. 新增一條規則,來源填 /old-page/,目的地填 https://example.com/new-page/。
  3. 確認動作是轉往網址,HTTP 狀態碼為 301;單頁搬遷先使用一般網址比對,不必開啟正規表示式(Regex)。
  4. 儲存並啟用規則,再用舊網址檢查實際回應與最終頁面,確認這條規則確實生效。

Redirection 的大小寫、結尾斜線與查詢參數都有獨立的網址匹配選項。如果你的舊連結有 ?utm_source=... 或其他參數,要另外決定是否匹配、保留或移除,並用實際連結測試。

如果舊站已停機,請求根本到不了 WordPress,外掛也就無法接手。這時應改由能接收舊網域請求的主機或 CDN 處理,不能只把外掛裝在新站就當作完成。


方法二:Apache 使用精確路徑規則

網站使用 Apache,而且你有主機設定權限時,可以請管理者在適當的站台設定,或主機允許的 .htaccess 中加入規則。先備份原設定,確認主機允許 mod_alias 與相關覆寫權限,再修改。

RedirectMatch 301 ^/old-page/$ https://example.com/new-page/

這條規則的 ^ 和 $ 把比對範圍鎖在 /old-page/,不會把下面所有路徑一起套入。它也不會同時匹配沒有結尾斜線的 /old-page;如果舊網址兩種形式都有人使用,就要分別確認處理方式。

Apache 的 RedirectMatch 文件說明了正規表示式與適用位置。這個簡例只處理路徑;涉及查詢參數、整站搬家或既有 WordPress 重寫規則時,請管理者一併檢查,不能直接擴成全站通用設定。


方法三:Nginx 在對應站台設定

網站使用 Nginx 時,轉址通常放在接收舊網址的 server 設定中。具有管理權限的人,可以使用精確匹配的 location,回傳 301 與完整的新網址:

location = /old-page/ {
    return 301 https://example.com/new-page/;
}

其中 = /old-page/ 表示精確匹配這個路徑。修改後,請管理者先執行設定語法檢查,通過後再重新載入,最後用舊網址驗證;Nginx 的 return 文件可供對照。

這個範例沒有把原查詢參數接到目的網址。如果參數影響頁面內容或追蹤需求,要另外設計保留方式。

若你只有網站編輯權限,直接把新舊網址對照交給主機商或開發者,就比修改無法確認作用範圍的設定更容易驗收。



如何檢查 301 轉址是否設定成功?

檢查 301 轉址時,要分開看兩件事:第一,HTTP 是否真的回傳正確的搬遷通知;第二,搬過去的新頁是否符合預期,並能被搜尋引擎處理。瀏覽器能跳轉,只能證明其中一部分。


先看 301 與 Location,再看最終的 200

你可以請開發者使用 curl 查看回應標頭。下面的指令會發出一般 GET 請求,把頁面內容捨棄,只顯示回應標頭;Windows 使用 curl.exe,避免 PowerShell 將 curl 解讀成其他命令。

# Windows
curl.exe -sS -D - -o NUL "https://example.com/old-page/"

# macOS / Linux
curl -sS -D - -o /dev/null "https://example.com/old-page/"

第一份回應應出現狀態碼 301,以及指向正確新網址的 Location。接著加上 -L 跟隨轉址,查看途中每一站與最後結果:

# Windows
curl.exe -sS -L --max-redirs 10 -D - -o NUL "https://example.com/old-page/"

# macOS / Linux
curl -sS -L --max-redirs 10 -D - -o /dev/null "https://example.com/old-page/"

理想結果是一次轉到預定新網址,最後回傳 200。如果途中又出現其他 3xx,回頭檢查是否能縮短;如果最後是 404、錯誤頁或登入畫面,就還沒完成。指令選項可對照 curl 官方手冊。


用瀏覽器檢查,避免被快取誤導

不方便使用指令時,可以開啟 Chrome 開發者工具的 Network 面板,勾選保留記錄(Preserve log)與停用快取(Disable cache),保持開發者工具開啟,再輸入舊網址。

找到舊網址那一筆文件請求,查看 Headers 中的狀態碼與 Location;接著核對新網址的請求結果,並實際閱讀目的頁。Chrome Network 文件介紹了記錄與查看標頭的方式。

如果規則剛改完,瀏覽器、網站快取或 CDN 還保留舊結果,可能會讓你看到不同狀態。這時應確認各層快取,再重新測試同一組網址,並保留設定前後的結果供比對。


最後更新站內訊號,再觀察 Google

轉址確認正常後,把站內連結改成直接指向新網址,Sitemap 也更新為新的正式網址。Sitemap 是提供給搜尋引擎的網址清單,應列出你希望被發現與索引的頁面,而非繼續把已退休的舊頁當成主要入口。

接著用 Google Search Console 的網址審查確認新頁的抓取與索引狀態,並觀察新舊頁的搜尋表現。舊網址被標示為「重新導向的網頁」,可能正是預期結果;重要的是轉到哪裡,以及新頁是否正常。你也可以參考網頁索引報表的判讀方式。

Google 處理網址搬遷需要時間,不能把 HTTP 當下生效與搜尋結果更新混為一談。先排除規則、內容與索引問題,再持續觀察,不要因為隔天排名尚未穩定,就反覆更換網址。

同網域內修改文章路徑,不需要使用 Search Console 的地址變更工具;HTTP 改成 HTTPS 也不使用。

只有整站換到其他網域或子網域等適用情況,才在搬遷與轉址完成後,依地址變更工具的官方條件確認擁有權並提交。這個工具不能代替轉址本身。

轉址後依序核對301、Location、最終200、站內連結與搜尋表現

結語:先把一組新舊網址接好

301 轉址的重點,是讓舊網址永久通往合適的新位置,並讓讀者與搜尋引擎都能順利抵達。它需要正確的 HTTP 回應,也需要相關內容、持續可用的舊入口,以及一致的新頁索引訊號。

如果你正準備改網址,先列出一組新舊對照,確認目的頁內容,再選擇自己能管理的設定方式。完成後核對 301、Location、最終 200 與頁面內容,接著更新內鏈與 Sitemap,這樣才知道自己實際完成了什麼。


重點整理

301 轉址要保留多久?

Google 對網站搬遷建議一般至少保留一年,並盡可能維持更久。只要還有人使用舊連結,就有繼續保留的價值;換網域時,也要持續維護舊網域、DNS、HTTPS 憑證與接收請求的轉址服務。

301 轉址設定後,Google 多久會更新搜尋結果?

沒有適用所有網站的固定期限。HTTP 規則生效後,新請求就可取得轉址回應,但 Google 仍需重新抓取與處理新舊網址。處理速度會受到網站大小、可抓取性與伺服器狀況影響,應分開檢查 HTTP 回應與 Search Console 的索引變化。

做了 301 轉址,SEO 排名一定不會掉嗎?

不能保證。永久轉址是協助 Google 選擇新標準網址、理解搬遷與整合訊號的方式,並不承諾排名不變。新舊內容是否對應、新頁能否索引,以及搬家時的其他改動,都需要一起檢查。

沒有舊網站的管理權限,能設定 301 轉址嗎?

你需要能控制接收舊網址請求的服務,或請擁有權限的人協助。可以在舊站、主機、CDN 或平台提供的功能設定;只在新網站新增規則,無法讓不受你控制的舊網址回傳 301。

所有 404 頁面都應該做 301 轉址嗎?

不需要。舊頁有內容相關的替代頁時,才適合評估永久轉址;沒有合適替代內容,可以正確回傳 404 或 410。把大量無關舊頁全部導向首頁,可能被 Google 視為 soft 404,也無法滿足讀者原本的需求。

canonical 可以代替 301 轉址嗎?

兩者功能不同。canonical 是提出內容代表網址的訊號,不會把讀者自動帶到另一頁;301 則會回應永久搬遷,讓瀏覽器向新網址發出請求。舊網址已退休、希望讀者前往新位置時,應評估永久轉址。

Frank Chiu
Frank Chiu

SEO/GEO 顧問、行銷顧問。協助本地企業與跨國企業導入 SEO、GEO 跟行銷方案,包括:雀巢、凱基銀行、大人學、居家先生、IKEA、vocus 等。

訂閱電子報