robots.txt 看似只是网站根目录里的一个普通文本文件,却对搜索引擎的抓取和收录起着关键作用。设置得当,它能引导爬虫高效访问重要页面,同时避开后台等敏感区域;一旦出错,可能导致整站无法被抓取。下面我们一起来梳理它的语法规则和常见雷区。
这个文件本质上是站主写给搜索引擎爬虫的公开说明,内容就是告知对方哪些路径可以进入。它属于行业惯例,并非强制性的访问控制工具,主流搜索引擎会参考其中的约定。
合理使用 robots.txt,通常能达到三类目的:隔离非公开的目录,比如管理后台或测试环境;避免爬虫抓取带有大量参数的动态网址;提供 Sitemap 的完整地址,便于爬虫快速发现站点内容。
需要注意,这个文件是公开可读的,任何人都能直接查看。如果你的确需要保护真实敏感数据,不能单纯依赖这个文件来屏蔽路径,必须叠加登录验证、IP 限制等更严密的手段。
robots.txt 的书写格式是“字段: 值”,每条指令单独成行。字段名不区分大小写,但路径部分对大小写敏感。
假设你的站点有一个仅供内部使用的 /staff-area/ 目录,其中某个公共页面希望被收录,同时你想告知爬虫站点地图位置,可以这样写:
User-agent: *
Disallow: /staff-area/
Allow: /staff-area/privacy.html
Sitemap: https://www.example.com/sitemap.xml
这段配置传达了三层信息:所有爬虫不得访问 staff-area 目录下的内容;但 privacy.html 这个具体页面除外,可以正常抓取;同时已向爬虫提供了站点地图的地址。
编写这个文件虽然不难,但要做到精确无误,还是需要掌握清晰的步骤和匹配原则。
匹配是基于路径前缀进行的,并遵循最具体优先的原则。例如,Disallow 设置为 /staff 时,会拦截所有以 /staff 开头的路径,如 /staff-list。此外,路径是区分大小写的,/Admin 和 /admin 是两个不同的路径,这在实际配置中需要格外留意。
许多站点在设置时容易踩坑,以下三种情况出现频率较高。
Disallow 的值如果为空白或缺失,通常表示允许抓取,而斜杠(/)则表示完全禁止。稍有疏忽,把本应限制子目录的写法误写为斜杠,就会导致整个网站无法被搜索引擎抓取。
很多站长容易把字段名和路径的规则搞混。字段名可以大小写混用,但URL路径部分必须与服务器上的实际大小写一致。如果文件位于 /Public 而规则写成 /public,爬虫是无法识别匹配的。
有些站点把 Sitemap 只提交到站长平台,却没有写入文件,这其实浪费了一个稳定的辅助入口。另外,刻意设置过短的 Crawl-delay 并不能提高抓取速度,反而可能增加服务器负担;过长的延迟则可能拖慢内容收录进度。
配置完成后不是一劳永逸的。站点结构变更、目录更名或页面改版时,都需要同步检查文件内容。定期查看搜索引擎的抓取报告,能帮你判断哪些链接被正常访问,哪些出现了非预期拦截。
在修改前,建议先备份原文件,并改动后用测试工具验证,确认新规则没有影响核心页面的抓取后再正式上线。
它的作用是控制爬虫抓取,但如果其他外部网站链接了被屏蔽的页面,该页面仍有可能以空白或缩略形式出现在搜索结果中。若需彻底阻止收录,应结合 noindex 标签使用。
可以,每段规则前都需要单独声明 User-agent。例如,你可以允许 Googlebot 抓取所有内容,但对其他爬虫设置限制。需要注意的是,规则按顺序匹配,每个爬虫只匹配第一个对应的声明。
搜索引擎不会实时读取这个文件,通常需要数小时到数天不等。当需要快速屏蔽内容时,更可靠的方式是单独设置页面级的 noindex 指令,或直接移除页面。
robots.txt 的语法相对简洁,但细节中的规则确实容易被忽略。在配置时,建议先明确你的目标,再结合具体的路径和爬虫类型逐条设置。定期检查抓取日志,对新改版或迁移的目录重点关注,能帮助你避免因配置失误带来的收录损失。