SEO 的 301 和 302 重定向:应该使用哪个?

SEO的301和302重定向: 应该使用哪个?

Joshua Hardwick
Ahrefs内容营销总监。他负责确保我们发布的每篇文章都是神作。
重定向很简单。如果你要将内容永久移动到新位置,请使用 301 重定向。如果你只是暂时移动它,请使用 302 重定向。

但你可能会想,这很重要吗?毕竟,用户无法察觉 301 和 302 的区别,两者在功能上是相同的。

答案很简单:搜索引擎对待 301 重定向和 302 重定向的方式不同。并且,选择错误的重定向可能会导致 SEO 问题,而这些问题往往在数月甚至数年内被忽视。

在本文中,你将了解:

  • 你将永久更改网页的 URL时。
  • 你将永久迁移到新域名时。
  • 当你从 HTTP 切换到 HTTPS 时。
  • 你希望修复非 www / www 重复内容问题时。
  • 永久合并两个或多个页面或网站时。
  • 你将永久更改网站的 URL 结构时。

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

  • 当你想将用户重定到正确的网站版本(基于位置/语言)时。
  • 当你要对网页的功能或设计进行 A / B 拆分测试时。
  • 你希望在不影响旧页面排名的情况下获得新页面的反馈时。
  • 当你正在进行促销,并希望暂时将访问者重定向到促销页面时。

毫无疑问,还有其他用例,但是它们往往是非常具体和个性化的。金科玉律是,如果你打算在短时间后恢复旧页面,则只应使用 302 重定向。

你可以用多种方法创建 301 和 302 重定向,但最常见的方法是编辑网站的 .htaccess 文件。你可以在网站的根目录中找到此文件。

1 root directory htaccess

小提示.
如果你在站点的根目录中没有看到此文件,说明你的服务器没有在 Apache 上运行,或者你没有此文件。你可以使用此工具检查正在运行的服务器类型。如果服务器类型是 Apache,解决方法就是使用 Notepad 或 TextEdit 创建一个 .htaccess 文件并将其上载到根服务器。如果你的服务器类型是 Nginx,请阅读这篇文章。如果你运行的是 Windows 或 IIS,请阅读这篇文章

如果你使用的是 WordPress,一个比较简单的选择是使用免费的 SEO 插件来创建重定向。 RankMath 内置了此功能,但是这个插件也可以完成这项工作。

如何创建 301 重定向

如果要创建从一个 URL 到另一个 URL 的 301 重定向,请将以下内容添加到你的 .htaccess 文件中:

Redirect 301 /old-page.html /new-page.html 

你也可以使用 RankMath 或“重定向”插件来执行此操作。只需选择所需的重定向类型,然后添加源 URL 和目标 URL。

2 301 rankmath

如果你要重定向整个网站,请将以下内容添加到你的 .htaccess 文件中:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC]
RewriteRule ^(.*)$ https://newsite.com/\ [L,R=301,NC]

你需要保持你的旧主机处于活动状态,才能使用 .htaccess 重定向你的网站,这可能会很昂贵。因此,通常最好通过 DNS 重定向。大多数注册商都允许你为此选择 301 或 302 重定向。如果你使用的是 Google 域,只需点击 Website(网站)> forwarddomain(转发域),然后输入新域并选择“ Permanent redirect(永久重定向)”。

3 google domains 301

你可以在我们的 301 重定向的完整指南中了解如何在更多情况下创建 301 重定向(例如,从非 www 到 www,从 HTTP 到 HTTPS)。

如何创建 302 重定向

如果要创建从一个 URL 到另一个 URL 的 302 重定向,请将以下内容添加到你的 .htaccess 文件中:

Redirect 302 /old-page.html /new-page.html

你也可以使用 RankMath 或 WordPress 中的重定向插件来执行此操作:

4 302 rankmath

如果你要重定向整个网站,请使用以下代码:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC]
RewriteRule ^(.*)$ https://newsite.com/\ [L,R=302,NC]

只是你也许不想使用 302 将一个站点重定向到另一个站点。大多数域更改都是永久性的,所以你需要使用 301。从 HTTP 重定向到 HTTPS,或者从非 www 重定向到 www(反之亦然),情况也是一样的。

由于 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 上。

5 301 site search

原因正如 Patrick 最近解释的,site:searches (网站搜索)不会告诉你 URL 是否被索引。为此,你需要在 Google 搜索控制台中使用 URL 检查工具覆盖率报告。

对于 302 重定向…

…Google 索引的 URL 通常是原始网址。 然而,由于 Google 知道人们经常错误地使用 302 进行永久重定向,因此他们实际上会单独评估每个 302 重定向,以试图确定你的真正目的。

这是 Google 的 John Mueller 所说的

当我们识别到一个重定向并看到它是 302 时,我们首先假定它是一个临时重定向,并假定你想要为初始 URL 编制索引,而不是为了重定向。 […] 然而,当我们意识到它实际上更像是一个永久重定向,302 可能是你不小心设置的,那么我们会将其视为 301。我们不会为此 URL 编制索引, 而将为重定向目标建立索引。

