3

我们遇到了 Googlebot 尝试访问 Ajax 函数上的 URL 并由于某些 URL 编码问题而失败的问题。首先,我们有点困惑,为什么 googlebot 试图在 JS 脚本上访问 JS 函数中的 URL。

JS代码:

 ajaxFunction(siteid) {
   $.get(location.protocol + '//' + location.hostname + '/ajax/?ajaxscript=detail&siteid='+ siteid, function() { ... });
}

上面的函数在我们网页中包含的 JS 脚本中,当点击链接/按钮时会调用该脚本。Googlebot 以某种方式试图直接访问上述函数生成的 URL,并由于“?”而出错。字符被 URL 编码,因此 siteid 值不会被传递。

google 尝试访问的示例 URL:

 http://www.google.com/url?sa=t&rct=j&q=duo%2Bboots&source=web&cd=4&ved=0CDQQFjAD&url=http%3A%2F%2Fwww.MYSITE.com%2Fajax%2F%253Fajaxscript%3Ddetail%26siteid%3D1 

您知道为什么 googlebot 尝试直接访问由 JS 函数生成的 URL,并且 googlebot 是否可以直接访问基于 ajax 的函数和 URL?基本上主要问题是?正在转换为 %2F,因此没有将所需的数据传递给我的脚本,这在我们的服务器错误日志中被记录为错误。

4

2 回答 2

1

Google 对这些 JavaScript 重定向非常好奇,他知道这些带有整页渲染(包括 JS)、Google 工具栏数据或 Chrome 数据的 url。

我总是对我的所有 AJAX 请求使用前缀,例如http://domain.com/_ajax/xxxxx,然后我禁止所有机器人使用 robots.txt 抓取以 /_ajax/ 开头的网址

您还可以在 X-Robots-Tag HTTP 标头中添加“noindex,nofollow”。

于 2012-09-17T16:50:01.043 回答
0

马特·卡茨(Matt Cutts)前段时间说“Googlebot 越来越聪明”,另请参阅此博客条目,甚至早在 2008 年就有一篇关于SEOmoz的博文。

Googlebot 会尝试执行您的用户所做的事情并查看迄今为止无法访问的内容。不这样做包括在内。

如果您无法在考虑到双重编码的情况下解析服务器端的请求之前更改参数?

于 2012-09-17T09:15:24.557 回答