似乎有些机器人没有遵循我的robots.txt文件,其中包括JobType JobStart JobFinish
Type1 2018-06-04 00:00:00.000 2018-06-11 00:00:00.000
,它是来自majestic.com的文件,应该遵循指示。
文件如下:
MJ12bot
我要告诉机器人的是:
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/
的网址。但是,MJ12bot仍在抓取包含/results/
,/travel/
或/viajar/
的网址,此外,它不会在查询之间等待30秒。
mydomain.com/robots.txt正在按预期显示文件。
文件有问题吗?
答案 0 :(得分:1)
您的robots.txt是正确的。
例如,MJ12bot不应爬行http://example.com/reisen/42/
,但可以爬行http://example.com/42/reisen/
。
如果您检查主机是否相同(https
与http
,www
与无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/