robots.txt是放在网站根目录下的一个纯文本指令文件,核心作用是告诉搜索引擎爬虫哪些页面可以抓取、哪些页面应该绕开。配置得当,爬虫会把有限的抓取资源集中在重要页面上,新内容也能更快被收录;但一旦语法写错或路径判断失误,可能导致整站抓取异常,甚至伤及已有排名。理解它的运行逻辑和那些容易被忽视的坑,是每个站点运营者的基本功。
robots.txt对爬虫而言只是一份建议性的指引,并不具备强制约束力。任何人都可以在浏览器地址栏输入“你的域名/robots.txt”直接查看文件内容。它更像一张园区导览图,告诉访客哪些区域可以进入,但真正涉及核心数据或后台管理的区域,光靠这张地图远远不够。
这份文件只影响爬虫是否发起抓取请求,至于一个已抓取的页面是否进入搜索索引,并不由它决定。举例来说,某个页面在robots.txt中被屏蔽,但只要它拥有大量外部链接,搜索引擎依然可能将其纳入索引,只是展示的快照内容可能来自缓存或页面描述信息。
还要清楚,这套协议完全依赖爬虫自觉。主流搜索引擎的蜘蛛通常遵守,但很多第三方采集工具、垃圾爬虫根本不理会。凡是涉及用户隐私、支付流程、管理后台等敏感区域,务必同时启用登录认证、IP白名单或防火墙等硬性拦截手段,千万别把安全防线完全押在“君子协定”上。
robots.txt的内容由多个规则组构成,每个规则组必须以User-agent字段开头,声明该组规则的适用范围。所有指令的格式均为“名称: 值”,冒号必须使用英文半角符号,并建议在冒号后保留一个空格。虽然多数爬虫对格式容错度较高,但规范书写能避免未来出现解析异常。
这一行决定当前规则组约束哪类爬虫。若只针对谷歌搜索蜘蛛,可写User-agent: Googlebot;若希望对所有搜索引擎统一对待,则用通配符User-agent: *。你还可以通过拆分多个规则组,实现对不同搜索引擎的区别对待,比如对谷歌放开权限,同时给必应设置更严格的抓取限制。
Disallow用于声明禁止访问的路径,Allow则用于声明允许访问的路径,二者常搭配使用。有个容易忽视的细节:当Disallow后面不填任何内容时,代表清除全部限制,爬虫可自由抓取整个站点。当一条URL同时命中多条规则时,搜索引擎普遍采用“最长匹配优先”逻辑——路径描述越详细,优先级越高。例如同时存在Disallow: /api/和Allow: /api/public/,因为后者匹配路径更长、更具体,public子目录下的内容会被顺利放行。
Sitemap指令用于声明站点地图的完整URL地址,帮助爬虫快速了解全站内容结构,通常放在文件末尾。Crawl-delay指令用来设定爬虫两次抓取之间的间隔时间,单位为秒。但需特别注意,谷歌的蜘蛛不支持Crawl-delay,它的抓取频率需通过Search Console的抓取速率设置进行调节,在robots.txt中配置该指令对谷歌无效。
robots.txt支持有限的正则表达式语法。星号(*)代表任意长度的任意字符,美元符号($)代表URL结尾。例如Disallow: /*.pdf$可以屏蔽所有以.pdf结尾的文件。
但要注意,不同搜索引擎对通配符的解析并不一致。谷歌和必应普遍支持,而某些小众搜索引擎可能直接忽略。依赖通配符时务必在配置后用各平台的测试工具逐一验证,避免出现预期之外的放行或屏蔽。
一个实用建议:尽量用具体的目录路径或文件名做精确匹配,减少对通配符的依赖。路径越明确,解析出错的可能性越低,维护排查也更简单。
坑点一:把robots.txt当成安全工具,用Disallow屏蔽后台路径,却不做访问认证。结果后台地址泄露在文件中,等于公开告诉攻击者“这里值得尝试”。正确做法是Disallow只为节省抓取资源,真正的保护必须靠服务端权限控制。
坑点二:语法格式出错,比如中文冒号、多余空格、注释符号使用不当。这些看似微小的问题可能让整份文件失效,爬虫默认放行所有页面,导致资源浪费甚至重复抓取。写完文件后仔细检查每一行的分隔符,并用在线校验工具验证。
坑点三:屏蔽了引用CSS或JS文件的路径。搜索引擎抓取页面时需要渲染CSS和JavaScript来理解页面布局,如果屏蔽了这些静态资源路径,可能导致页面被判为内容贫瘠或体验不佳。务必允许爬虫抓取自己域名下的静态资源。
避坑建议:在robots.txt文件中为每条规则添加简短注释,说明屏蔽意图和生效日期,方便日后回溯。同时定期检查日志中爬虫的实际访问行为是否与规则设定一致。
robots.txt本身正确与否不会直接触发降权,但它可能间接影响抓取。若你意外屏蔽了整站或重要页面,爬虫无法抓取新内容,旧页面失去更新信号,长此以往会影响收录和排名。发现错误后应立即修正并请求搜索引擎重新抓取。
谷歌Search Console提供“robots.txt测试器”,可输入具体URL并模拟Googlebot抓取,直观看到匹配结果。必应及其他搜索引擎也有类似工具,或可直接查看服务器日志中爬虫的实际访问记录。
不是。谷歌和必应支持通配符,但部分搜索引擎(如早期的Yandex版本)对通配符的支持有限。为保险起见,核心路径建议使用精确匹配,仅在补充规则中用通配符,并在关键规则上做跨平台验证。
robots.txt配置并不复杂,但细节决定成败。记住三点:它只是抓取建议而非安全控制,敏感区域必须叠加硬性防护;语法遵循英文半角冒号加空格,优先使用精确路径,通配符慎用并验证;写完务必用官方工具测试,同时定期检查爬虫日志确认实际效果。建议每季度审查一次文件,结合站点改版和内容更新及时调整规则,让爬虫资源始终流向最需要曝光的内容上。