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



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

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

这是为了SEO,我正试图找到一种方法,在不必创建新页面或创建表单/提交的情况下,将301重定向到链接中的同一页面。

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

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

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

  1. JavaScript重定向

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

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

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

结果:不出所料,谷歌和从索引中删除的原始页面。新URL已编入索引,并且对于相同的查询立即排名在相同的位置。这这让我们感到惊讶,似乎表明JavaScript重定向可以(在时间)的行为与排名中的永久301重定向完全相同立场

下次您的客户端想要为实现JavaScript重定向时他们的网站移动,你的答案可能不需要是,"请不要。"在这种关系中似乎存在排名信号的转移。支持这一发现的是谷歌指南中的一句话:

"使用JavaScript重定向用户可能是一种合法的做法。对于例如,如果用户登录后将其重定向到内部页面在中,您可以使用JavaScript来执行此操作。在检查JavaScript或其他重定向方法,以确保您的网站遵守我们的指导方针,考虑其意图。请记住,301重定向在移动你的网站,但你可以使用JavaScript重定向如果你不能访问你的网站的服务器">

简而言之,

JavaScript完全在客户端运行。301重定向被认为是来自服务器的响应。这意味着如果没有服务器支持,您就无法做到这一点。

301是一个服务器响应代码。您将无法从jQuery创建301重定向。

您必须从PHP中执行301。

如果这只是为了SEO目的,那么这将起作用
<meta http-equiv="refresh" content="0;url=YOUR_URL">
谷歌认为这是301重定向,尽管它不是

301重定向是永久重定向,基本上是HTTP服务器响应。JavaScript/jQuery是在客户端上执行的东西。两个不同的世界。

相反,如果不能在服务器上执行,则可以将最终URL放入href中。

或者,如果你问是否可以重定向当前页面,是的,可以通过META重定向或更改window.location.

如果你使用的是Apache,你可以使用mod_rewrite进行301重定向。

最新更新