基於SEO優化角度應該選擇301還是302重定向

關於連結重定向,即將內容移動至新位置。如果是永久性移動,需使用 301 重定向;暫時移動,則應使用 302 重定向。

但你可能會想,這很重要嗎?畢竟,使用者無法察覺 301 和 302 的區別,兩者在功能上是相同的。

答案很簡單:搜尋引擎對待 301 重定向和 302 重定向的方式不同。並且,選擇錯誤的重定向可能會導致 SEO 問題,而這些問題往往在數月甚至數年內被忽視。

在本文中,你將瞭解:

何時使用重定向

301 重定向使用場景

  • 你將永久更改網頁的 URL時。
  • 你將永久遷移到新域名時。
  • 當你從 HTTP 切換到 HTTPS 時。
  • 你希望修復非 www / www 重複內容問題時。
  • 永久合併兩個或多個頁面或網站時。
  • 你將永久更改網站的 URL 結構時。

302 重定向使用場景

302 重定向的用例很少,但也有一些:

  • 當你想將使用者重定到正確的網站版本(基於位置/語言)時。
  • 當你要對網頁的功能或設計進行 A / B 拆分測試時。
  • 你希望在不影響舊頁面排名的情況下獲得新頁面的反饋時。
  • 當你正在進行促銷,並希望暫時將訪問者重定向到促銷頁面時。

毫無疑問,還有其他用例,但是它們往往是非常具體和個性化的。金科玉律是,如果你打算在短時間後恢復舊頁面,則只應使用 302 重定向。

如何建立重定向

你可以用多種方法建立 301 和 302 重定向,但最常見的方法是編輯網站的 .htaccess 檔案。你可以在網站的根目錄中找到此檔案。

htaccess檔案目錄

小提示.  如果你在站點的根目錄中沒有看到此檔案,說明你的伺服器沒有在 Apache 上執行,或者你沒有此檔案。你可以使用此工具檢查正在執行的伺服器型別。如果伺服器型別是 Apache,解決方法就是使用 Notepad 或 TextEdit 建立一個 .htaccess 檔案並將其上載到根伺服器。如果你的伺服器型別是 Nginx,請閱讀這篇文章。如果你執行的是 Windows 或 IIS,請閱讀這篇文章

如果你使用的是 WordPress,一個比較簡單的選擇是使用免費的 SEO 外掛來建立重定向。 RankMath 內建了此功能,但是這個外掛也可以完成這項工作。

如何建立 301 重定向

如果要建立從一個 URL 到另一個 URL 的 301 重定向,請將以下內容新增到你的 .htaccess 檔案中:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Redirect 301 /old-page.html /new-page.html
Redirect 301 /old-page.html /new-page.html
Redirect 301 /old-page.html /new-page.html

你也可以使用 RankMath 或“重定向”外掛來執行此操作。只需選擇所需的重定向型別,然後新增源 URL 和目標 URL。

rankmath外掛301重定向

如果你要重定向整個網站,請將以下內容新增到你的 .htaccess 檔案中:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC]
RewriteRule ^(.*)$ https://newsite.com/$1 [L,R=301,NC]
RewriteEngine on RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC] RewriteRule ^(.*)$ https://newsite.com/$1 [L,R=301,NC]
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC] 
RewriteRule ^(.*)$ https://newsite.com/$1 [L,R=301,NC]

你需要保持你的舊主機處於活動狀態,才能使用 .htaccess 重定向你的網站,這可能會很昂貴。因此,通常最好通過 DNS 重定向。大多數註冊商都允許你為此選擇 301 或 302 重定向。如果你使用的是 Google 域,只需點選 Website(網站)> forwarddomain(轉發域),然後輸入新域並選擇“ Permanent redirect(永久重定向)”。

google域名301重定向

後面有時間,我們專門針對 301 重定向寫個教學指南(例如,從非 www 到 www,從 HTTP 到 HTTPS),敬請關注。又或者如果你對這一塊有需要了解的,隨時留言與我們討論。

如何建立 302 重定向

如果要建立從一個 URL 到另一個 URL 的 302 重定向,請將以下內容新增到你的 .htaccess 檔案中:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Redirect 302 /old-page.html /new-page.html
Redirect 302 /old-page.html /new-page.html
Redirect 302 /old-page.html /new-page.html

你也可以使用 RankMath 或 WordPress 中的重定向外掛來執行此操作:

rankmath外掛302重定向

如果你要重定向整個網站,請使用以下程式碼:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC]
RewriteRule ^(.*)$ https://newsite.com/$1 [L,R=302,NC]
RewriteEngine on RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC] RewriteRule ^(.*)$ https://newsite.com/$1 [L,R=302,NC]
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC] 
RewriteRule ^(.*)$ https://newsite.com/$1 [L,R=302,NC]

