robots.txt -- 用户代理块之间需要留空行吗,还是可选的?

3

权威文档中给出了貌似相互矛盾的描述。

机器人排除标准:

('record' 指每个用户代理块)

"该文件由一个或多个记录组成,由一个或多个空白行(以CR、CR / NL或NL结尾)分隔。每条记录包含如下形式的行...".

Google 的 机器人.txt 规范:

"... 请注意可选使用空格和空行以提高可读性。"

所以 - 根据我们可以获得的文档 - 这里是否需要空行?

User-agent: *
Disallow: /this-directory/

User-agent: DotBot
Disallow: /this-directory/
Disallow: /and-this-directory/

这样行吗?

User-agent: *
Disallow: /this-directory/
User-agent: DotBot
Disallow: /this-directory/
Disallow: /and-this-directory/

这个问题似乎不适合在 Stack Overflow 上讨论,因为它涉及到 SEO,而这个话题在 Stack Overflow 上是不被允许的。请阅读"哪些 SEO 问题应该被视为非编程/非管理问题关闭?",以更好地了解何时可以在此处提出 SEO 问题(大多数情况下是不允许的),以及您可能在哪里获得帮助。 - John Conde
3
我不同意您的评估。这个问题与SEO毫无关系。这个问题涉及到正确的格式化配置,以便正确地管理网站,例如防止使用网站资源的机器人等。 - zzzaaabbb
2
@JohnConde 这接近于根据你提供的链接所说与编程有关的问题的第一个例子。 - Jin-oh Kang
2个回答

2

最好不要有任何空行。我曾经在我的robots.txt文件中遇到了问题,但是在删除所有空行之后一切都正常了。


2

Google Robots.txt Parser and Matcher Library没有对空行进行特殊处理。Python urllib.robotparser总是将空行解释为新记录的开始,尽管它们并不是严格要求的,解析器也会将User-Agent:识别为其中之一。因此,两种配置都可以与任何一个解析器很好地配合使用。

然而,这只适用于两个主要的robots.txt解析器;您仍应该以最常见和最明确的方式编写,以处理糟糕编写的自定义解析器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接