在网站根目录放一份名为 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,其抓取频率由算法根据网站响应速度动态调整,因此对该指令设置对谷歌并无实际意义。
实际操作中,有几类错误频繁出现:一是混淆"禁止抓取"与"禁止索引"的概念。Disallow 只是阻止爬虫抓取页面,但页面仍可能通过外部链接被收录,只是展示的摘要可能不完整。二是规则组顺序颠倒,比如在 User-agent: * 之后又添加具体的 User-agent: Googlebot,后者会覆盖前者的部分设置,容易造成意图不一致。三是路径写法不规范,比如忘记以斜杠开头,或者使用无意义的绝对路径,例如 Disallow: https://example.com/admin,这种写法并不会生效,正确的形式应该是以斜杠开头的相对路径。
建议在撰写完成后,使用搜索引擎官方的 robots 测试工具进行验证,或直接打开文件逐行检查拼写。另外,修改 robots.txt 后并不需要立即提交给搜索引擎,爬虫通常会在一定周期内自动重新读取该文件。
一个基础配置模板通常包含以下内容:首先对所有爬虫设置通用规则,例如禁止抓取站点后台和临时文件目录;随后单独为付费搜索引擎设置较高抓取频率。示例如下:
User-agent: * Disallow: /admin/ Disallow: /tmp/ Allow: / Sitemap: https://example.com/sitemap.xml值得注意的是,Disallow 与 Allow 的顺序会影响最终效果。建议优先写 Disallow,再用更具体的 Allow 补充放行。例如禁止抓取整个 /files/ 目录,但允许其中 /files/downloads/ 子目录被访问,应写成 Disallow: /files/ 与 Allow: /files/downloads/。此外,静态资源如图片和样式文件通常不建议屏蔽,因为这会妨碍搜索引擎理解页面整体结构与样式。
robots.txt 只阻止爬虫抓取页面,但不阻止页面被索引。如果站外有大量指向该页面的链接,搜索引擎依然可能将其纳入索引库。若确实希望页面从搜索结果中消失,更稳妥的办法是使用 meta robots 标签中的 noindex 指令,或在 HTTP 响应头中设置 X-Robots-Tag: noindex。
搜索引擎通常对文件大小和规则数量有一定限制。谷歌规定文件大小上限约 500KB,同时建议单个目录下路径匹配长度不超过 500 个字符。超出限制的部分会被忽略,因此应尽量精简规则,避免冗余配置影响解析效率。
可以通过搜索引擎站长平台提供的 robots 测试工具来检查。以谷歌 Search Console 为例,工具会模拟 Googlebot 对指定 URL 的抓取结果,并显示被哪条规则阻止。也可以直接在浏览器中访问"域名/robots.txt"人工核对内容是否与预期一致。
合理配置 robots.txt 是引导爬虫高效抓取的基础工作。理解其"非强制协议"的性质,掌握规则组的匹配原理,并避开常见误区,能帮助新内容更快被收录,同时防止抓取资源被无效页面消耗。建议每季度检查一次文件内容,结合站点结构调整及时更新,并配合站点地图一起发布,让搜索引擎始终掌握最新的内容脉络。