robots.txt是放在网站根目录下的一个纯文本文件,它的作用就是告诉搜索引擎的抓取程序,哪些页面可以抓取,哪些页面应当避开。对站长来说,这个文件就像一张引导图,能让蜘蛛把精力集中在真正有价值的页面上,同时也能避免后台数据或隐私内容被搜索引擎收录。配置得当,网站收录会更顺畅;配置不当,轻则整站不被收录,重则敏感信息曝光。下面就把语法规则、实际用法和常见的坑一次性讲清楚。
robots.txt的规则由若干条指令构成,每条指令都有一套固定写法。只要记住下面四个关键字段,就基本掌握了全部基础,不用被复杂的术语吓倒。
一个基本的配置示例如下:
User-agent: *
Disallow: /temp/
Allow: /temp/public/
Sitemap: https://www.example.com/sitemap.xml
有两个细节容易栽跟头。一是路径是区分大小写的,/admin/和/Admin/是两个不同的目录,写错大小写规则就不生效。二是必须使用半角英文符号,如果误输入全角的冒号或斜杠,整行内容会被蜘蛛直接忽略。
网站所处的阶段不同,robots.txt的写法也应随之调整。下面几种场景基本覆盖了绝大多数站长的实际需求。
网站改版调试或临时关闭时,可以暂时阻断所有蜘蛛的访问。但要注意,这个操作只是拦住后续抓取,已经存在的搜索结果快照并不会自动消失。如果想把已收录的页面彻底清除,还需要去百度搜索资源平台或Google Search Console后台提交清退申请。
User-agent: *
Disallow: /
如果网站是纯展示型博客或简单企业站,没有什么需要隐藏的资源,那就不必写任何Disallow内容,只声明Sitemap地址即可。这种最精简的配置对蜘蛛很友好,有利于所有页面被充分抓取。
User-agent: *
Sitemap: https://www.example.com/sitemap.xml
内容型网站通常要隐藏后台登录入口、用户中心以及临时上传文件夹。这样做既能防止隐私数据被搜索到,也在一定程度上降低了黑客根据搜索结果找到后台入口的风险。
User-agent: *
Disallow: /admin/
Disallow: /member/
Disallow: /uploads/tmp/
配好以后,别忘了直接在浏览器中访问 域名/robots.txt,检查有没有语法报错或路径拼写问题。
不少站长对robots.txt只有模糊的概念,真上手配置时很容易忽略一些细节,下面这几个问题最常见。
完成robots.txt编写之后,不是放着不管就结束了,应当主动验证规则是否符合预期。
判断标准很简单:不该被抓的路径查不到日志,该被抓的页面收录正常,就算配置成功了。
直接用 Disallow 加上完整路径即可。例如禁止抓取关于我们页面,就写 Disallow: /about-us.html。留意路径要精确到自己想屏蔽的那个URL,否则容易误伤同目录下的其他页面。
不能。robots.txt本质上是暂缓抓取的工具,对已收录的内容几乎没有直接删除作用。想要移除已经在搜索引擎里存在的快照,需要到各搜索平台的后台申请删除收录,或对页面本身设置noindex标签。
不会冲突。robots.txt支持为不同的User-agent分别书写独立规则,蜘蛛只读取匹配自己名称的那一段内容。即使某个搜索引擎不遵守某条指令,也不影响其他搜索引擎的正常抓取。
robots.txt配置难度不高,但细节决定成败。动手前先想清楚网站哪些内容应当被抓取、哪些必须防护,再按照规范的语法逐行书写,并始终坚持用小写路径和半角符号。配置完成后务必用在线工具或浏览器实际验证一遍,同时留意搜索平台后台的抓取报告。如果拿不准某个文件该不该屏蔽,宁可暂时开放也不要贸然屏蔽,因为屏蔽后想恢复收录往往比直接不拦要麻烦得多。养成定期检查抓取日志的习惯,及时发现异常,才能真正发挥robots.txt应有的作用。