robots.txt 是网站与搜索引擎爬虫之间约定俗成的通信文件,它告诉爬虫哪些路径可以抓取、哪些需要绕行。配置得当,它能引导爬虫聚焦核心内容,节省服务器带宽;配置出错,轻则个别页面无法收录,重则整站被爬虫拒之门外。无论你是初次建站还是日常维护,理解这份文件的正确用法都是保障自然搜索流量的基本功。
文件必须命名为小写字母的 robots.txt,并且存放在域名根目录下,例如 https://example.com/robots.txt。文件内容由若干条"记录"构成,记录之间用空行分隔。每条记录开头是 User-agent 行,其后跟随若干条规则行,字段名和值之间用冒号加空格隔开,比如 Disallow: /private/。字段名不区分大小写,但路径值建议保持大小写敏感,否则可能产生意外匹配。
注释以井号 # 开头,可独占一行,也可写在规则末尾。创建文件时用纯文本编辑器,另存为 UTF-8 编码(无 BOM),防止编码问题导致规则解析失败。保存后,直接在浏览器访问根目录下的 robots.txt 地址,核对内容是否按预期显示。
最常见的需求是屏蔽特定目录,例如禁止所有爬虫访问后台路径:
User-agent: *
Disallow: /admin/
若需同时封禁多个目录,可连续写多行 Disallow。此处要特别注意路径末尾的斜杠:Disallow: /admin/ 只匹配 admin 目录及其子路径;而 Disallow: /admin(无末尾斜杠)会匹配所有以 admin 开头的路径,例如 /administrator 或 /admin-panel,容易误伤正常页面。写规则时务必反复确认斜杠是否与预期一致。
当需要屏蔽整个目录但放行其中某个子路径时,用 Allow 指令配合实现。例如屏蔽博客栏目下除专题外的所有页面:
User-agent: *
Disallow: /blog/
Allow: /blog/featured/
通用匹配优先级为:若两条规则同时命中同一 URL,规则路径更长(更具体)者优先;若长度相同,则 Allow 优先于 Disallow。上述写法可保证专题路径不被 Disallow 误伤。不过不同搜索引擎对优先级细节的理解略有不同,若主要流量来自某个特定搜索引擎,建议参考其官方文档验证配置行为。
可以为不同爬虫设置不同策略。例如对 Googlebot 完全开放,而暂时限制其他爬虫:
User-agent: *
Disallow: /
User-agent: Googlebot
Disallow:
注意 Googlebot 的 Disallow 后面留空,表示允许抓取全部内容。同时,可以用 Sitemap: 行主动声明站点地图地址,方便搜索引擎更快发现新内容,写法如下:
Sitemap: https://example.com/sitemap.xml
不少站长在规则中使用 * 和 $ 通配符,但这两者并非所有搜索引擎都支持。比如 Disallow: /*.pdf$ 在 Google 中可以生效,但在某些引擎中会被忽略,导致文件意外泄露或抓取异常。如果你的站点面向多个搜索引擎,建议少用特殊符号,改用具体的目录路径,兼容性更好。
部分站长误以为 robots.txt 可以放置在子目录,实则必须位于根域名下。另外,若网站同时部署了 CDN 或反向代理,可能出现根目录 robots.txt 被缓存服务覆盖的情况,导致旧规则长期生效。修改后建议用在线工具或直接请求文件头信息,确认返回的是最新内容。
部署或修改 robots.txt 后,不能只凭直觉判断效果,建议按以下步骤验证:
养成每次修改后都走一遍上述流程的习惯,能显著降低配置错误带来的收录风险。
通用规则是路径更长的优先;若路径长度相同,则 Allow 优先于 Disallow。但不同搜索引擎可能有细微差异,建议以目标引擎的官方文档为准,并在站长工具中实测验证。
不能直接阻止。robots.txt 只阻止爬虫抓取,若页面被其他网站链接引用,仍可能被收录并展示在搜索结果中(但无法抓取内容)。若需彻底禁止收录,应使用 noindex 标签结合 robots.txt 双重控制。
生效时间取决于爬虫重新抓取该文件的频率,一般在几小时到几天之间。若急需生效,可在站长工具中主动提交索引或请求抓取 robots.txt,以加速更新。
配置 robots.txt 并不复杂,但细节决定成败。建议从基础开始:先保证文件放在正确位置,再逐条验证规则与预期匹配,最后定期审视现有规则并根据站点结构调整。同时养成修改后立即测试的习惯,利用站长工具排查优先级和编码问题。把这份文件的维护纳入日常运营流程,搜索引擎抓取效率会得到稳定保障。