2

这就是我现在正在使用的:

User-agent: *
Allow: /
Allow: /video/funny-dogs/index.html
Allow: /video/funny-cats/index.html
Allow: /video/funny-dolphins/index.html
Disallow: /video/

但似乎所有其他“/video/”网址也在被抓取。

那有什么问题?

4

2 回答 2

3

您的 robots.txt 文件绝对应该适用于 Google,而且我相信它适用于 Bing。但是,对于许多其他机器人,它可能不起作用,因为并非所有机器人都以相同的方式优先考虑竞争允许和禁止。此外,一些机器人根本不支持允许。

对于 Google/Bing 以外的机器人,您可以通过删除“允许:/”行来增加成功的机会。许多较旧的机器人会查找可应用于当前 URL 的第一个指令,然后停止查找。对于这些机器人,将始终应用允许,而始终忽略其他指令。删除“允许:/”应该可以解决这个问题。

如果 Google 或 Bing 不遵守您的 robots.txt 文件,则可能有问题。您可能会检查以下内容:

  • robots.txt 文件是最近添加/更改的吗?Google 通常需要长达一周的时间才能注意到新的 robots.txt 文件。
  • robots.txt 是否在站点的根目录中?(例如在http://somesite.com/robots.txt,而不是http://somesite.com/subdir/robots.txt
  • 对 robots.txt 文件的请求是否会在响应标头中返回任何有趣的内容,例如 X-Robots-Tag:noindex 或 200 以外的状态码?
于 2013-09-03T17:11:28.957 回答
1

最初的 robots.txt 规范说机器人应该读取 robots.txt 并采用第一个适用的规则。添加时Allow,并没有改变,许多机器人仍然使用该规则。其他机器人使用最宽松的规则。

在第一种情况下,Allow: /在文件的第一行会导致机器人认为它可以爬行。在第二种情况下,文件中Allow: / 任何位置的存在都会导致机器人假设它可以抓取任何东西。

从来没有充分的理由包括Allow: /. robots.txt 中的假设是,如果没有明确禁止文件,则允许抓取。Allow旨在成为Disallow.

删除Allow: /. 事情应该会奏效。

于 2013-09-04T20:42:47.000 回答