10

我正在构建一个网站,我想对用户表现得像花哨一样,但希望网络爬虫仍然能够正确导航。

我有以下锚标签:

<a class="overrideClick" href="/projects">Projects</a>

使用以下 jQuery:

$(document).on('click', '.overrideClick', function(e) { 
    e.preventDefault(); 
    ( ... ) 
});

这会杀死 SEO 还是我可以期待 Google/Bing/etc 像我希望的那样行事并遵循 /projects?我假设他们在历史上只使用过 href 值,但我知道谷歌现在正在评估一些 JavaScript。

我知道我可以不包含爬虫客户端的 js,但知道会很有趣。对于科学...

4

4 回答 4

6

我相当肯定,在你的 href 中有一个 URL 并在脚本中覆盖行为是正确的做法。这样,如果机器人无法执行 JS,它们仍然会导航到您的页面。如果可以,他们会看到您加载的任何新内容(假设您正在加载与基本链接 href 和链接文本相关的内容)。

于 2012-08-19T21:34:13.540 回答
2

我认为这个链接对你有用。谷歌似乎确实将 Javascript 超链接考虑在内。

于 2012-08-19T21:47:12.763 回答
1

“使用诸如 Lynx 之类的文本浏览器来检查您的网站,因为大多数搜索引擎蜘蛛看到您的网站的方式与 Lynx 一样。如果 JavaScript、cookie、会话 ID、框架、DHTML 或 Flash 等花哨的功能让您看不到所有您的网站在文本浏览器中,那么搜索引擎蜘蛛可能无法抓取您的网站。”

http://support.google.com/webmasters/bin/answer.py?hl=en&answer=35769

我见过的所有这些都只分析标记以确定引用,因为它们通常会取出这些地址并将它们传递给其他分布式代理进行处理。我知道现在很少有人会看 javascript,但如果你只在所有这些中包含 href,你就会得到它。

于 2012-08-20T16:07:43.153 回答
0

似乎 Google bot 不喜欢e.preventDefault().

我有一个在 jQuery UI 对话框中打开一些锚点的页面。这个锚点或锚点后面的内容永远不会被索引,所以我认为 Google bot 会停止e.preventDefault()

有人知道如何解决这个问题吗?如果 return false 会这样做,我会尝试。

于 2013-06-14T18:25:45.510 回答