对于运营网站的人来说,robots.txt 是一个既熟悉又容易出错的配置文件。它存放在域名根目录,用简单的文本指令告诉搜索引擎的爬虫哪些页面可以抓取、哪些需要回避。配置合理,爬虫会把有限的抓取资源用在关键页面上,新内容的索引速度也能提升;但如果语法出错或路径定义不当,可能导致整站被搜索引擎降权甚至清除。这份指南将详细拆解其语法核心,并梳理高频错误与应对方法。
访问方式很简单,在浏览器输入你的域名加 /robots.txt 就能看到文件内容。它本质上是一个抓取向导,而非最终的收录决定者。若想让某个页面彻底从搜索结果消失,应当使用 noindex 标签。robots.txt 仅能阻止爬虫抓取,对已经抓取的内容是否进入索引库没有控制力。例如,你禁止了某个商品页的抓取,但其他网站大量链接到该页面,搜索引擎可能仍会收录它,只是摘要来源变成了外部站点。
另一个必须认识到的问题是,这个协议只约束遵循规则的爬虫。主流搜索引擎蜘蛛(如百度、谷歌、必应)都会遵守,但恶意抓取工具和采集程序往往无视它。因此,涉及用户隐私、订单记录或后台系统的目录,必须叠加登录验证、IP 白名单或防火墙等额外保护,不能把安全防线寄托在这个文本文件上。
robots.txt 由多个规则组组成,每个规则组必须从 User-agent 字段开始。所有字段的格式都是“名称: 值”,冒号必须是英文半角,并在其后保留一个空格。虽然部分爬虫对格式的容忍度较高,但规范的写法可以避免许多潜在问题。
它声明了本组规则针对哪类爬虫。只限制谷歌的抓取,就写 User-agent: Googlebot;如需统一管理所有搜索引擎蜘蛛,使用 User-agent: * 通配符更方便。你可以建立多个规则组,实施差异化策略,比如对谷歌开放更多抓取权限,对必应设置更严格的限制。
Disallow 声明禁止抓取的路径,Allow 声明允许抓取的路径,两者常配合使用。一个容易忽略的细节是,Disallow 后不写任何值(即 Disallow: 后面为空),等同于清除对该爬虫的所有限制,全站内容均可抓取。当同一 URL 同时命中多条规则时,搜索引擎采用“最长匹配优先”原则——匹配路径更长的规则拥有更高优先级。比如同时写 Disallow: /api/ 和 Allow: /api/public/,因为后者的路径更长、更具体,所以 public 子目录会被放行。
Sitemap 指令用于提供站点地图的完整 URL,方便爬虫快速发现全部内容,通常放置在文件末尾。Crawl-delay 指定爬虫每次抓取之间的间隔时间,以秒为单位。不过谷歌爬虫不认可此指令,它更建议通过 Search Console 的频率设置来控制。
若 Disallow 指向根目录(写作 Disallow: /),意味着封禁全站,这通常并非真实意图。在更换后台或目录结构时,经常有人误用此配置,导致整站短时间内无法被抓取。修改配置后建议先在浏览器访问 robots.txt 验证规则是否符合预期,再用搜索引擎站长平台的抓取测试工具进行模拟。
另外,在使用 Allow 和 Disallow 组合时,不少人会依赖正则表达式功能,但规范并不支持,应使用 * 和 $ 等简单的通配符匹配。* 代表零个或多个任意字符,$ 代表匹配路径结尾。比如 Disallow: /*.pdf$ 可禁止所有 PDF 文件的抓取。若站点有大量动态参数,建议明确参数结构,避免无意义的 URL 消耗抓取权限。
还要留意文件中的中文或全角字符。虽然许多爬虫能处理 UTF-8 编码,但出现全角冒号或中文空格会直接导致规则解析失败,路径名也建议使用 ASCII 字符,减少了爬虫误判的几率。
按照以下步骤创建和维护一个稳健的 robots.txt 文件:
每次上传新版本后,重点检查三项:第一,Disallow 语句是否出现意外的空白值;第二,所有路径是否与站内实际目录结构一致;第三,关键页面是否有被意外屏蔽的情况。还可以利用站长平台提供的抓取测试功能,模拟搜索引擎的视角查看规则执行结果。
该文件本身不会直接触发搜索引擎的惩罚机制。但如果你屏蔽了页面却仍希望在搜索结果中出现,或者误屏蔽了全部资源文件(如 CSS、JS),可能间接影响页面的渲染和排名。正确的做法是,只屏蔽确实不需要抓取的敏感或低价值目录。
搜索引擎蜘蛛会定期重新抓取该文件,通常几小时内就能完成更新。你也可以在站长平台的主动推送工具中强制刷新或提交。需要注意的是,对于已经被收录的页面,此文件只影响后续抓取,不会立即清除已有索引。
基本一致,但在细节上仍有差异。例如,谷歌不支持 Crawl-delay,而百度对此指令的执行情况也会周期性调整。因此,配置时应优先确保通用规则正确,并对重要搜索引擎进行单独的模拟测试和定期复核。
robots.txt 是一份管理爬虫访客的配置文件,其配置质量直接影响网站的抓取效率和搜索表现。建议每季度审视一次文件,将新增的目录或功能及时纳入规则,同时清理无用的旧规则。测试验证应成为每次更新的必选动作,这样既能保护敏感数据,也能让搜索引擎资源倾斜到更值得被收录的内容上。