网站根目录下那个名为robots.txt的纯文本文件,是搜索引擎抓取网站的“通行规则”。它划定了爬虫的活动范围,哪些栏目可以抓取收录,哪些后台目录必须封禁,都靠它来写清楚。配置得当,搜索份额全部投向优质内容,敏感信息得到保护;配置出错,可能直接影响新内容的收录速度,甚至导致整站排名消失。这篇内容就从放置方式、规则写法、典型应用到差错排查,把要点一次说透。
首先明确一点:文件名必须全小写,即robots.txt,而且只能放在网站根目录下。放好之后,通过访问“域名/robots.txt”即可验证是否生效。这是一个标准的UTF-8纯文本文件,不包含任何格式代码,每一行都遵循“字段名: 值”的基本格式,冒号后必须带一个空格。
整个文件的核心指令只有四个,理解它们就掌握了八成用法:
例如,全站放行只需写两行:
User-agent: *
Disallow:
这里的关键是Disallow后面留空,它表示不拒绝任何目录,等同于整站开放。值得留意的是,文件保存时务必选用无BOM的UTF-8编码,否则部分解析严格的爬虫会因无法识别文件头而错失规则,导致拦截失败。
动手编写前,先梳理一遍站点的目录树,分清哪些是面向用户的展示页面,哪些是仅供内部使用的系统路径。下面是几个高频出现的使用场景及对应写法。
对于尚未正式上线的开发版,或准备停止运营的旧站点,可直接屏蔽全站:
User-agent: *
Disallow: /
而屏蔽后台、用户中心、订单管理等多个独立目录,则是逐行列出,且路径首尾均加斜杠,以免误伤相似名称的目录:
User-agent: *
Disallow: /admin/
Disallow: /member/
Disallow: /order/
当需要屏蔽博客下的草稿目录,同时又保留博客栏目本身可被访问时,可利用Allow优先于Disallow的匹配机制:
User-agent: *
Allow: /blog/
Disallow: /blog/drafts/
站点地图信息的声明则独立于规则之外,通常放在文件末尾。如果站点存在多份地图文件,就按顺序连续写多个以Sitemap开头的内容行。
以下疏漏在各类网站中反复出现,且伤害往往延迟数周才显现,需要格外留意。
规则写完后,不必等待搜索引擎自然反馈,可用以下方法主动自查:
避免在文件中频繁增删规则,每次改动后应至少观察两三天抓取日志,确认无误后再进行下一轮调整。
尽管文件允许添加以井号#开头的注释行,但不同搜索引擎对注释的解析存在差异,有的会完整忽略该行内容。为了保证规则绝对可靠,建议不依赖注释来解释任何关键约束,最多在文件头部用简短英文标明更新日期即可。
Robots规则只对尚未被抓取的页面起作用,并非删除机制。如果页面此前已被搜索引擎抓取并建立索引,后续设置的Disallow指令无法让它立即从结果中消失。此时应通过站长平台的索引移除工具进行手动清理,同时保持规则持续生效,防止再次被抓取。
当Disallow规定了目录,但该目录下存在较高权重的外链指向时,个别搜索引擎会在权衡后强制执行抓取。这属于搜索策略层面的例外情况,并非规则自身失效。建议优先保证核心交易或隐私路径不含任何外部链接入口,从源头杜绝抓取冲突。
配置robots文件并非一次性工作,而是一项需要定期复查的维护事项。每次上线新目录或调整URL结构,都应对照现有规则重新评估。本文中的四段基础指令与典型组合,可以作为站点管理的起点模板。趁现在检查一遍当前生效的文件,对照站点目录确认无多余拦截项,再把测试工具模拟的结果记录下来作为后续比对的基准,是保持站点收录健康的有效习惯。