robots.txt 是网站根目录下一个无足轻重的文本文件,却能在很大程度上左右搜索引擎对站点的抓取与收录。配置妥善,它能帮助爬虫高效定位核心内容,保护后台及敏感目录;配置失当,则可能让整站陷入无法被抓取的窘境,或造成资源被白白浪费。本文旨在帮助你理清其语法规则与匹配逻辑,并指出那些容易被忽略的坑点。
从本质上讲,robots.txt 是站主写给搜索引擎爬虫的一封公开信,用以声明哪些路径可以访问、哪些路径应当回避。它并非强制性的安全措施,而是一种“君子协定”,主流搜索引擎如 Google、百度都会读取并遵守其中的规则。
在日常运维中,这份文件的价值主要体现在三个层面:屏蔽站内非公开目录(如后台、测试页);阻挠爬虫抓取包含大量重复参数的动态 URL;标明 Sitemap 的绝对地址,引导爬虫更快发现新内容。
需要特别留意的是,该文件的公开性极高,任何访客都能直接查看其内容。因此,切勿将真正需要保护的信息(如用户个人数据、数据库接口)放置于仅靠 robots.txt 屏蔽的路径下,必须配合 IP 白名单、登录鉴权等更可靠的手段。
robots.txt 的语法并不晦涩,遵循“字段: 值”的格式,一行仅代表一条指令,字段名不区分大小写,但路径部分区分大小写。理解以下几个字段至关重要。
假设你的站内有一个仅限员工使用的目录 /staff-area/,但其中有一个公开说明页希望被索引,同时你希望告知爬虫 Sitemap 位置。配置可以写成:
User-agent: *
Disallow: /staff-area/
Allow: /staff-area/privacy.html
Sitemap: https://www.example.com/sitemap.xml
这段规则传达了三层意思:所有爬虫均不得访问 staff-area 目录下的资源;例外的是其中的 privacy.html 可以被抓取;全站地图地址已告知爬虫。
制定 robots.txt 的入门门槛较低,但要确保精准无误,仍需遵循一定的逻辑步骤,并深入理解匹配规则。
robots.txt 的匹配并非基于正则表达式,而是采用“最长匹配”原则。所谓最长匹配,是指当有多个规则同时命中一个路径时,采用字符数最长的那条规则。这一点非常关键,能解释许多看似矛盾的配置为何能正常运作。
此外,规则从文件顶部向下执行,最后一条匹配的规则决定最终结果。不过,多数搜索引擎遵循“最具体优先”原则,即最长匹配规则具有最高优先级,而不是简单的先后顺序。例如,“Disallow: /admin”与“Allow: /admin/images”同时存在时,后者更长,故优先放行。
避坑提醒:很多站主会误以为“Disallow: /admin”足以屏蔽整个 admin 目录,但事实上它只精确匹配了以该字符串开头的路径。若想屏蔽整个目录,务必写成“Disallow: /admin/”。
在实际使用中,不少站点因配置不当而引发问题,这些误区值得警惕。
并非必须。若未放置该文件,爬虫默认可抓取所有公开路径。只有当需要限制抓取范围时,才需创建并配置。
可以使用搜索引擎提供的 robots.txt 测试工具,输入路径并模拟爬虫,即可立即看到允许还是拒绝的结果。这种方法比人工推算更可靠。
是的。以“#”开头的行被视为注释,仅供人阅读,不会影响爬虫的解析行为。
robots.txt 虽小,却关乎站点的搜索引擎可见性。掌握其语法规则与匹配逻辑,能让你有效管理爬虫的访问路径,避免资源浪费与收录遗漏。建议定期复查配置内容,对照站点结构更新,并借助测试工具验证规则是否真正符合预期。唯有精准的配置,才能让爬虫与站点和谐共处。