Home >> Blog >> 重定向

重定向

重定向是將一個 URL 轉發到另一個 URL 的過程。

什麼是重定向?

重定向是一種將用戶和搜索引擎發送到與他們最初請求的 URL 不同的 URL 的方法。三個最常用的重定向是 301、302 和 Meta Refresh。

重定向類型

  • 301,“永久移動”——推薦用於 SEO
  • 302,“找到”或“暫時移動”
  • 元刷新

301永久搬家

301 重定向是一種永久重定向,它將完整的鏈接權益(排名能力)傳遞到重定向頁面。301 是指此類重定向的HTTP 狀態代碼。在大多數情況下,301 重定向是在網站上實現重定向的最佳方法。

302 找到

臨時更改資源的 URL 時使用 302 重定向。Google 的一些員工表示,在某些情況下 301 和 302 可能會受到類似處理,但我們的證據表明,確保搜索引擎和各種瀏覽器給予充分信任的最安全方法是在永久重定向 URL 時使用 301。這是因為雖然理論上 302 和 301 都可以傳遞相同數量的鏈接資產,但在某些情況下,301 可能會 向 Google傳遞更強的規範化信號。對於重定向確實是臨時的情況,302 可能是最合適的。

307臨時搬家

307 重定向是 302 重定向的 HTTP 1.1 繼任者。雖然主要爬蟲在某些情況下會將其視為 302,但最好在幾乎所有情況下都使用 301。例外情況是內容實際上只是臨時移動(例如在維護期間)並且服務器已被搜索引擎識別為 1.1 兼容。由於基本上不可能確定搜索引擎是否已將頁面識別為兼容,因此通常最好對臨時移動的內容使用 302 重定向。

元刷新

元刷新是在頁面級別而不是服務器級別執行的一種重定向。它們通常較慢,不是推薦的 SEO 技術。它們最常與帶有文本“如果您在 5 秒內沒有被重定向,請單擊此處”的五秒倒計時相關聯。元刷新確實傳遞了一些鏈接權益,但由於可用性差和傳遞的鏈接權益損失,不建議將其作為 SEO 策略。

元刷新可能如下所示:

搜索引擎優化最佳實踐

將一個 URL 重定向到另一個 URL 是一種常見的做法。這樣做時,遵守最佳實踐以保持 SEO 價值至關重要。

第一個常見示例發生在一個簡單的場景中:需要永久重定向到另一個地址的 URL。

Gremlin 查詢語言

執行此操作有多種選擇,但總的來說,301 重定向對於用戶和搜索引擎來說都是更可取的。提供 301 向瀏覽器和搜索引擎機器人表明該頁面已永久移動。搜索引擎將此解釋為意味著不僅頁面位置發生了變化,而且內容(或其更新版本)可以在新 URL 中找到。引擎會將任何鏈接權重從原始頁面帶到新 URL,如下所示:

 Gremlin 查詢語言

請注意,當將頁面從一個 URL 移動到另一個 URL 時,搜索引擎將需要一些時間來發現 301,識別它,並將其前身的排名和信任歸功於新頁面。如果搜索引擎蜘蛛很少訪問給定的網頁,或者新的 URL 沒有正確解析,這個過程可能會更長。

其他重定向選項(例如元刷新)可能是較差的替代品,因為它們可能無法像 301 重定向那樣可靠地傳遞排名和搜索引擎價值。

當整個站點更改其域或內容從一個域移動到另一個域時,傳輸內容變得更加複雜。由於垃圾郵件發送者的濫用和搜索引擎的懷疑,域之間的 301 有時需要更多時間才能被正確抓取和計數。有關移動站點的更多信息,請參閱實現對 SEO 友好的域遷移:信息圖。

如何實現重定向

今天,大多數現代 CMS 平台都提供解決方案和/或插件來輕鬆處理 301 和 302 重定向。例如,RankMath是一個免費的 WordPress 插件,它提供重定向作為基本功能。許多託管和 CDN 平台還通過其管理面板提供簡單的重定向管理。

.htaccess 中的 301 重定向

實現重定向的一種常見方法是通過在 Apache 服務器上運行的.htaccess 文件。下面我們列出了一些常見的 .htaccess 重定向指令。

1. 將整個域重定向到新站點:

重定向 301 / http://www.example.com/

將示例域替換為您的新重定向目標。這會將您網站上的每個頁面 301 重定向到目標域上的相應 URL。

2.重定向單個頁面

重定向 301 /oldpage/ http://www.example.com/newpage/

您可以跨不同域或在您自己的站點上使用此重定向。

3. 使用 Apache mod_rewrite

您還可以在 .htaccess 文件中使用 Apache mod_rewrite 以獲得更靈活的重定向。例如,這是您用於從非 www 重定向到 www 子域的代碼。

重寫引擎開啟
RewriteBase /
重寫條件 %{http_host} ^domain.com [nc]
重寫 ^(.*)$ http://www.domain.com/$1 [r=301,nc]

對於更多 .htaccess 場景,Linchpin SEO 的人們已經整理了一個很好的資源。

PHP 重定向

下面是一個使用 PHP 實現 301 重定向的示例:

< ?php
header("位置:https://www.example.com/", true, 301); 出口();
?>

JavaScript 重定向

雖然您可以在技術上使用 JavaScript 實現重定向,但這不是用於 SEO 目的的推薦方法。雖然測試表明 Google可能會將 JavaScript 重定向解釋為 301,但這不是給定的。由於 JavaScript 是在客戶端而不是服務器端執行的,因此無法保證 Google 正確索引重定向。最後,在使用 JavaScript 進行重定向時,無法聲明 HTTP 狀態代碼。

雖然不推薦,但以下是如何在 JavaScript 中實現重定向的示例:

< script type="text/javascript"> function redirect1(){ window.location = "http://www.example.com/new-url/" } setTimeout('redirect1()', 5000);