SEO 重定向:一个简单(但完整)的指南

SEO 重定向:一个简单(但完整)的指南

Joshua Hardwick
Ahrefs内容营销总监。他负责确保我们发布的每篇文章都是神作。
大多数网站所有者都会在某个时间进行重定向的操作。 比如当你更名、合并多个网站、删除页面或只是将页面移动到新位置时,重定向可以帮助用户和搜索引擎访问到有效的内容。

然而,重定向的规则很多,因为不同类型的重定向会用于不同的场景中。 因此,了解它们之间的差异很重要。

这篇指南中,你会学到:

重定向是一种将用户(和机器人)转发到他们请求的 URL 以外的 URL 的方法。

使用重定向的原因有两个:

  • 为访问者提供更好的用户体验 — 你不希望访问者在尝试访问已移动的页面时收到 “找不到页面” 的提示。 重定向通过将访问者无缝地发送到内容的新位置来解决这个问题。
  • 帮助搜索引擎了解你的网站 — 重定向告诉搜索引擎内容已移动到何处,以及移动是永久的还是临时的。 这会影响页面是否、如何出现在搜索结果中。

当你将内容从一个 URL 移动到另一个 URL 时,或者偶尔删除内容时,你应该使用重定向。 让我们快速过一下常见的使用场景。

域名转移时

如果你要重新命名并从一个域转移到另一个域,则需要将旧域上的所有页面永久重定向到新域上的位置。

合并网站时

如果你要将多个网站合并为一个,则需要将旧 URL 永久重定向到新 URL。

切换到 HTTPS 时

如果你从 HTTP 切换到 HTTPS(强烈推荐),你需要将每个不安全 (HTTP) 页面和资源永久重定向到其安全 (HTTPS) 的位置。

进行促销时

如果你正在进行临时促销活动并希望将访问者从 domain.com/laptops 发送到 domain.com/laptops-black-friday-deals,则需要使用临时重定向。

删除页面时

如果你要从网站中删除内容,则应尽可能将其 URL 永久重定向到相关的、或类似的页面。 这有助于确保任何指向旧页面的反向链接的权重会被传递到新页面。 它还可以确保任何书签、或内部链接仍然有效。

重定向分为两组:服务器端重定向、以及客户端的重定向。 其中都包含一些被搜索引擎视为临时或永久的重定向。 因此,你需要使用正确的重定向以避免潜在的 SEO 问题。

服务器端重定向

服务器端重定向是服务器决定在请求页面时将用户或搜索引擎重定向到哪里。 它通过返回一个 3XX HTTP 状态码来做到这一点。

如果你在做 SEO,你大部分时间都会使用服务器端重定向。因为客户端重定向(我们将很快讨论)有一些缺点,并且往往更适合非常具体和罕见的使用案例。

以下是每个 SEO 都应该知道的 3XX 重定向:

301重定向

301 重定向将用户转发到新 URL,并告诉搜索引擎该资源已永久移动。 当遇到 301 重定向时,搜索引擎通常会从其索引中删除旧的重定向 URL,以支持新的 URL。 他们还将 PageRank 转移到新的 URL。

302重定向

302 重定向将用户转发到新 URL,并告诉搜索引擎该资源已暂时移动。 当遇到 302 重定向时,搜索引擎会保留旧 URL 的索引,即使它已被重定向。 但是,如果你长时间保留 302 重定向,搜索引擎可能会开始将其视为 301 重定向,并改为索引新 URL。

和 301 一样,302 也会传输 PageRank。 不同之处在于转移是 “向后” 发生的。 换句话说,新 URL 的 PageRank 向后转移到旧 URL(除非搜索引擎将其视为 301)。 

303重定向

303 重定向将用户转发到类似于请求的资源,并且是一种临时形式的重定向。 它通常用于当用户点击浏览器中的 “后退” 按钮时防止表单重新提交。 你通常不会将 303 重定向用于 SEO 目的。 如果这样做,搜索引擎可能会将它们视为 301 或 302。

307重定向

307 重定向与 302 重定向相同,只是它在执行重定向时保留了原始请求的 HTTP 方法(POST、GET)。

308重定向

308 重定向与 301 重定向相同,只是它在执行重定向时保留了原始请求的 HTTP 方法。 谷歌表示它对待 308 重定向与 301 重定向相同,但大多数 SEO 仍然使用 301 重定向。

