由Google访问的Ajax Url

时间:2012-09-17 08:59:01

标签: ajax url seo

我们遇到了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试图访问的示例网址:

 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函数生成的网址?googlebot是否可以直接访问基于Ajax的函数和网址?基本上主要问题是?正在转换为%2F,因此没有将所需的数据传递给我的脚本,这在我们的服务器错误日志中被记录为错误。

2 个答案:

答案 0 :(得分:1)

谷歌对这些JavaScript重定向非常好奇,他知道这些网址带有整页呈现(包括JS),Google工具栏数据或Chrome数据。

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

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

答案 1 :(得分:0)

Matt Cutts不久前曾说"Googlebot keeps getting smarter",另见this blog entry,2008年SEOmoz上还有一篇博文。

Googlebot会尝试执行您的用户所做的工作,并查看目前无法访问的内容。没有这样做包括在内。

如果您无法更改参数,那么您可以在服务器端解析请求时考虑到双重编码?