机器人程序不遵循robots.txt文件

机器人程序不遵循robots.txt文件,bots,robots.txt,Bots,Robots.txt,似乎有些机器人没有遵循我的robots.txt文件,包括MJ12bot,它是majestic.com上的一个,应该遵循说明 该文件如下所示: User-agent: google User-agent: googlebot Disallow: /results/ Crawl-Delay: 30 User-agent: * Disallow: /results/ Disallow: /travel/ Disallow: /viajar/ Disallow: /reisen/ Crawl-Dela

似乎有些机器人没有遵循我的robots.txt文件,包括
MJ12bot
,它是majestic.com上的一个,应该遵循说明

该文件如下所示:

User-agent: google
User-agent: googlebot
Disallow: /results/
Crawl-Delay: 30

User-agent: *
Disallow: /results/
Disallow: /travel/
Disallow: /viajar/
Disallow: /reisen/
Crawl-Delay: 30
我想告诉机器人们的是:

  • 只有谷歌才能抓取任何包含
    /travel/
    /viajar/
    /reisen/
    的url
  • 他们都不应该访问任何包含
    /results/
    的url
  • 两次查询之间的时间间隔应至少为30秒
然而,MJ12bot正在抓取包含
/travel/
/viajar/
/reisen/
的URL,此外,它不会在查询之间等待30秒

mydomain.com/robots.txt正在按预期显示该文件


文件有什么问题吗?

您的robots.txt是正确的

例如,MJ12bot不应爬网
http://example.com/reisen/42/
,但它可能会爬行
http://example.com/42/reisen/

<如果您检查主机是相同的(<代码> http://c> v>代码> http,<代码> www v.<代码> www ,同一域名),您可以考虑:

我们非常希望看到MJ12bot可能违反robots.txt的任何报告

如果您不想等待,您可以尝试直接针对MJ12bot时是否有效:

User-agent: MJ12bot
Disallow: /results/
Disallow: /travel/
Disallow: /viajar/
Disallow: /reisen/
Crawl-Delay: 20
(我将
爬网延迟
更改为20,因为这是他们支持的最大值。但是指定更高的值应该没有问题,他们会将其取整。)

更新
为什么它们会爬行
http://example.com/42/reisen/
?这实际上可能是我的问题,因为url的格式是
example.com/de/reisen/
example.com/en/travel/
。。。那么我应该换成
*/travel/

Disallow
值始终是URL路径的值

如果要禁止对
http://example.com/de/reisen/
,以下所有行都可以实现:

禁止:/
不允许:/d
不允许:/de
不允许:/de/
不允许:/de/r
等等

在最初的robots.txt规范中,
*
禁止
值中没有特殊意义,因此
禁止:/*/travel/
将阻止
http://example.com/*/旅行/

不过,有些机器人程序支持它()。关于MJ12bot的文档说明:

与Yahoo的通配符规范兼容的禁止指令中的简单模式匹配

我不知道他们提到的雅虎规范,但似乎他们也会支持它

但如果可能,当然最好依靠标准功能,例如:

User-agent: *
Disallow: /en/travel/
Disallow: /de/reisen/

为什么它们会爬行
http://example.com/42/reisen/
?这实际上可能是我的问题,因为url的格式是
example.com/de/reisen/
example.com/en/travel/
。。。那么我应该改成
*/travel/
吗?我找到了更多信息。似乎正确的方法应该是
/*/travel/
。我没弄错吧?如果是这样的话,你可以修改答案,我很乐意将其标记为接受。