https://twitter.com/JohnMu/status/994633389356429312

客户端重定向

客户端重定向是浏览器决定将用户重定向到哪里的重定向。 除非你没有其他选择,否则你通常不应该使用它。 

307重定向

当站点使用 HSTS 时,307 重定向通常发生在客户端。 这是因为 HSTS 会告诉客户端的浏览器服务器只接受安全 (HTTPS) 连接,并且如果将来被要求从站点请求不安全 (HTTP) 资源,则执行内部 307 重定向。

元刷新重定向

元刷新重定向告诉浏览器在设定的秒数后重定向用户。 Google 理解它,通常会将其视为 301 重定向。 然而,当被问及在 Twitter 上出现延迟的元重定向时,谷歌的 John Mueller 说:“如果你希望它像重定向一样对待,那最好就让它像重定向一样。

无论哪种方式,Google 都不建议使用它们,因为它们可能会让用户感到困惑,并且并非所有浏览器都支持它们。 Google 建议改用服务器端 301 重定向

JavaScript 重定向

正如你可能猜到的那样,JavaScript 重定向使用 JavaScript 来指示浏览器将用户重定向到不同的 URL。 有些人认为 JS 重定向会导致搜索引擎出现问题,因为他们必须渲染页面才能看到重定向。 虽然这是真的,但对于 Google 来说通常不是问题,因为它现在呈现页面的速度如此之快。 (虽然,其他搜索引擎仍然可能存在问题。)总而言之,使用 3XX 重定向仍然更好,但如果这是你唯一的选择,则可以使用 JS 重定向。

部分重定向情况可能很复杂。如果你是做SEO的,那么请记住以下一些最佳实践。

将 HTTP 重定向到 HTTPS

在这个阶段,每个人都应该使用 HTTPS。 它为你的网站提供了额外的安全保护,并且是 Google 排名的一个小因素。

有几种方法可以检查你的站点是否正确地从 HTTP 重定向到 HTTPS。 首先是安装并激活 Ahrefs SEO Toolbar(Ahrefs SEO 工具栏),然后尝试导航到你主页的 HTTP 版本。 它应该重定向,并且你应该在工具栏上看到 301 响应代码。

这种方法的问题是,如果你的网站使用 HSTS,你可能会看到 307。 所以这里有另一种方法:

  1. 进入 Ahrefs Site Audit(网站诊断)
  2. 点击 + New Project(添加新项目)
  3. 点击 Add manually(手动添加)
  4. 将范围更改为 HTTP
  5. 输入你的域名

你应该看到主页的 www 和非 www 版本是 “不可抓取” 错误,以及 “301 永久移动” 的通知。

如果这里没有提示重定向,或者你使用的重定向类型不是 301 或 308,则可能值得让你的开发人员切换到 301。

提示

无论你使用哪种方法,都值得在多个页面上重复检测它,这样你就可以确信在你的网站上进行了正确的重定向。

使用 HSTS(创建 307 重定向)

在你的服务器上实施 HSTS(HTTP 严格传输安全)可阻止人们访问你网站上的非安全 (HTTP) 内容。 它通过告诉浏览器你的服务器只接受安全连接并且他们应该做一个内部 307 重定向到任何 HTTP 资源的 HTTPS 版本来做到这一点。

这不能替代 301 或 302 重定向,如果在你的网站上正确设置了这些重定向,那么就没必要操作这一步。 然而,我们认为这是当今的最佳实践——即使只是为了加快用户速度。

学习更多: 严格的传输安全 — Mozilla

提示

实施 HSTS 后,可以考虑将你的网站提交到 HSTS 预加载列表。 这为尝试访问你网站的每个人启用 HSTS,即使他们以前没有访问过它。

避免元刷新重定向

元刷新重定向并不理想,因此值得检查你的网站,并用 301 或 302 重定向替换它们。 你可以使用免费的 Ahrefs Webmaster Tools(Ahrefs 站长工具)轻松完成此操作。 只需使用 Site Audit(网站诊断)抓取你的站点,并查找 “元刷新重定向” 错误即可。

点击错误并点击 “查看受影响的 URL”,你将看到带有元刷新重定向的 URL。

