网站根目录下的 robots.txt 文件是站点的访问守则,它直接告诉搜索引擎爬虫哪些路径可以访问、哪些区域需要绕过。正确配置这份文件,能让搜索引擎的抓取精力集中在核心页面上,加快新内容的收录进程;而配置不当,轻则浪费抓取配额,重则导致整站页面无法正常抓取。理解它的语法和常见误区,是每个站长必须掌握的基础功。
这个文件只对遵守规则的爬虫生效,用户仍可通过浏览器直接访问对应地址查看内容。它好比一张地图,标明哪里可以走、哪里禁止通行,但地图本身不决定某个页面是否值得被收录。想让页面彻底从搜索结果中消失,正确做法是添加 noindex 元标签。
一个常见认知误区是:只要在 robots.txt 里屏蔽了路径,页面就不会出现在搜索中。实际情况是,这个文件无法阻止其他网站引用你的链接。如果某个页面被外部广泛链接,即便它被该文件屏蔽,搜索引擎依然可能因其他信号而收录它,只是网页快照可能不完整或来自间接渠道。
最关键的一点:此协议依赖爬虫自觉执行。主流搜索引擎会遵守,但恶意采集程序、某些竞品工具却不会理会。凡涉及用户授权、支付回调、管理后台等敏感目录,必须同时启用登录验证、IP 白名单等硬性防护,切勿让这份文件承担安全职责。
文件由若干规则组构成,每一组必须以 User-agent 字段开启。所有行都遵循“字段名: 值”的格式,注意使用英文半角冒号。虽然不少爬虫对格式容错,但规范写法仍是底线,能避免解析时遭遇意外。
它声明当前规则组约束的是哪位爬虫。对 Google 搜索单独设规则可用 User-agent: Googlebot;面向全部爬虫统一约束则用通配符 User-agent: *。可以编写多组规则,做到对不同类型的爬虫实施差异化策略,例如对谷歌放行更多目录,而对其他主流搜索工具收紧权限。
Disallow 禁止访问指定路径,Allow 则开放路径。有个细节值得留意:当 Disallow 后面不带任何值(即写为 Disallow: 并留空),代表清空一切限制,爬虫可抓取站点全部内容。当同一条链接同时命中多条规则,引擎默认采用“最长匹配优先”原则,即路径越长、越具体者胜出。举例来说,若你写有 Disallow: /module/ 和 Allow: /module/health/,由于后者路径更长更明确,health 子目录下的资源会被正常放行。
Sitemap 行声明站点地图的绝对完整地址,通常置于文件末尾,方便爬虫快速获知全站结构。Crawl-delay 字段设定抓取间隔,单位为秒。这里有个重要差异:Google 的蜘蛛明确不认此字段,该引擎建议通过 Search Console 后台的抓取频率设置来管理节奏,而非依赖此文件。
首要问题集中在路径语义上。写 Disallow: /private 会屏蔽以 /private 开头的所有目录,例如 /private_files/ 同样受到约束。若仅想阻止 /private 这一具体目录,应写为 /private/,这属于根目录下独立目录的常规写法。此外,对于多数搜索引擎来说,路径区分大小写,/Product/ 与 /product/ 被视为两个不同的地址。
通配符的运用也常出问题。星号(*)代表任意连续字符,例如 Disallow: /*?nav= 可阻止所有带特定参数的动态链接。$ 符号代表匹配结束,比如 Disallow: /*.pdf$ 会屏蔽文件类型为 PDF 的链接。不过要提醒的是,部分小众爬虫对通配符解析并不完整,若目标仅限主流引擎,可放心使用。
行结尾的额外空格、中文冒号、乱码的编码格式均是常见低级错误。若在本地编辑文件,建议使用无 BOM 的 UTF-8 编码另存,以减少解析干扰。规则组内容留空并不合法,至少要有一条声明,否则不少引擎会忽略该组。
完成文件编辑后,先访问地址“域名/robots.txt ”,查看文件是否能正常返回,并对照定位去逐一核对路径的准确性。值得注意的是,你设置的路径是相对站长根目录的,不是完整网址,也不应填写完整网址。
更严谨的做法是登录 Google Search Console,使用自带的 robots.txt 测试工具验证语法与规则的解析情况。它能够明示哪些行被识别为错误或警告,并模拟抓取来展示阻截效果。对于百度搜索资源平台,也有类似的验证入口。
规则松弛时,倾向于放宽。初始阶段可以只屏蔽确定无价值的路由,如后台路径、临时目录、缓存文件等,待观察抓取报告后,再逐步补强更细的限制。尽量不要一开始就写非常严苛的规则,这往往会误伤正常页面的收录机会。
可能收录。此文件只管爬虫是否抓取,不能阻止其他来源的链接传递价值。若页面被众多外部链接指向,搜索引擎可能仍将其收录进索引,只是快照可能不完整。要想彻底从搜索中移除看,应使用 noindex 标签。
对 Google 等多数主流引擎,路径匹配遵循最长匹配优先。无论 Allow 还是 Disallow,谁的路径前缀更长、更具体,谁就拥有最终裁决权。例如 Disallow: /assets/ 与 Allow: /assets/rebuild/ 并用时,后者生效并放行 rebuild 目录下的内容。
这个字段并非所有引擎都认可,Google 的爬虫就明确选择忽略它,而是依据后台的抓取速率设置判断抓取节奏。建议你针对目标引擎查阅其官方文档,确认是否需要使用该指令,避免写了却形同虚设。
配置 robots.txt 的核心在于理解:它只管抓取,无权决定索引;语法上要认清字段含义与最长匹配优先;运行时注意路径大小写、通配符和编码格式。建议先宽松后收紧,并用各平台提供的测工工具验证每一步规则,再过渡到线上正式生效。操作前保存旧版本内容,任何调整都应具备可回滚的能力,这样即便策略失误,也能迅速恢复至此前状态。