自 1994 年以来,《机器人排除协议》(REP)一直控制着定义如何防止爬行器访问网站的规则。现在,谷歌已经向互联网工程工作组(IETF)提交了一份草案,使其成为一个互联网标准。此外,谷歌还开放了协议实现的源代码。
拟稿反映了现实世界中依赖robots.txt规则超过20年的经历,Googlebot和其他主要爬虫程序都使用了txt规则,依赖REP. txt规则的网站约有5亿个。
谷歌保留了 REP 的基本定义,但定义了许多没有考虑到的场景,并将其扩展到现代 web。特别是,新的 REP 不限于 HTTP,可以用于其他协议,包括 FTP 或受约束的应用程序协议。另一项新规定实际上限制了 robots.txt 文件的最大大小,要求开发人员至少解析其前 500kb 的内容。虽然不排除现有的 robots.txt 文件比这更大,但这一要求的目的是减少服务器上的负载。 新 REP 还定义了 robots.txt 文件缓存的时间,基本上形式化了谷歌已经执行了很长一段时间的规则,它设置了最大缓存生命周期为 24 小时,而没有指定缓存控制指令,例如 HTTP cache - control。在 robots.txt 文件由于服务器故障而无法访问的情况下,这条规则有一个例外,在这种情况下,可以延长缓存,以避免爬行以前已知不允许的页面。
草案中没有包括一些正在使用的指令,包括爬行延迟、nofollow和noindex,谷歌将在 2019 年 9 月 1 日之前停用所有处理此类规则的代码。这意味着,特别是依赖于 noindex 来阻止页面进入谷歌索引的网站管理员应该寻找替代方法了。这些方法包括在 HTML 中使用 noindex robots 元标记、HTTP 响应头或返回 404 或 410 HTTP 状态代码。谷歌还澄清说,虽然 robots.txt Disallow 指令并不保证某个页面不会被列在谷歌索引中,但他们的目标是,如果出于某种原因索引了这些页面,那么将来这些页面的可见性就会降低。
如前所述,谷歌还开放了他们在爬虫程序中使用的c++库的源代码。这个库可以被认为是协议草案的一个参考实现,并包含一个 robots.txt 规则的测试工具。谷歌新 REP 草案包括一个更新的 Backus-Naur 描述的语法规则,一个必须遵守的 robots.txt 文件。c++库和 Backus-Naur 规范的方向都是使开发人员更容易可靠地构建 robots.txt 解析器。
新的 REP 草案目前处于征求意见的状态,正在等待各相关方的反馈。
原文链接:
Google Formalizes Robots Exclusion Protocol in Effort to Make It an Internet Standard
评论