只是你也許不想使用 302 將一個站點重定向到另一個站點。大多數域更改都是永久性的,所以你需要使用 301。從 HTTP 重定向到 HTTPS,或者從非 www 重定向到 www(反之亦然),情況也是一樣的。

Google 如何處理 301 和 302 重定向

由於 301 和 302 重定向的功能與終端使用者相同,因此選擇使用哪種重定向主要取決於 Google 如何對待它們。這裡我們需要談談兩件事:

  1. 索引化
  2. 連結訊號

索引化

當一個 URL 重定向到另一個 URL 時,Google 只會保留其中一個 URL 的索引。

對於 301 重定向…

…這就是“新”  URL。 例如,如果你建立了從舊的-頁面 .html 到新的-頁面 .html 的 301 重定向,Google將索引新的-頁面 .html 去索引舊的-頁面 .html.,併為舊的-頁面 .html 取消索引。 這是因為 301 重定向告訴 Google 這是一個永久性的移動,因此沒有必要保留舊的 URL 索引。

人們有時對此感到困惑,因為在建立 301 重定向後,舊的 URL 在使用site: 搜尋時仍然可以在 Google 中顯示一段時間。

例如,很多年前,Moz 將域名 seomoz.org 更改並重定向到了 moz.com,但 seomoz.org 仍然顯示在 Google 上。

google搜尋site命令

原因正如 Patrick 最近解釋的,site:searches (網站搜尋)不會告訴你 URL 是否被索引。為此,你需要在 Google 搜尋控制檯中使用 URL 檢查工具覆蓋率報告。

對於 302 重定向…

…Google 索引的 URL 通常是原始網址。 然而,由於 Google 知道人們經常錯誤地使用 302 進行永久重定向,因此他們實際上會單獨評估每個 302 重定向,以試圖確定你的真正目的。

這是 Google 的 John Mueller 所說的:

當我們識別到一個重定向並看到它是 302 時,我們首先假定它是一個臨時重定向,並假定你想要為初始 URL 編制索引,而不是為了重定向。 […] 然而,當我們意識到它實際上更像是一個永久重定向,302 可能是你不小心設定的,那麼我們會將其視為 301。我們不會為此 URL 編制索引, 而將為重定向目標建立索引。——John Mueller, Webmaster Trends Analyst Google

在 Google 將其視為永久重定向之前,沒人確切知道 302 重定向需要多長時間。通常需要幾周到幾個月,但也可能是幾天,幾周或幾個月。

在某些情況下,Google 甚至從一開始就把 302 當作 301。

例如,Patrick 最近做了一個小實驗,在這個實驗中,他將一個已建立的站點 302 重定向到了另一個站點的。當 Google 檢索“舊”域並檢測重定向後,“舊”域從搜尋結果中消失了,取而代之的是“新”域。

如果你不確定 Google 如何處理你的 302 重定向,以下是一個快速“竅門”:

將重定向 URL 貼上到 Search Console 的 URL 檢查工具中。 如果顯示“ URL 不在 Google 上”警告,則 Google 必定將其視為永久重定向(301)。 如果它在 Google 上,則他們將其視為臨時重定向(302)。

google站長工具URL檢測

只需確保在執行此操作時檢查上一次的爬網日期。如果此日期是在你實現重定向之後,則請求重新索引並稍後返回。

小提示. 根據我們的觀察,當重定向到“已建立”的頁面或網站時,Google 通常會更快地將 302 重定向視為永久重定向。這可能是因為“新”頁面或網站已經存在了一段時間了,因此你希望永久重定向 URL 的概率要高於平均水平。

連結訊號

3XX 重定向曾經會降低 PageRank (網頁排名),但該重定向於 2016 年停止

現在,當你將一個 URL 重定向到另一個 URL 時,連結訊號將合併在一個 URL 上而不會被減弱。但是,這種工作方式通常會被誤解,因為重定向的型別會影響訊號合併的位置。

對於 301 重定向

…連結訊號將“轉發”合併為“新” URL。

例如,如果是舊的-頁面 .html有十個反向連結,你將其重定向(301)到新的-頁面 .html,則所有鏈路訊號將合併在新的-頁面 .html處。換言之,Google 應該將新的-頁面 .html排名為 10 個連結。

然而,這並不是那麼簡單,因為 Google 將無關的重定向視為軟 404(該視訊播放需要梯子):

如果你將內容移至新 URL 而不進行大幅度更改,那麼這不是問題。但是,如果重定向是不相關的,例如將舊部落格帖子重定向到你的主頁時,則指向“舊”頁面的連結可能無助於“新”頁面的排名。因此,黃金法則就是儘可能保持你的重定向的相關性。