John Mueller
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)。

6 url is not on google

只需确保在执行此操作时检查上一次的爬网日期。如果此日期是在你实现重定向之后,则请求重新索引并稍后返回。

小提示.
根据我们的观察,当重定向到“已建立”的页面或网站时,Google 通常会更快地将 302 重定向视为永久重定向。这可能是因为“新”页面或网站已经存在了一段时间了,因此你希望永久重定向 URL 的概率要高于平均水平。 

链接信号

3XX 重定向曾经会降低 PageRank (网页排名),但该重定向于 2016 年停止

现在,当你将一个 URL 重定向到另一个 URL 时,链接信号将合并在一个 URL 上而不会被减弱。但是,这种工作方式通常会被误解,因为重定向的类型会影响信号合并的位置。

对于 301 重定向

…链接信号将“转发”合并为“新” URL。

例如,如果是旧的-页面 .html有十个反向链接,你将其重定向(301)到新的-页面 .html,则所有链路信号将合并在新的-页面 .html处。换言之,Google 应该将新的-页面 .html排名为 10 个链接。

然而,这并不是那么简单,因为 Google 将无关的重定向视为软 404

https://www.youtube.com/watch?v=nIDZmac_rMI&feature=youtu.be&t=76&ab_channel=GoogleWebmasters

如果你将内容移至新 URL 而不进行大幅度更改,那么这不是问题。但是,如果重定向是不相关的,例如将旧博客帖子重定向到你的主页时,则指向“旧”页面的链接可能无助于“新”页面的排名。因此,黄金法则就是尽可能保持你的重定向的相关性。

如果你好奇 Google 如何处理你的 301 重定向之一,尝试以下操作:

转到 Search Console(搜索控制台) > Links(链接)> External Links(外部链接)。

7 top linked pages

接下来,按“ Target page(目标页面)”过滤报告,并粘贴到“ new (新的)” URL 中。例如,我们最近 301 重定向了一篇我们的旧博客文章( ahrefs.com/blog/seo-秘密/)到博客主页( ahrefs.com/blog/ ),因此我们将其粘贴到了博客主页并从列表中选择了 URL。

top target pages new url

下一步,将“旧的” URL 粘贴到 Ahrefs 的网站分析中,并转到引用域报告。

8 referring domains ahrefs

最后,在 GSC 中,按“ Site(站点)”过滤链接,然后逐个粘贴来自 Ahrefs 的引用域。

如果你对多个引荐域执行此操作,但在 GSC 中没有找到匹配项,Google 可能会将重定向视为软 404,并且不计入指向“新的” URL 的反向链接。

9 no results domain gsc

如果有匹配项,请单击该站点以查看实际链接。你应该会看到以下内容:

10 target url if different

注意,“ 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 将把重定向视为临时的。如果不是,那就是将它视为永久性的。

11 inspected url canonical

假设你在使用 302 重定向进行永久移动时犯了一个常见错误。你是否需要花费宝贵的时间将它们全部交换成 301 重定向?

这取决于 Google 当前如何处理这些重定向。

如果他们自己发现了问题,并且已经将“意外” 302 视为永久性的移动,那么将其更改为 301 可能不会有任何影响。如果他们还没有发现问题,那么将重定向从 302 改为 301 可能是最好的做法。

你可以使用 GSC 中的网址检查工具来检查 Google 如何处理单个网址,如上一节所示。但是,如果你进行了大量重定向,那将非常耗时。更快的方法是首先查找获得自然流量的 302 重定向。毕竟,这是一个明显的信号,表明 Google 仍将重定向视为临时重定向。

你可以在 Ahrefs 的网站诊断中执行此操作。只需爬网你的网站,然后检查重定向报告中的“ 302 重定向”警告。

12 302 redirects site audit

如果存在警告,请单击查看受影响的 URL,并按“自然流量”从高到低对报告进行排序。

13 302 redirects with traffic

由于此数据是来自 Ahrefs 的网站分析的估计,因此值得在 URL 检查工具中仔细检查所有重定向的 URL 的访问量。如果用户声明的规范与 Google 声明的规范匹配,则 Google 将 302 重定向视为永久的。如果他们没这么做,则重定向的页面很可能会获得自然流量,因为它仍在被索引,而 Google 将其视为临时页面。如果你在一个永久性的移动中意外地使用了 302 重定向,这是不可取的。幸运的是,将 302 重定向改为 301 应该可以解决此问题。

结语

重定向并不复杂。如果你要将内容永久移动到新位置,请使用 301 重定向。如你果要临时移动它,请使用 302 重定向。

也就是说,即使你碰巧使用了错误的重定向类型,Google 最终可能也会明白你的意思。但能确保万无一失吗? 当然不是。Google 并不总是足够聪明,能够每次都明白你的意思,所以最佳的做法是尽可能使用正确的重定向类型。

有什么问题吗?来 Twitter 联系我。

译者,Frida Zheng,Not Soup Yet 运营专员