搜索引擎的爬虫访问你的站点时,第一眼看的往往就是根目录下的 robots.txt 文件。这份纯文本文件相当于整个网站的“门禁系统”,它能告诉 Googlebot、Baiduspider 等爬虫哪些目录可以正常抓取,哪些地带必须止步。用好它,就能在保护数据隐私、节省服务器开销的同时,让搜索引擎的注意力更聚焦于优质页面。
robots.txt 没有过多的自由度,它的存放位置是硬性规定:必须放在网站的根目录。比如你的域名是 www.example.com,那么访问地址就是标准的 https://www.example.com/robots.txt。文件的核心由若干规则块组成,每一块都以 User-agent 开头,用来划定该规则块的适用对象。
一个最简单但完整的文件示例,作用是向所有爬虫敞开大门,并提交地图:
User-agent: * Disallow: Sitemap: https://www.example.com/sitemap.xml写这个文件时格式要挑剔:每一条指令换一行、冒号后面留半角空格、末尾不能有多余的空白字符。任何一个细节出错,都可能导致整段规则被忽略。
每家网站的诉求都不同,有的怕被收录,有的只想划出几块禁区。掌握下面几类常见模式,基本上就能应付绝大多数需求了。
站点正在重构,或者只是临时放在测试服务器上,这时候最怕被搜索引擎捉到。一个“狠招”就能解决:
User-agent: * Disallow: /这个配置直接把所有爬虫屏蔽在外,比挨个目录去设置要省心得多,也避免临时环境里的半成品页面被快照记录下来。
一般的业务站点不需要全站封闭,往往只是想把后台管理或会员中心藏起来。比如要阻挡爬虫进入 /admin/ 和 /user-center/,文件可以这么写:
User-agent: * Disallow: /admin/ Disallow: /user-center/ Allow: /这里有个细节值得留意:Allow: / 这一行必须排在所有 Disallow 的后边,它的作用相当于“除了上面封掉的,剩下的全放行”。假如你不太确定目标爬虫是否支持 Allow 指令,干脆只保留 Disallow 行,因为凡是没被明确禁止的路径,按协议默认就是开放的。
流量大的站点往往想要更细致的控制。例如,你可以允许 Bingbot 抓取所有内容,但偏偏不让某个特定的爬虫接近图片目录,避免服务器资源被白白消耗。这种分组写法能让资源的分配更贴合自己的需要。
另外,站点地图地址一定要用绝对 URL 写全,并且确保这个文件本身是可访问的,否则这一行就形同虚设了。
robots.txt 的规则看起来直白,实际执行起来却有不少容易出错的地方。尤其是路径匹配这一块,理解不透彻就容易搞出“误杀”或“漏杀”。
写完配置后,建议顺手找一下搜索引擎官方的 robots.txt 测试工具,输入文件内容检查一下有没有语法警告,防止规则在无形中失效。
robots.txt 并不是写完就一劳永逸的。网站的结构会调整、目录会改版,这个文件也必须跟着保持同步,否则就可能把新上线的优质栏目挡在搜索引擎门外,或者把旧路径漏给爬虫。
最后建议把这份文件纳入网站的版本管理,每一次改动都留个记录,出问题时可以快速回溯。
最可能的原因有三个:一是规则格式有问题,比如冒号后缺了空格或结尾多了字符;二是页面早已被收录,robots.txt 只负责阻止“新抓取”,对已经索引的内容没有主动清除的作用,需要另行通过 Search Console 提交删除请求;三是目标爬虫根本不遵守 robots 协议,这时就得考虑使用更底层的密码保护措施了。
实际执行时,爬虫会比较匹配到的规则路径长度,长度更长的那条拥有更高优先级。例如 Disallow: /shop 和 Allow: /shop/checkout,当爬虫访问 /shop/checkout 时,因为 Allow 的路径更长会更具体,所以最终判定为允许。掌握这个原则,就能利用路径长短实现对同一目录下不同子路径的精确放行。
并不能直接提升排名。它的本职工作只是控制访问权,减少无谓的抓取负担,让爬虫投入更多精力去处理重要页面,这属于间接优化。真正决定排名的是内容质量和外部链接等因素,千万不要指望修改这个文件就能让关键词排名突飞猛进。
制作一份合格的 robots.txt 并不复杂,关键在于理解每条指令的实际含义并细心匹配路径。先把文件放在根目录,按照“先封后放”的顺序写清楚规则,再借助搜索引擎官方工具验证一遍,就能避开绝大部分错误。上线之后定期复查,跟着网站的实际结构走,这份“门禁文件”就能长期稳定地替你守好每一寸内容领地。