对网站管理员而言,robots.txt 是上线前必须核对的基础配置。这份位于站点根目录的文本文件,本质上是一份写给搜索引擎爬虫的抓取许可说明,它规定了哪些目录可以访问、哪些需要回避。配置得当,爬虫会将有限的抓取额度集中在关键页面上,加速内容收录;配置失误,轻则核心页面迟迟不被索引,重则整站从搜索结果中消失。接下来,我们逐一拆解这份文件的语法要点和常见失误。
该文件的默认访问路径是站点根目录下的 /robots.txt,比如 https://example.com/robots.txt。它的角色是爬虫访问时的路径指引,而不是决定某个页面是否被搜索引擎收录的最终依据。如果目的是阻止网页进入索引库,正确的做法是使用 noindex 标签;robots.txt 只负责控制是否发起抓取请求,对索引判定没有直接干预能力,这两者的分工必须分清。
另一个需要留意的点是,robots.txt 对爬虫来说属于一种行业惯例性质的约定。正规搜索引擎的爬虫会遵从其中的规则,但面对一些抓取工具或内容采集脚本,这份文件往往不被理会。凡涉及用户登录信息、支付回调或内部数据接口的目录,必须叠加访问鉴权、IP 白名单或 Web 应用防火墙等硬性手段,切勿将敏感资源的保护完全寄托在 robots.txt 上。
robots.txt 的结构由多个独立的规则块组成,每个规则块的开头必须是 User-agent 字段。书写时遵循“字段名: 值”的格式,建议统一使用小写字母,并在冒号后保留一个空格。这样可以有效减少因格式解析歧义带来的兼容性问题。
该字段声明此规则块针对哪类爬虫生效。例如 User-agent: Baiduspider 仅约束百度爬虫;若想让规则作用于所有搜索引擎爬虫,则使用通配符 User-agent: *。一个文件中可以存在多个规则块,分别对不同品牌的爬虫设置差异化的访问策略。
Disallow 用来禁止爬虫访问某一路径,Allow 则用于明确允许访问。有一个容易忽略的用法:当 Disallow 后不跟任何内容(即 Disallow:)时,代表清空该规则块的限制,等同于允许抓取全站内容。当 Allow 与 Disallow 同时匹配同一个网址时,搜索引擎遵循“路径最长优先”的匹配原则,即路径描述更详细的规则胜出。举个例子,若站点中存在 Disallow: /member/ 与 Allow: /member/public/ 两条规则,那么后者对应的目录会被正常放行。
Sitemap 字段用于指向网站地图的完整访问地址,便于爬虫快速了解站内内容的分布,建议将其放在文件末尾。Crawl-delay 字段虽然在字面上用于设定连续抓取的间隔秒数,但谷歌官方已公开表态不再支持该指令。若确需调控抓取速率,应前往 Google Search Console 的“抓取频率”设置中操作。
下面整理了几个典型的配置需求,可以直接套用,只需将目录名替换成自己的实际路径。
经过大量案例分析,以下失误出现的频率最高,部署时建议逐一检查。
不会。已索引的页面会保留在搜索结果中,直到爬虫下一次因访问被拦截而无法重新抓取更新内容,才可能逐步移出索引。对于加急处理,可借助站点后台的 URL 检查工具单独请求重新抓取。
搜索引擎执行的是最具体匹配原则。意即,哪个规则的路径字符数更多、更贴近实际网址,就采用哪条规则的内容。若路径长度相同,则 Disallow 优先于 Allow。
不建议。作为仅供爬虫参照的文件,敏感的登录页或隐私页面一旦被他人直接访问,仍能获取内容。建议结合身份验证机制,确保未登录用户无法读取,同时再配合 noindex 指令进行双重保险。
配置 robots.txt 的关键在于厘清抓取与收录的区别,并始终遵循“具体路径优先、规则块清晰分隔”的原则。部署完成后,建议参照上述避坑清单逐项核对,借助搜索引擎站长工具中的抓取测试功能验证每条规则的实际效果,再决定是否正式上线。定期复查这份文件,及时移除不再需要的屏蔽规则,对保持站点对搜索引擎的友好度会带来直接的好处。