大多数网站所有者必须在某一时刻处理重定向。当您重塑品牌、合并多个网站、删除页面或只是将页面移动到新位置时,重定向有助于让用户和搜索引擎可以访问内容。然而,重定向的世界是一个模糊的世界,因为不同的场景存在不同类型的重定向。 因此,了解它们之间的差异很重要。
什么是重定向?
重定向(Redirects)是一种将用户(和机器人)转发到他们请求的 URL 之外的 URL 的方法。
为什么要使用重定向?
移动内容时应使用重定向的原因有两个:
为访问者提供更好的用户体验–您不希望访问者在尝试访问移动的页面时收到“找不到页面”警告。重定向通过无缝地将访问者发送到内容的新位置来解决这个问题。
帮助搜索引擎了解您的网站–重定向告诉搜索引擎内容已移动到何处以及移动是永久的还是临时的。这会影响页面是否以及如何出现在其搜索结果中。
什么时候应该使用重定向?
当您将内容从一个 URL 移动到另一个 URL 以及偶尔删除内容时,您应该使用重定向。让我们快速浏览一下您想要使用它们的一些常见场景。
1. 移动域时
如果您要更名并从一个域转移到另一个域,则需要将旧域上的所有页面永久重定向到它们在新域上的位置。
2. 合并网站时
如果您要将多个网站合并为一个,则需要将旧 URL 永久重定向到新 URL。
3. 切换到 HTTPS 时
如果您从 HTTP 切换到 HTTPS(强烈推荐),您需要将每个不安全 (HTTP) 页面和资源永久重定向到其安全 (HTTPS) 位置。
4. 进行促销时
如果您正在进行临时促销活动并希望将访问者从 domain.com/laptops 发送到 domain.com/laptops-black-friday-deals,则需要使用临时重定向。
5. 删除页面时
如果您要从网站中删除内容,则应尽可能将其 URL 永久重定向到相关的类似页面。这有助于确保任何指向旧页面的反向链接仍可用于 SEO 目的。它还确保任何书签或内部链接仍然有效。
重定向的类型
重定向分为两组:服务器端重定向和客户端重定向。每个组都包含许多重定向,搜索引擎将这些重定向视为临时的或永久的。因此,您需要为手头的任务使用正确的重定向,以避免潜在的 SEO 问题。
1. 服务器端重定向
服务器端重定向是服务器决定在请求页面时将用户或搜索引擎重定向到何处的重定向。它通过返回 3XX HTTP 状态代码来实现。如果你在做 SEO,你大部分时间都会使用服务器端重定向,因为客户端重定向(我们将很快讨论这些)有一些缺点,并且往往更适合非常具体和罕见的使用案件。以下是每个 SEO 都应该知道的 3XX 重定向:
301重定向
301 重定向将用户转发到新 URL,并告诉搜索引擎该资源已永久移动。当遇到 301 重定向时,搜索引擎通常会从索引中删除旧的重定向 URL,转而使用新 URL。他们还将 PageRank(权限)转移到新 URL。
302重定向
302 重定向将用户转发到新 URL,并告诉搜索引擎该资源已临时移动。当遇到 302 重定向时,搜索引擎会保留旧 URL 的索引,即使它已被重定向。但是,如果您长时间保留 302 重定向,搜索引擎可能会开始将其视为 301 重定向,而是将新 URL 编入索引。像301s,302s转移PageRank。不同之处在于转移发生“向后”。换句话说,“新”网址的 PageRank 向后转移到旧网址(除非搜索引擎将其视为 301)。
303重定向
303 重定向将用户转发到与请求的资源类似的资源,并且是重定向的一种临时形式。当用户点击浏览器中的“后退”按钮时,它通常用于防止表单重新提交。您通常不会将 303 重定向用于 SEO 目的。如果这样做,搜索引擎可能会将它们视为 301 或 302.
307重定向
307 重定向与 302 重定向相同,只是它在执行重定向时保留了原始请求的 HTTP 方法(POST、GET)。
308重定向
308 重定向与 301 重定向相同,只是在执行重定向时保留了原始请求的 HTTP 方法。谷歌表示它对待 308 重定向与 301 重定向相同,但大多数 SEO 仍然使用 301 重定向。
2. 客户端重定向
客户端重定向是浏览器决定将用户重定向到何处的重定向。您通常不应该使用它,除非您没有其他选择。
307重定向
当站点使用 HSTS 时,307 重定向通常发生在客户端。这是因为 HSTS 告诉客户端的浏览器,服务器只接受安全 (HTTPS) 连接,并在将来被要求从站点请求不安全 (HTTP) 资源时执行内部 307 重定向。
元刷新重定向
元刷新重定向告诉浏览器在设定的秒数后重定向用户。Google 理解它,并且通常会将其视为 301 重定向。然而,当被问及在 Twitter 上延迟元重定向时,谷歌的约翰穆勒说,“如果你希望它被视为重定向,那么让它像重定向一样有意义。”无论哪种方式,Google 都不建议使用它们,因为它们可能会让用户感到困惑,并且并非所有浏览器都支持。Google 建议改用服务器端 301 重定向。
JavaScript 重定向
正如您可能猜到的那样,JavaScript 重定向使用 JavaScript 来指示浏览器将用户重定向到不同的 URL。有些人认为 JS 重定向会给搜索引擎带来问题,因为他们必须渲染页面才能看到重定向。虽然这是真的,但对于谷歌来说这通常不是问题,因为它现在渲染页面的速度如此之快。(不过,其他搜索引擎仍然可能存在问题。)总而言之,在可能的情况下使用 3XX 重定向仍然更好,但如果这是您唯一的选择,则 JS 重定向通常很好。
重定向的最佳实践
重定向可能会变得复杂。为了帮助您,如果您参与 SEO,这里有一些最佳实践需要牢记。
1. 将 HTTP 重定向到 HTTPS
在这个阶段,每个人都应该使用 HTTPS。它为您的网站提供了额外的安全层,并且它是一个小的 Google 排名因素。无论您使用哪种方法,都值得在几个页面上重复它,这样您就可以确信在您的网站上进行了正确的重定向。
2. 使用 HSTS(创建 307 重定向)
在您的服务器上实施 HSTS(HTTP 严格传输安全)可阻止人们访问您网站上的非安全 (HTTP) 内容。它通过告诉浏览器你的服务器只接受安全连接并且他们应该做一个内部 307 重定向到他们被要求访问的任何 HTTP 资源的 HTTPS 版本来做到这一点。这不能替代 301 或 302 重定向,如果在您的网站上正确设置了这些重定向,则并非绝对必要。然而,我们认为这是当今的最佳实践——即使只是为了为用户加快速度。
实施 HSTS 后,请考虑将您的站点提交到 HSTS 预加载列表。这为尝试访问您网站的每个人启用了 HSTS——即使他们之前没有访问过它。
3. 避免元刷新重定向
元刷新重定向并不理想,因此值得检查您的站点并用 301 或 302 重定向替换它们。您可以使用免费的 Ahrefs 网站管理员工具帐户轻松完成此操作。只需使用 Site Audit 抓取您的网站并查找“元刷新重定向”错误。如果您随后单击错误并点击“查看受影响的 URL”,您将看到带有元刷新重定向的 URL。
4. 将删除的页面重定向到相关的工作替代品(在可能的情况下)
移动内容时重定向 URL 很有意义,但删除内容时重定向通常也很有意义。这是因为当用户尝试访问已删除的页面时,看到“404 not found”错误并不理想。将他们重定向到相关的工作替代方案通常对用户更友好。在设置爬网时启用“反向链接”作为来源。这将允许站点审计找到带有反向链接的已删除页面,即使没有指向您站点上页面的内部链接。
5. 避免长重定向链
重定向链是在请求的资源与其最终目的地之间发生多次重定向时。Google 的官方文档说它最多跟踪 10 个重定向跃点,因此任何比这更短的重定向链对于 SEO 来说都不是问题。Googlebot 最多跟踪 10 个重定向跃点。如果爬虫在 10 个跃点内没有收到内容,Search Console 将在网站的索引覆盖率报告中显示重定向错误。但是,对于用户来说,长链仍然会减慢速度,因此最好尽可能避免它们。
6. 避免重定向循环
重定向循环是无限循环的重定向,当 URL 重定向到自身或重定向链中的 URL 重定向回链中较早的 URL 时,就会发生这种无限循环。它们有问题有两个原因:
对于用户——他们切断了对预期资源的访问,并在浏览器中触发了“重定向过多”错误。
对于搜索引擎 - 他们“陷阱”爬虫并浪费爬虫预算。
写在最后
SEO 重定向非常简单。大多数情况下,您将使用服务器端 301 和 302 重定向,具体取决于重定向是永久的还是临时的。