机器人未遵循robots.txt文件

时间:2018-07-09 10:02:37

标签: bots robots.txt

似乎有些机器人没有遵循我的robots.txt文件,其中包括JobType JobStart JobFinish Type1 2018-06-04 00:00:00.000 2018-06-11 00:00:00.000 ,它是来自majestic.com的文件,应该遵循指示。

文件如下:

MJ12bot

我要告诉机器人的是:

  • 只有google可以抓取包含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/的网址。
  • 两个查询之间的时间间隔至少应为30秒。

但是,MJ12bot仍在抓取包含/results//travel//viajar/的网址,此外,它不会在查询之间等待30秒。

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

文件有问题吗?

1 个答案:

答案 0 :(得分:1)

您的robots.txt是正确的。

例如,MJ12bot不应爬行http://example.com/reisen/42/,但可以爬行http://example.com/42/reisen/

如果您检查主机是否相同(httpshttpwww与无www,相同的域名),则可以考虑{{ 3}}:

  

我们热切希望看到有关MJ12bot可能违反robots.txt的任何报道。

如果您不想等待,可以尝试在直接定位MJ12bot时是否起作用:

User-agent: MJ12bot
Disallow: /results/
Disallow: /travel/
Disallow: /viajar/
Disallow: /reisen/
Crawl-Delay: 20

(我将Crawl-Delay更改为20,因为这是它们支持的最大值。但是,指定一个更高的值应该没问题,他们会四舍五入。)

更新

  

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

一个Disallow值始终是网址路径的sending Majestic a message

如果您想禁止抓取http://example.com/de/reisen/,则以下所有行都可以实现:

Disallow: /
Disallow: /d
Disallow: /de
Disallow: /de/
Disallow: /de/r

在原始robots.txt规范中,*Disallow值中没有特殊含义,因此Disallow: /*/travel/the beginning阻塞http://example.com/*/travel/

尽管有些机器人支持它(literally)。有关MJ12bot的文档说:

  

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

我不知道他们所指的Yahoo规范,但似乎他们也支持它。

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

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