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支持通配符,即“*”匹配任意字符序列、“$”表示匹配行末。例如“Disallow: /*.pdf$”可以屏蔽所有PDF文件。但必须警惕末尾星号的用法:“Disallow: /private/”与“Disallow: /private/*”含义完全不同。前者仅精确匹配以“/private/”为前缀的路径;后者会屏蔽所有包含该字符串的URL,范围会显著扩大。很多人在此误判,以为只是屏蔽某个目录,结果误伤大量页面。
另一个常见错误是根路径的歧义写法。若想屏蔽全站,正确的做法是“Disallow: /”(单一的根斜杠);而“Disallow: /*”在部分爬虫解析中可能被视为无效或等价于无限制。书写时最好用最直观、最常见的“/”,而不要依赖通配符组合。
robots.txt默认是“允许访问一切”,因此对SEO友好的做法是只屏蔽没必要被搜索的入口,例如后台地址、购物车、筛选参数(“?sort=”这类动态参数)或临时页面。把规则条数控制在合理范围,既减少爬虫解析负担,又避免误屏蔽。
文件支持#注释,用来标记每段规则的含义。尤其当多人协作或团队更替时,注释能大幅降低维护成本。定期检查文件状态也很关键:建议每隔一个季度用搜索引擎的检测工具验证规则是否按预期执行,尤其在看板工具或外链数据出现异常波动时,优先排查robots.txt是否被误改。
对于大型站点,可以把robots.txt当作索引入口,集中声明多个Sitemap地址,形成清晰的内容地图,而不是把URL路径层层嵌套在规则里。规则越扁平,解析越稳定,问题排查也越简单。
不能完全阻止。它只阻止爬虫发起抓取,但如果页面已通过外链被搜索引擎发现,仍可能被纳入索引,快照则可能来自缓存或页面描述。想真正移除收录,应使用noindex标签并配合抓取请求清理。
不同引擎的处理时间不一,通常在数小时到几天之间。修改后建议立即用平台自带的检测工具提交验证,确认返回的规则与预期一致,而不要用搜索引擎直接搜索来测试,因为索引更新有滞后。
路径应使用编码后的百分号形式,不能直接粘贴中文字符。例如含有中文的目录,应按URL编码标准转换后再写入规则,否则爬虫无法正确匹配,规则形同虚设。
配置robots.txt的关键在于清晰定位:它只是抓取建议而非安全控制,敏感区域必须配合硬性拦截。写规则时优先用具体的路径表达,遵循最长匹配优先;善用Allow和Disallow的搭配,谨慎对待通配符和末尾星号。每次修改后都做一次验证,并定期复查,才能让搜索引擎的抓取资源真正花在刀刃上。