301、302、307、308 轉址差在哪?網站搬家與活動導流怎麼選
永久搬家通常用 301,暫時活動通常用 302;若必須保留原本的 HTTP 方法,則改看 307 與 308。重點不是背代碼,而是選對實際意圖。

如果你正在比較 301、302、307、308 轉址,先記住這四句最實用的判斷:
- 301:永久變更,而且通常是一般網頁請求
- 308:永久變更,而且必須保留原本的 HTTP 方法與 request body
- 302:暫時變更,而且通常是一般網頁請求
- 307:暫時變更,而且必須保留原本的 HTTP 方法與 request body
對大多數做網站搬家、網域更換、內容改版的團隊來說,301 仍然是最常見的標準答案。但只要你處理的不是單純頁面瀏覽,而是表單送出、付款流程、API、Webhook,307 和 308 就不再是少數人才會碰到的代碼。
如果你正在做整站改版、換 CMS 或換網域,建議把這篇文章跟 網站搬家轉址檢查清單 一起看。真正影響 SEO 和活動成效的,往往不是狀態碼本身,而是整體搬家流程是否乾淨。
最短的實務版答案
你其實只是在回答兩個問題:
- 這次變更是永久還是暫時?
- 原本的 HTTP 方法要不要原封不動保留?
整理成表格就是這樣:
| 目的 | 需要保留方法與 body 嗎? | 建議選擇 |
|---|---|---|
| 永久搬家的一般頁面 | 通常不用 | 301 |
| 永久搬移 API 或表單端點 | 需要 | 308 |
| 暫時活動頁、維護頁、短期測試 | 通常不用 | 302 |
| 暫時搬移 API 或表單端點 | 需要 | 307 |
[!TIP] 如果你轉的是一般網站頁面,不要把問題搞得太學術。大多數團隊只要記得「永久用 301、暫時用 302」就能避免 80% 的錯誤。
301 是什麼?
301 Moved Permanently 代表「這個資源已經長期搬到新位置」。
常見使用情境:
/old-page永久換成/new-page- 從
old-brand.com換成new-brand.com - 把重複網址合併到唯一 canonical URL
- 全站從 HTTP 切到 HTTPS
- 舊商品頁、分類頁或部落格路徑改版後長期保留新網址
為什麼 301 這麼常見?
- 瀏覽器對它的支援最完整
- SEO 團隊最熟悉它
- 它符合多數網站搬家、內容整併、網址規範化的意圖
- 對部落格、文件、產品頁、活動頁搬移來說最直觀
如果你做的是典型網站搬家,301 幾乎就是預設值。Google 也在 網站搬家與網址變更文件 中明確提到,搬家時要讓舊網址清楚指向新網址。
如果搬家同時還要保留舊路徑與 UTM 參數,建議接著看 換網域時如何保留路徑與 UTM 參數。
302 是什麼?
302 Found 代表「暫時搬去別的地方,但原網址之後還會回來,或至少它仍是主要位置」。
常見使用情境:
- 短期促銷頁導流
- 活動報名頁暫時替換首頁
- 系統維護期間先把部分流量導去公告頁
- 可隨時回滾的 A/B 測試
- 短期廣告活動導到專用 landing page
302 最常見的問題,不是技術,而是管理。
很多團隊會因為「先上線再說」而把永久搬家先設成 302,結果半年後還沒改回來。這種情況很常發生在品牌改名、舊站轉新站、產品頁重構等專案。如果你知道它其實不會回來,就不要用暫時代碼假裝它是暫時的。
307 是什麼?
307 Temporary Redirect 是保留 HTTP 方法的暫時轉址。
它的重點不是「比較新」,而是它對 request semantics 更嚴格。也就是說,如果原始請求是 POST,那被導走之後依然會是 POST。
這很重要的情境包括:
- 表單送出暫時切到備援端點
- API 暫時換到另一個版本或區域節點
- 結帳流程維護時把請求導到暫時路由
- 某些 App 或 service endpoint 暫時分流
對單純頁面瀏覽來說,307 不一定比 302 更「好」。但只要請求不是單純 GET,你就要更小心。
308 是什麼?
308 Permanent Redirect 是保留 HTTP 方法的永久轉址。
常見使用情境:
- API 版本正式搬移
- 長期更換 Webhook 接收端點
- 永久調整表單或應用程式提交路徑
- 服務端端點整併,但不能把 POST 變成 GET
如果你是做內容站、品牌官網、部落格、說明文件,308 不一定會比 301 帶來額外好處。但如果你處理的是 API、後台整合、支付流程或表單提交,308 的訊號會比 301 更精準。
怎麼快速做選擇
選 301,當你符合這些條件
- 這次變更是永久的
- 使用者主要是瀏覽一般頁面
- 你在做網站搬家、網域更換、SEO 轉址或內容整併
選 302,當你符合這些條件
- 這次變更是暫時的
- 你之後還可能撤回或改掉規則
- 使用者主要是瀏覽一般頁面
選 307,當你符合這些條件
- 這次變更是暫時的
- 原本的表單或 API 方法必須保留
選 308,當你符合這些條件
- 這次變更是永久的
- 原本的表單或 API 方法必須保留
幾個常見實例
例 1:整站換網域
https://oldbrand.com/pricing -> https://newbrand.com/pricing這種情況用 301。
例 2:首頁暫時導去候補名單頁
https://yourbrand.com -> https://yourbrand.com/waitlist如果活動結束後首頁會恢復,請用 302。
例 3:API 版本永久搬移
POST /api/v1/orders -> POST /api/v2/orders如果方法必須保留,而且不是短期調整,請用 308。
例 4:結帳流程暫時切到維護頁面
POST /checkout -> POST /checkout-maintenance這種短期調整,且不能改變 request 行為時,用 307 較安全。
大家最在意的 SEO 問題
302 會不會傳遞 SEO 訊號?
真正應該問的不是「302 會不會傳」,而是:你的轉址代碼,有沒有誠實反映實際意圖?
Google 多年來都表示,搜尋引擎能理解不同類型的轉址,但你仍然應該用最符合現實的代碼。在實務上:
- 如果變更是永久的,用 301 或 308
- 如果變更是暫時的,用 302 或 307
不要幻想用錯誤代碼「騙」搜尋引擎。長期來看,這通常只會讓搬家策略與後續維護變得更混亂。
很多人忽略的效能問題
比起代碼本身,整體轉址架構更常拖慢網站。
一個再正確的 301,只要它造成下面這些情況,體驗還是會很差:
- 三層以上的轉址鏈
HTTP -> HTTPS -> www -> 最終網址- 行動版與桌機版導流規則不一致
- 站內還有大量內部連結指向舊網址
所以你不只要選對代碼,還要檢查整條導流路徑。想快速驗證時,可以直接用 轉址檢查工具 看完整 hop。
如果你的基礎設施歷史包袱很多,也建議同步排查 轉址鏈與轉址迴圈。
在 UrlEdge 裡該怎麼用
如果你是用 UrlEdge 管理:
- 網站搬家
- 品牌網域整併
- 文件或部落格路徑調整
- 行銷活動頁切換
那通常可以這樣理解:
- 長期網址調整,用 Permanent 301 Redirects
- 可回滾的短期變更,用 Temporary 302 Redirects
- 需要政策與團隊共識時,先把 轉址類型文件 看完
如果你處理的是 API 或表單,而不是一般頁面,那在規則上線前就應該把「是否要保留方法」寫進需求說明。這類問題真正出事時,通常不是 SEO 掉了,而是應用程式流程直接壞掉。
最常見的錯誤
用 302 做永久搬家
這是最常見的錯誤,尤其發生在忙著上線的團隊。規則先能跑就好,後面沒人回頭整理,最後暫時變永久。
用 301 做短期活動頁
如果你本來就知道這是短期活動、快閃頁、短期 A/B 測試,就不要硬用永久代碼。否則你日後回滾的成本會提高。
忽略 request 方法
只要不是單純頁面瀏覽,307 和 308 就不能被當成冷門代碼。
改對狀態碼,卻沒處理轉址鏈
一條乾淨的轉址,永遠比三條技術上都「沒錯」的轉址更好。
FAQ
308 對 SEO 會比 301 更好嗎?
不一定。對一般頁面搬家來說,301 仍然是最常見也最實務的選擇。只有當方法保留是明確需求時,308 的優勢才會變得重要。
307 可以當成新版 302 嗎?
不能完全這樣理解。307 的重點是更嚴格地保留原本的 HTTP 方法與 body。
A/B 測試可以用 302 嗎?
可以。暫時測試、短期導流、本來就可能改目的地的情境,302 很常見。
部落格或文件搬家通常該用哪一種?
大多數情況下用 301。再搭配完整轉址對照表、站內連結更新與 hop 驗證,效果通常比只討論代碼更重要。
相關 UrlEdge 指南
權威參考資料
相關文章
查看全部
Firebase Dynamic Links 替代方案:App 與活動連結要怎麼搬?
Firebase Dynamic Links 已於 2025 年 8 月 25 日停止服務。若你還有 App 安裝導流、QR Code、廣告或 EDM 連結依賴舊網址,現在該把需求拆清楚再重建。

換網域時,怎麼保留路徑與 UTM 參數
網域轉址如果只導到首頁,會弄丟深層頁、活動網址與追蹤參數。用保留路徑、保留 query string 與一跳規則,讓舊流量安全抵達新網域。