将已删除的页面重定向到相关的页面或其他替代页面(如果可能)

移动内容时重定向 URL 很有意义,但删除内容时重定向通常更有意义。 这是因为当用户尝试访问已删除的页面时,看到“  404 未找到” 错误时体验并不好。 最好将他们重定向到相关的替代页面上。

例如,我们最近修改了我们的博客类别页面。 在此过程中,我们删除了一些类别,包括 “外展和内容推广” 分类。 我们没有将其保留为 404,而是将其重定向到我们的 “链接构建” 类别,因为它是一个密切相关的工作替代方案。

当然不是每次都必须这么做,因为并不总是有相关的替代页面。 但如果有的话,这样做还有一个好处,那就是保留 PageRank 并将其从旧页面转到替代页面上。

大多数网站已经有一些返回 404 状态代码的死页面或已删除页面。 要找到这些,请注册一个免费的 Ahrefs Webmaster Tools(Ahrefs 站长工具),并使用 Site Audit(网站诊断)抓取你的网站,然后转到 Internal pages(内部页面)报告,然后查找 “4XX 页面” 错误:

提示

在设置爬网时启用 “反向链接” 作为来源。 这将允许 Site Audit(网站诊断)可以找到带有反向链接的已删除页面,及时现在已经不存在页面的内部链接也可以找到。

要查看受影响的页面,请点击错误并点击 “查看受影响的 URL”。 如果你看到很多 URL,请单击“Manage columns(管理列)”按钮,添加 “Referring domains(引用域)” 列,然后按引用域降序排序。 然后,你可以先处理具有最多外链的 404 页面问题。

避免长重定向链

重定向链是指在请求的资源与其最终目的地之间发生多次重定向。

谷歌的官方文档说谷歌最多跟踪 10 个重定向跃点,因此任何比这更短的重定向链对 SEO 来说都不是问题。

Googlebot 最多跟踪 10 个重定向跃点。 如果爬虫在 10 个跃点内未收到内容,Search Console 将在网站的索引覆盖率报告中显示重定向错误。

但是,长链仍然会减慢用户的速度,因此最好尽可能避免使用它们。

你可以使用 Ahrefs Webmaster Tools(Ahrefs 站长工具)免费找到长重定向链:

  1. 使用 Site Audit(网站诊断)抓取网站
  2. 转到 Redirects(重定向)报告
  3. 单击 Issues(问题)选项卡
  4. 查找 “Redirect chain too long(重定向链太长)” 的错误

单击问题并点击 “View affected URLs(查看受影响的 URL)” 以查看开始重定向链的 URL 以及链中的所有 URL。

避免重定向循环

重定向循环是重定向的无限循环,比如当 URL 重定向到自身,或重定向链发生死循环。

它们存在问题的原因有两个:

  • 对于用户——会切断对预期资源的访问并在浏览器中触发“重定向过多”错误。
  • 对于搜索引擎——这是爬虫“陷阱”,在浪费抓取预算。 

查找重定向循环的最简单方法是使用 Site Audit(网站诊断)之类的工具来抓取你的站点。 你可以使用 Ahrefs Webmaster Tools(Ahrefs 站长工具)免费执行此操作。

  1. 使用 Site Audit(网站诊断)抓取网站
  2. 转到 Redirects(重定向)报告
  3. 单击 Issues(问题)选项卡
  4. 查找 “Redirect loop(重定向循环)” 错误

如果你随后单击错误并单击 “View affected URLs(查看受影响的 URL)”,你将看到重定向的 URL 列表以及链中的所有 URL:

修复重定向循环的最佳方法取决于链中的最后一个 URL(循环之前)是否是预期的最终目标。

如果是,请从最终 URL 中删除重定向。 然后确保资源可访问并返回 200 状态代码。

如果不是,请将循环重定向结果更改为预期的页面。

当然,在这两种情况下,你都最好将任何有问题的内部链接换成重定向的最终 URL。

最后

SEO的重定向非常简单。 大多数情况下,你将使用服务器端 301 和 302 重定向,具体取决于重定向是永久的还是临时的。 但是,Google 处理 301 和 302 的方式存在一些细微差别,因此如果你遇到问题,可以阅读这两个指南:

有问题码?在 Twitter 上找我吧。

译者,Park Cheng,歪猫出海创始人。