是否可以使用 javascript 或 jQuery 进行 301 重定向?

新手上路,请多包涵

我正在运行 Apache 2.0,我只是想知道是否可以使用 JavaScript 或 jQuery 进行 301 重定向。

我有一个 <a></a> 带有 href 的标签到指定位置,当我单击该链接时,我被要求进行 301 重定向。

这是针对 SEO 的,我正在尝试找到一种方法来将 301 重定向到链接中的同一页面,而无需创建新页面或创建表单/提交。

原文由 Caleb Doucet 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 732
2 个回答

简而言之, 没有

JavaScript 完全在客户端运行。 301 重定向应该是来自服务器的响应。这意味着如果没有服务器支持,您将无法执行此操作。

原文由 techfoobar 发布,翻译遵循 CC BY-SA 3.0 许可协议

我知道这是一个老问题,但答案并没有真正解决问题中提出的主要问题,即用于 SEO 目的的 301 重定向(今天的答案很可能与最初提出问题时的答案不同)问和回答)。

不,您不能从客户端进行 301 重定向的答案在技术上是正确的,但是(更重要的是)您不一定需要这样做。虽然真正的 301 是首选,但在这种不可能的情况下(或者例如从 hashbang URL 转换回传统 URL),问题实际上是是否有实现目标的可行替代方案。

Search Engine Land 对 Google 在 JavaScript 方面的能力进行了详细测试,这是该文章的相关摘录:

  1. JavaScript 重定向

我们首先测试了常见的 JavaScript 重定向,改变了 URL 以不同方式表示的方式。我们选择的方法是 window.location 函数。执行了两个测试:测试 A 包括 window.location 函数中的绝对 URL。测试 B 使用了相对 URL。

结果:重定向很快被谷歌跟踪。从索引的角度来看,它们被解释为 301——最终状态 URL 取代了 Google 索引中的重定向 URL。

在随后的测试中,我们使用了一个权威页面并实现了 JavaScript 重定向到站点上具有完全相同内容的新页面。原始 URL 排名在 Google 热门查询的第一页。

结果:正如预期的那样,重定向被谷歌跟踪并且原始页面从索引中删除。新 URL 被编入索引,并立即针对相同的查询排名在相同的位置。这让我们感到惊讶,并且似乎表明从排名的角度来看,JavaScript 重定向可以(有时)表现得与永久 301 重定向完全一样。

下次您的客户想要为他们的网站移动实施 JavaScript 重定向时,您的回答可能不需要是“请不要”。似乎在这种关系中存在排名信号的转移。支持这一发现的是来自 谷歌指南 的引述:

“使用 JavaScript 重定向用户可能是一种合法的做法。例如,如果您在用户登录后将用户重定向到内部页面,您可以使用 JavaScript 来执行此操作。在检查 JavaScript 或其他重定向方法以确保您的网站符合要求时根据我们的指南,考虑其意图。请记住,301 重定向最适合移动您的网站,但如果您无法访问您网站的服务器,则可以为此目的使用 JavaScript 重定向。”

原文由 Chris Searles 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