【问题标题】:Ajax Url accessed by GoogleGoogle 访问的 Ajax 网址
【发布时间】:2012-09-17 08:59:00
【问题描述】:

我们遇到了 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,因此没有将所需的数据传递给我的脚本,这在我们的服务器错误日志中被记录为错误。

【问题讨论】:

    标签: ajax url seo


    【解决方案1】:

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

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

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

    【讨论】:

    • 即使页面被robots.txt屏蔽,Google 仍可能将其编入索引
    【解决方案2】:

    Matt Cutts 不久前说过 "Googlebot keeps getting smarter",另请参阅 this blog entry,甚至早在 2008 年就有一篇关于 SEOmoz 的博文。

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

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

    【讨论】:

    • 非常感谢您的快速评论
    猜你喜欢
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    相关资源
    最近更新 更多