robots.txt 是每个网站运营者都必须掌握的基础配置文件,它放在站点根目录下,通过简短的指令约定搜索引擎蜘蛛的抓取范围。配置得当,可以有效提升抓取效率,让重要页面更快被索引;配置失误,则可能让整站权重受损,甚至导致关键内容从搜索结果中消失。接下来,我们深入拆解这份文件的语法逻辑,并揭示那些现实中反复出现的配置陷阱。
这份文件本质上是一份抓取协议,它指引爬虫哪些路径可以访问,哪些路径应该绕开。但它无法决定一个页面的最终索引命运。若想真正让某一页面退出搜索结果,应使用 noindex 标签或直接在后台移除。robots.txt 的屏蔽作用有限,尤其当页面获得大量外部链接时,搜索引擎仍可能基于第三方来源生成快照并予以收录。
同时必须认识到,这些规则依赖爬虫的自我约束。正规搜索引擎的蜘蛛普遍遵循规范,但恶意爬虫、采集程序或部分第三方工具并不理会这些设置。凡是涉及后台管理、支付接口、用户数据等敏感区域,必须叠加登录限制、IP 白名单等方式进行二次防护,切勿把安全希望完全寄托于这份文本文件之上。
整个文件由多个规则组构成,每个规则组以 User-agent 声明开始,后续跟随一条或多条权限指令。书写时,字段名与冒号之间不加空格,冒号后通常空一格再接值。
该指令指明当前规则组对哪个蜘蛛生效。例如,仅约束百度蜘蛛时写作 User-agent: Baiduspider;如果希望所有搜索爬虫统一执行同一套规则,则使用通配符 User-agent: *。可以根据实际需求拆分多个规则组,对不同搜索产品实施差异化策略,实现对抓取节奏的精细化管理。
Disallow 用于禁止抓取指定的路径,Allow 则用于在白名单中放行某条路径。一个关键细节:如果 Disallow 后面为空,即 Disallow:,则表示空置规则,意为允许抓取全站内容。当一条 URL 同时匹配多个规则时,解析顺序遵循最长匹配优先原则——写得更具体的路径享有更高优先级。例如同时存在 Disallow: /admin/ 与 Allow: /admin/images/,后者的路径更长,因此该子目录仍会被放行。
Sitemap 指令用于指明网站地图的完整地址,通常放置于文件最末行,方便蜘蛛在发现 robots.txt 后快速获知全站 URL 清单。Crawl-delay 则用于设定抓取同一主机时的间隔秒数,以减轻服务器压力。此指令对 Google 不生效,相应抓取频率需在百度搜索资源平台或谷歌 Search Console 后台进行调节。
第一类错误集中在路径理解上。Disallow 的值是一个目录前缀,而非文件扩展名。代码中写 Disallow: /abc.html 表示屏蔽根目录下的该文件,但若文件中含参数,如 /abc.html?id=,则需写清完整前缀。同理,屏蔽整个目录时应以斜杠结尾,例如 /temporary/,否则可能匹配到同名开头的文件。建议写完后用测试工具验证比对,避免灰色区域。
第二类错误是通配符误用。标准语法支持 * 匹配任意字符序列以及 $ 匹配末尾结束符,例如 Disallow: /*.jpg$ 能禁止所有 JPG 图片的抓取。但很多站长在路径中随意添加 *,结果导致规则范围远超预期,意外屏蔽掉大量正常页面。若不确定通配符的影响边界,最稳妥的办法是不使用通配符,用完整目录路径去书写规则。
第三类错误是大小写区分。路径匹配默认区分大小写。若实际目录名为 /Templetes/ 而规则中写作 /templetes/,该规则将完全失效。配置前务必确认服务器的目录名大小写,否则静默失效的规则很难被发现。
以下是一份逻辑清晰的典型配置文件示例,涵盖了基础的屏蔽、放行与站点地图声明:
User-agent: *这段配置对全部蜘蛛生效,禁止访问后台与购物车区域,同时放行公共资源目录,并在文末给出了站点地图的地址。在落地时,应对照以下流程进行排查:
会。当爬虫无法抓取图片时,页面内的图片会得不到展示,甚至影响页面整体的内容质量评估,对于图集类网站影响尤甚,应避免全量屏蔽图片资源。
取决于爬虫的重新抓取周期。热门站点可能数小时内生效,普通网站通常需要一天至数天不等。建议修改后到站长工具提交一次抓取验收,以加快校验速度。
若当前爬虫名称与多个规则组匹配,将合并全部匹配组并取最严格的限制。若存在完全匹配的 User-agent 组,则优先执行该组规则,且不再执行通配符组的同类型指令。
robots.txt 并不复杂,却要求细致与严谨。整个配置过程应当遵循几条核心原则:先明确边界,再写规则,所有路径基于完整前缀,避免模糊匹配;写完后通过测试工具逐条验证,尤其注意大小写与通配符;一旦发现规则导致全站无法抓取的异常,及时恢复空白文件并排查。建议每半年对这份文件做一次复核,确保与站点目录结构同步,这也是维护搜索流量稳定性的基础功课。