window.location.href ='some_page.html'后跟搜索引擎吗?

时间:2010-04-02 20:27:19

标签: javascript seo

目前,我们的网站使用链接允许用户更改其区域设置。这样做的问题在于,您可以从网站上的每个页面获得大量随机链接到同一页面,以及其他语言。当搜索引擎遍历此时,会得到一个过于复杂的网站视图。

我们打算将其更改为表单帖子以避免这种情况。但是,在我看来,我们应该只能将其更改为onclick =“window.location.href ='change_my_language.php'”而不是href =“change_my_language.php”。我对吗?或者现在主要搜索引擎是否会扫描并遵循此类事情?

5 个答案:

答案 0 :(得分:2)

要解决重复内容的较大问题,您可以使用canonical link tag在其他语言的网页上指定首选文档的网址。

<!-- on http://www.example.com/article.php?id=123&language=something-else -->
<link rel="canonical" href="http://www.example.com/article.php?id=123" />

为了节省搜索引擎在其他网页上登陆的麻烦,将rel="nofollow"添加到链接并不会有什么坏处,以确保机器人不会浪费时间检查它们。但是,规范链接标记仍然至关重要,以防有人链接到您的其他语言内容,以确保您的首选页面获得排名信用。

答案 1 :(得分:0)

我相当肯定搜索引擎不解析JavaScript,因此任何更改location对象的任何属性值的代码都不会跟随URL。

修改
有关该主题的有趣文章:http://www.seroundtable.com/archives/019026.html

和bobince对这个可能重复的问题的答案表明了相同:window.location and SEO

答案 2 :(得分:0)

当请求更改服务器的状态时,必须使用POST方法,即请求具有副作用:

http://www.cs.tut.fi/~jkorpela/forms/methods.html

不,搜索引擎将无法关注javascript链接,但POST是更优雅的解决方案。

答案 3 :(得分:0)

  

当搜索引擎遍历此时,会得到一个过于复杂的网站视图。

这应该不是问题。只要您使用lang="..."正确标记每个页面,搜索引擎就应该知道如何处理它。您遇到的实际问题是什么导致您认为搜索引擎被“复杂”链接映射混淆了?

如果你真的想要明白,你可以给他们sitemap

  

然而,在我看来,我们应该能够将其更改为onclick =“window.location.href ='change_my_language.php'”而不是href =“change_my_language.php”

这会降低网站的可用性和可访问性,以及(故意)破坏搜索引擎。

无论如何,无论你做什么,你都应该将每个语言版本保留在自己的URL上(例如/en/category/title)而不是完全依赖于语言设置cookie,否则你确实会冒着混淆的风险搜索引擎。通常, 希望搜索引擎为您拥有的每个语言版本编制索引,以便从其他语言的用户那里获取搜索结果。

答案 4 :(得分:-1)

Google在解析JavaScript方面越来越好。我认为搜索引擎现在不会遵循这个链接......但是为了更加确定它们没有关注你可以改变你的锚标签而不是使用onclick =“document.location ='url'”方法

虽然您可能想要做的是将rel =“nofollow”添加到这些链接中。您还可以向主页面添加规范链接。