如果你好奇 Google 如何處理你的 301 重定向之一,嘗試以下操作:

轉到 Search Console(搜尋控制檯) > Links(連結)> External Links(外部連結)。

谷歌站長工具-外部連結

接下來,按“ Target page(目標頁面)”過濾報告,並貼上到“ new (新的)” URL 中。例如,我們最近 301 重定向了一篇我們的舊部落格文章( domain.com/blog/seo/)到部落格主頁( domain.com/blog/ ),因此我們將其貼上到了部落格主頁並從列表中選擇了 URL。

目標頁面新URL篩選

下一步,將“舊的” URL 貼上到 Ahrefs 的網站分析中,並轉到引用域報告。

ahrefs來源域名搜尋

最後,在 GSC 中,按“ Site(站點)”過濾連結,然後逐個貼上來自 Ahrefs 的引用域。

如果你對多個引薦域執行此操作,但在 GSC 中沒有找到匹配項,Google 可能會將重定向視為軟 404,並且不計入指向“新的” URL 的反向連結。

GSC域名篩選

如果有匹配項,請單擊該站點以檢視實際連結。你應該會看到以下內容:

重定向連結

注意,“ Target URL(if different)” 列顯示的是“舊的”重定向的 URL。這表明 Google 正在將指向重定向 URL 的連結計入“新的” URL。

對於 302 重定向

…連結訊號通常會將“向後”合併到“舊的” URL。

例如,如果你將舊-頁面 .html 重定向(302)到新-頁面 .html,並且新-頁面 .html具有十個反向連結,則所有連結訊號通常將合併在舊-頁面 .html處。換句話說,Google 應該將舊-頁面 .html 視為 10 個連結排名。

但是,事情並不是那麼簡單。這取決於 Google 如何對待 302 重定向。

如果他們將其視為臨時重定向,則連結訊號的確會向後合併。這是假設重定向頁面與“新”頁面相同或相似。如果不是,他們可能會把它當作軟 404。

如果他們將其視為永久重定向,則連結訊號將向前合併。

你可以用 URL 檢查工具檢查 Google 是如何處理重定向的。只需貼上“舊”重定向的URL。如果“ Google-selected canonical( Google 選定的規範) ”顯示“ Inspected URL(已檢查的 URL)”(如下所示),Google 將把重定向視為臨時的。如果不是,那就是將它視為永久性的。

檢查URL規範

你是否應該“修復”意外 302 重定向?

假設你在使用 302 重定向進行永久移動時犯了一個常見錯誤。你是否需要花費寶貴的時間將它們全部交換成 301 重定向?

這取決於 Google 當前如何處理這些重定向。

如果他們自己發現了問題,並且已經將“意外” 302 視為永久性的移動,那麼將其更改為 301 可能不會有任何影響。如果他們還沒有發現問題,那麼將重定向從 302 改為 301 可能是最好的做法。

你可以使用 GSC 中的網址檢查工具來檢查 Google 如何處理單個網址,如上一節所示。但是,如果你進行了大量重定向,那將非常耗時。更快的方法是首先查詢獲得自然流量的 302 重定向。畢竟,這是一個明顯的訊號,表明 Google 仍將重定向視為臨時重定向。

你可以在 Ahrefs 的網站診斷中執行此操作。只需爬網你的網站,然後檢查重定向報告中的“ 302 重定向”警告。

重定向URL檢測

如果存在警告,請單擊檢視受影響的 URL,並按“自然流量”從高到低對報告進行排序。

按流量排列302重定向連結

由於此資料是來自 Ahrefs 的網站分析的估計,因此值得在 URL 檢查工具中仔細檢查所有重定向的 URL 的訪問量。如果使用者宣告的規範與 Google 宣告的規範匹配,則 Google 將 302 重定向視為永久的。如果他們沒這麼做,則重定向的頁面很可能會獲得自然流量,因為它仍在被索引,而 Google 將其視為臨時頁面。如果你在一個永久性的移動中意外地使用了 302 重定向,這是不可取的。幸運的是,將 302 重定向改為 301 應該可以解決此問題。

結語

重定向並不複雜。如果你要將內容永久移動到新位置,請使用 301 重定向。如你果要臨時移動它,請使用 302 重定向。

也就是說,即使你碰巧使用了錯誤的重定向型別,Google 最終可能也會明白你的意思。但能確保萬無一失嗎? 當然不是。Google 並不總是足夠聰明,能夠每次都明白你的意思,所以最佳的做法是儘可能使用正確的重定向型別。

然後重定向對網站SEO優化有一定影響,請不要忽視重定向的作用!無論是www和非www之間的重定向,又或者http和https之間、錯誤狀態碼頁面和404頁面之間…的重定向

(via ahrefs.com 譯者,Frida Zheng,文章有改動)

評論留言