网站的抓取效率与收录表现,往往藏在一份名为 robots.txt 的小文件里。它位于站点根目录,以指令形式告知搜索引擎爬虫哪些内容可抓取、哪些路径应屏蔽。配置得当,爬虫资源会集中在关键页面,新内容更快被收录;一旦写错,轻则目录被误封,重则整站收录异常。
robots.txt 的作用对象是爬虫程序,通过地址栏访问“域名/robots.txt”即可看到内容。它相当于给爬虫指路,但页面最终能否进入搜索索引,并不由它决定。若想彻底移除某个页面的搜索结果,应当使用 noindex 元标记。这份文件仅约束抓取行为,对已抓取内容是否被收录没有任何话语权。
此外,遵守该协议完全依赖爬虫的自觉。主流搜索引擎的蜘蛛基本会遵循,但部分采集脚本和第三方抓取工具对此视而不见。涉及后台管理、用户资料、订单记录等敏感目录,务必叠加登录验证、IP 白名单或防火墙等安全手段,切勿将站点安全寄托于这份“君子协定”。
robots.txt 由多条规则组构成,每个规则组以 User-agent 字段起始。所有字段遵循“名称: 值”格式,冒号需为英文半角,规范写法在冒号后留一个空格。多数爬虫对格式有一定容错,但保持规范书写可避免后续解析的潜在麻烦。
此字段声明该规则组约束哪种爬虫。仅针对谷歌搜索蜘蛛,写入 User-agent: Googlebot;希望所有搜索引擎统一执行,则用通配符 User-agent: *。可同时建立多个规则组,对不同爬虫实施差异化策略,例如对谷歌放宽、对必应收紧。
Disallow 声明禁抓路径,Allow 声明允许路径,两者常搭配使用。有个关键细节常被忽略:当 Disallow 后面为空(即 Disallow: 后无值),表示移除全部限制,爬虫可访问全站内容。同一 URL 命中多条规则时,搜索引擎遵循“最长匹配优先”——路径越具体,优先级越高。例如同时存在 Disallow: /api/ 与 Allow: /api/public/,后者更具体,因此 public 子目录会被放行。
Sitemap 字段声明站点地图的完整地址,帮助爬虫快速定位内容,一般置于文件末尾。Crawl-delay 字段设定抓取间隔(单位:秒)。需注意,Google 爬虫不识别该字段,官方建议在 Search Console 后台配置抓取频率,而非依赖此参数。
路径理解是故障高发区。Disallow 后的值对应根目录下的路径片段,而非完整 URL。比如 Disallow: /private/ 屏蔽的是域名下的私密目录,与其它子域名无关。判断时可用浏览器模拟测试,确认屏蔽范围是否达到预期。
通配符的使用也需谨慎。主流搜索引擎支持 $ 表示结尾、* 表示任意字符,例如 Disallow: /*.pdf$ 可屏蔽所有 PDF 文件。但并非所有爬虫都完整支持这些符号,兼容性测试不可省略。大小写同样影响匹配结果——/User 与 /user 被视为不同路径,配置时须与站点实际目录结构严格一致。
避坑提示:修改 robots.txt 后,务必通过搜索引擎的抓取测试工具验证效果,避免因路径写错导致首页或核心栏目被误屏蔽。
初次配置建议遵循最小化原则,先只屏蔽确定无价值的目录,而非大面积封锁。一个基础且安全的 robots.txt 示例:允许所有抓取,同时声明站点地图。
要警惕屏蔽过度的反效果。若 Disallow 规则覆盖了带有权重的外链页面或分享链接,可能导致整站抓取预算浪费,核心页面更新变慢。定期核查规则,及时移除已失效的屏蔽项。
robots.txt 只管是否抓取,不管是否收录。如果该页面已被其他来源抓取并建立索引,即便被屏蔽,搜索引擎仍可能保留快照并展示结果。彻底移除需使用 noindex 标记,或通过搜索引擎的删除工具提交请求。
需要。旧域名若继续保留,应修改文件内容,通过 301 重定向将爬虫导向新地址,并在新域名根目录放置配套的配置。否则可能出现爬虫仍访问旧文件,导致新站收录延迟。
立即将文件内容重置为最简单的允许全部规则(如 User-agent: * 加 Disallow: 为空),保存后等待爬虫重新抓取。同时检查是否有缓存副本干扰,并通过抓取工具确认读取到的内容已更新。
配置 robots.txt 的首要原则是保持克制与清晰:只屏蔽必要的路径,确保核心内容畅通无阻。每次修改后都应在线上验证抓取效果,并留意收录数据的变化。与其追求复杂的通配符策略,不如用最小规则换取稳定表现,让爬虫把有限预算花在最有价值的页面上。