1

Googlebot 似乎在我的 jQuery 中爬行并创建以 /a 结尾但不存在的链接,然后将它们报告为 404 错误。

http://www.mySite.com/a

该站点在 W3C 验证绿色。

"/a" 来自 jQuery 本身。 编辑:以下是 jQuery v1.5 和 1.5.2 中的一行代码(我在里面查看的仅有的两个)

<a href='/a' style='color:red;float:left;opacity:.55;'>a</a>

现在,我在它失控之前在 htaccess 中重定向它......

Redirect 301   /a   http://www.mysite.com

有谁知道 Googlebot 为什么/如何进入 jQuery?


编辑:

我已经用 robots.txt 文件阻止了 jQuery 文件,但我真的没想到 Googlebot 会进入外部 JavaScript 文件。


编辑2:

以下是 Google 员工 JohnMu 在我在 Google Groups 开始的主题中对此问题的回应。看来我还是要做301。

约翰穆

谷歌员工

凌晨 4 点 39 分

嗨,大家好

对此只是一个简短的说明——是的,我们正在为许多来自 jQuery JavaScript 的站点选择“/a”链接。但是,这通常不是问题,如果我们将“/a”视为 404,那么这对我们来说没问题。与其他 404-URL 一样,我们会将其列为网站管理员工具中的抓取错误,但同样,这不会成为抓取、索引或排名的问题。如果您想确保它不会在网站管理员工具中触发抓取错误,那么我建议您只将该 URL 301 重定向到您的主页(禁止该 URL 也会将其作为抓取错误显示 - 它将被列为robots.txt 不允许的 URL)。

我还建议不要明确禁止抓取 jQuery 文件。虽然我们通常不会自行为其编制索引,但我们可能需要访问它才能为您的网站生成良好的即时预览。

所以总结一下:如果您在网站管理员工具的抓取错误中看到“/a”,您可以就这样离开它,它不会造成任何问题。如果您想将其删除,您可以执行 301 重定向到您的主页。

干杯

约翰

4

1 回答 1

2

看起来 jQuery 使用它作为测试模板来确定浏览器对功能的支持。不过,我不确定为什么谷歌机器人会看到这一点。我不知道网络爬虫通常运行任何 Javascript。这意味着它们实际上是作为一个网络浏览器运行的(我想知道哪个?)。似乎不太可能。

(编辑 - 看到这个:网络爬虫如何处理 javascript - 表明谷歌可能会尝试从脚本中提取一些东西。很惊讶它不会被编程来识别 jQuery 的一部分,你使用非标准名称来包含吗?)

或者,您的 jQuery 包含的标头是否有可能不正确?也许它使用 HTML mime 类型提供服务,大多数浏览器可能不会关心它,因为它们的类型也是由script包含设置的,但也许机器人会决定解析。

无论如何,而不是设置重定向,你为什么不直接使用robots.txt?添加这一行:

Disallow: /a

您也可以尝试修复 jQuery。稍微混淆一下链接可能会奏效,例如更改违规行:

  div.innerHTML = "   <link/><table></table><"+"a hr"+"ef='/a'"
  +" style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";

如果谷歌足够聪明,可以真正解析字符串连接,这会让我感到震惊,你可以更进一步,将“href”之类的东西分配给一个变量,然后与之连接。我不敢相信他们的 js 扫描器会走那么远,这基本上就像尝试运行它一样。

于 2011-04-21T21:00:37.223 回答