当搜索引擎的爬虫程序首次访问一个网站时,它通常会先查看根目录下的 robots.txt 文件。这个普通的文本文件充当着站长与爬虫之间的沟通桥梁,通过它,你可以清晰地告知搜索引擎哪些页面应该被抓取,哪些目录需要回避。一份精心设计的 robots.txt,既能防止后台、草稿箱等敏感区域被搜索引擎收录,也能帮助爬虫把精力集中在高质量内容上,从而提升站点整体的抓取效率。
robots.txt 文件必须放在域名根目录下(例如 example.com/robots.txt),使用 UTF-8 编码保存,每条规则独占一行,并且路径是区分大小写的。一个完整的配置文件通常包含以下几个关键指令:
下面是一个基础配置的示例:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://example.com/sitemap.xml
这段配置的意思是:允许所有爬虫访问站点整体,但 /admin/ 目录是禁止抓取的,唯一例外的 /admin/public/ 子目录可以正常访问。这里有一个关键点需要特别留意:由于 Allow 指令并非所有爬虫都认识,当爬虫不识别它时,更严格的 Disallow 规则会优先执行,所以不要指望通过 Allow 来放宽受限目录的访问权限。
不同类型的网站对爬虫抓取的诉求差别很大,下面三种配置思路基本覆盖了绝大部分常见情况。
对于新上线的内容站或者新闻类网站来说,自然是希望爬虫尽可能多地收录页面。这种情况下,可以使用空的 Disallow 指令:
User-agent: *
Disallow:
直接不写 Disallow 这一行,也能达到同样的效果。这里最容易犯的错误是误把 Disallow 写成 /,只要这一行出现,所有爬虫都会立即停止抓取整个网站,导致收录瞬间中断,这是一个非常容易踩中的误区,需要极力避免。
有时候你并不想完全关闭抓取入口,只是不希望某一特定的搜索引擎访问你的站点。这时可以为特定的爬虫单独建立规则,不影响其他搜索引擎的正常抓取:
User-agent: Googlebot-Image
Disallow: /
上面的规则只针对 Google 的图片爬虫生效,对其他搜索平台或者同一搜索的普通网页爬虫没有影响。在动手设置之前,务必去各搜索引擎官方的帮助中心查阅爬虫名称列表,写错爬虫名称会导致规则完全失效,这一点经常被人忽视。
电商站、社区论坛等平台经常会有一些购物车、用户面板或者搜索结果页,这些页面如果被抓取不仅浪费资源,还可能造成重复内容问题。这时可以通过通配符对路径进行灵活的模糊匹配:
User-agent: *
Disallow: /*?sort=
Disallow: /user/*/messages
第一行用来屏蔽所有带有 sort 参数的动态 URL,第二行则直接拦截用户消息页面。这种写法能有效减少爬虫对无用 URL 的抓取,避免站点被抓取配额被垃圾页面消耗殆尽。
在实际运维过程中,很多网站管理人员都在 robots.txt 上栽过跟头,这里总结出三个高频雷区,供大家在配置时对照检查。
在编写规则时,有些人喜欢混入多余的空格,或者把 # 注释符号放在行首却忘记了空格分隔。需要注意的是,某些符号(比如 $ 表示匹配结尾)只在个别搜索引擎中才能生效,盲目参考网上写法可能会导致部分爬虫直接忽略你的规则,在正式上线前,建议先在线验证工具检查一遍文件格式。
很多网站的 URL 都带有 sessionid、utm 等会话或追踪参数,如果直接全站屏蔽这些参数,可能会误伤正常页面的收录。建议采用 ?sessionid= 这种精确匹配的写法来屏蔽参数,而不是使用 /*?* 这样一刀切的方式。
robots.txt 只能控制同域名下的路径,无法约束子域名(比如 m.example.com 需要单独配置),同时文件大小不宜超过 500KB,否则部分爬虫会停止解析后续部分。如果需要禁止抓取图片、视频等资源,还要在文件中对相应的图片爬虫单独声明一套规则。
写完 robots.txt 后,切记不要直接扔到服务器上就认为大功告成,你还需要按照以下步骤快速完成验证:
如果在验证中发现规则没有正确执行,可以先检查文件是否保存在根目录,然后确认内容是否为纯文本格式且没有保存为 BOM 头,最后审视路径结束符是否准确匹配了目标目录。爬虫的抓取请求是异步的,部分搜索引擎可能需要几小时甚至一天才会刷新抓取结果,遇到延迟请保持耐心。
不能。robots.txt 是一种“请勿打扰”协议,诚实守规的爬虫会遵守规则停止抓取。但它并不能起到完全的保密作用,因为外部链接可能导致 URL 出现在搜索结果中,只是无法抓取具体内容。如果想要彻底从搜索结果中移除已收录的网页,需要在后台提交删除申请或者使用 noindex 标签,二者结合才稳妥。
会。爬虫访问任何 URL 之前,都会先尝试获取域名根目录下的 robots.txt 文件,与该 URL 是否返回 404 状态无关。因此,即使你删除了某个页面,也不要随意将 robots.txt 文件本身删除,否则会失去对全站抓取规则的控制。
新旧规则切换需要一个过渡期。建议你将旧站点的规则保留至少 30 天以上,同步观察搜索引擎后台的收录变化。旧规则移除后,新规则应在同一天内生效,避免出现长时间的空档期导致爬虫抓取到尚未准备好的临时页面。
合理配置 robots.txt 是站点 SEO 的基础工作之一。在实际操作中,建议你先梳理网站的目录结构,明确哪些区域需要公开收录、哪些区域需要特殊保护,然后再根据具体需求决定采用空规则、定向屏蔽还是路径拦截方案。配置完成后,记得使用官方工具进行校验,并结合日志观察效果,灵活调整规则,这样才能让你的网站抓取策略始终处于最优状态。