Robots.txt是放在网站根目录下的一个纯文本文件,核心作用是告诉搜索引擎爬虫,站内哪些页面允许抓取、哪些需要避开。设置得当,可以保护后台等私密区域不被收录,也能让爬虫把精力集中在重要页面上;但如果写错了,轻则新内容迟迟不被收录,重则整个站点在搜索结果中消失。接下来梳理文件语法、不同场景的写法以及常见失误,并给出可以直接套用的配置方案。
文件名必须严格使用小写robots.txt,且只能放在域名根目录下,例如访问地址应为https://example.com/robots.txt。文件本身是纯文本,每条指令由“字段名: 值”组成,中间以英文冒号和一个空格分隔。
最常用的字段包括User-agent、Disallow、Allow和Sitemap。User-agent用于指定规则适用的爬虫,星号表示所有爬虫。一个允许全站抓取的写法很简单:
User-agent: *
Disallow:
这种写法表示所有爬虫都可以抓取整站内容。需要留意的是,字段名区分大小写,路径必须从根斜杠/开始,文件编码建议使用UTF-8且不带BOM,否则部分爬虫可能解析出错。注释以井号#开头,但不同爬虫对注释的支持程度并不一致,核心规则尽量不依赖注释来生效。
动手写规则前,先梳理站点的目录结构和抓取需求,分清哪些路径要屏蔽、哪些需要优先抓取。以下是几种典型场景的参考写法。
建议每组规则之间用一个空行隔开,方便后续阅读和调整。
下面这些错误在日常运维中比较常见,而且造成的影响往往不易察觉。
另外,规则顺序也会影响最终结果。某些爬虫会按文件内出现的先后顺序逐条匹配,最具体的规则尽量放在前面,通用的规则放在后面,能减少匹配混乱的风险。
下面是一个兼顾常见需求的基础模板,适合大多数内容型网站直接修改使用:
User-agent: *
Disallow: /admin/
Disallow: /cart/
Disallow: /drafts/
Allow: /blog/
Sitemap: https://example.com/sitemap.xml
使用这套模板时,先替换成自己站点的真实目录名,再通过浏览器直接访问robots.txt地址确认内容无误。修改规则后,到搜索引擎的站长工具中提交更新请求,可以加快爬虫重新抓取文件的速度。
可以恢复。只要把文件内容改回正确的规则,再通过站长工具提交文件更新或重新抓取请求即可。搜索引擎通常会在几天内重新读取文件,但已经删除的索引可能需要更长时间才能恢复,所以修改时要谨慎。
大多数主流爬虫遵循Allow优先的原则,即当两条规则对同一个路径产生冲突时,以Allow为准。建议在写规则时不要制造这种冲突,以免不同爬虫解释不一致。
不能。robots.txt只能阻止爬虫抓取页面,但页面仍可能通过外部链接被找到,甚至在结果中以其他形式展示。如果确实需要彻底保护内容不被公开,应配合登录权限或noindex标签使用。
配置robots.txt并不复杂,关键是规则精确、路径规范、顺序合理。建议每修改一次就检查一次对应的页面抓取情况,并定期查看爬虫日志,确认没有误伤重要内容。把基础模板复制到自己的站点上,按实际目录调整后,就能在保护私密区域和提升抓取效率之间取得良好平衡。