对于任何一个维护网站的人来说,robots.txt 都是需要认真对待的文件。它放在站点根目录,用几行简短指令就能告诉搜索引擎的抓取程序,哪些内容可以访问,哪些区域需要绕行。设置得当,搜索引擎的抓取资源能更集中地用在重要页面上,新内容的收录速度也会更快;但一旦格式出错或路径填错,网站被搜索引擎降低权重甚至移出索引的情况并不少见。下面我们就来系统梳理这个文件的关键语法,并指出那些容易出错的细节。
这个文件的作用对象是搜索引擎的爬虫,你可以在浏览器地址栏直接输入“域名/robots.txt”来查看它。它的角色更像一个向导,告诉爬虫哪些路径可以走,但最终是否把页面放入搜索索引,决定权并不在这里。如果你真正的目的是让某个页面从搜索结果中彻底消失,应当使用 noindex 元标签。robots.txt 只管爬虫来不来抓取,对已经抓取过的页面是否被收录,它无法干预。举例来说,某个页面在 robots.txt 中被屏蔽,但如果它被大量外部链接指向,搜索引擎仍可能将其收录,只是快照内容可能来自其他页面或描述。
还需要记住一点:这份协议完全依靠爬虫的自觉。主流搜索引擎的蜘蛛通常会遵守规则,但不少恶意采集程序和其他抓取工具并不理会。凡是涉及用户隐私、交易订单、后台管理等敏感目录,必须叠加登录权限、IP 白名单或防火墙等额外防护,不能把安全完全寄托在这份“君子协定”上。
robots.txt 由多个规则组构成,每一组必须以 User-agent 字段开头。所有字段统一采用“名称: 值”的格式,冒号使用英文半角,冒号后跟一个空格是规范写法。虽然大部分爬虫对格式容错度较高,但写规范一些可以避免未来出现难以预料的解析问题。
这一行声明当前规则组是针对哪一类爬虫生效。如果只想约束谷歌的搜索蜘蛛,可以写 User-agent: Googlebot;如果希望所有搜索引擎的爬虫统一遵守,就用通配符 User-agent: *。你可以建立多个规则组,对不同爬虫实行差异化策略,比如对谷歌放宽权限,同时收紧对必应的限制。
Disallow 声明禁止访问的路径,Allow 声明允许访问的路径,两者经常搭配使用。有一个容易被忽略的细节:当 Disallow 后面留空(即 Disallow: 且无值),表示清除所有限制,爬虫可以抓取整个网站。当同一个 URL 同时命中多条规则时,搜索引擎默认遵循“最长匹配优先”原则——路径越具体,优先级越高。比如同时写了 Disallow: /api/ 和 Allow: /api/public/,因为后者更具体,所以 public 子目录下的内容会被放行。
Sitemap 指令用于声明站点地图的完整 URL,方便爬虫快速定位全站内容,通常放在文件末尾。Crawl-delay 用来设定爬虫抓取的时间间隔,单位是秒。需要特别注意的是,谷歌爬虫并不认可这一指令,它更推荐通过 Search Console 后台的频率设置来控制抓取节奏。
第一个常见问题出在路径理解上。Disallow 的值是相对于域名根目录的路径,不是完整 URL。所以写成 Disallow: https://example.com/admin/ 是错的,正确写法是 Disallow: /admin/。第二个问题在于通配符的使用,标准中 * 表示匹配任意字符序列,比如 Disallow: /*?page= 可以屏蔽所有带特定查询参数的 URL。但注意,并非所有爬虫都完整支持通配符,兼容性最好的写法还是明确列出每条路径。第三个容易出错的点是大小写:路径匹配是区分大小写的,/Admin/ 和 /admin/ 被视为两个不同目录。建议统一规范化目录命名,并在部署前逐行检查.
配置文件写好之后,别急着直接上线,先对照下面的清单逐一确认,能帮你省掉后续不少麻烦。
把这份清单打印出来或者存成笔记,每次修改配置后都过一遍,基本能避开九成以上的低级错误。
有可能。如果错误地屏蔽了整个站点,爬虫会很快停止抓取,已经收录的页面也有可能逐渐从索引中移除,导致自然搜索流量明显下滑。但大多数错误不会立即生效,搜索引擎蜘蛛有缓存机制,可能隔几天才完全响应新的规则。一旦发现问题,尽快修正文件并主动在 Search Console 提交请求重新抓取,通常可以快速恢复。
技术上可以,在文件里写 User-agent: * 和 Disallow: / 就能让所有遵守协议的爬虫停止抓取。但这样做的代价是网站几乎不可能获得自然搜索流量。如果你只是想临时屏蔽某些目录,更稳妥的做法是只针对特定路径设置 Disallow,而不是直接屏蔽全站。如果你的目的是防止页面被收录,建议考虑使用 noindex 标签,这才是更精确的手段。
没有固定时间表,取决于搜索引擎的抓取频率和站点的更新频率。一般来说,权重高的网站新页面可能在几小时到几天内被收录,而新站或权重较低的站点可能需要一到两周。你可以在搜索引擎的站长工具中手动提交 URL 或站点地图,来加快这个流程。
robots.txt 是一把双刃剑——用好了能帮搜索引擎更快地找到你的核心内容,用错了则可能让整站消失在搜索结果之外。建议你在修改前先备份原文件,每次改动只做一条规则的调整,并在站长工具中观察抓取数据的变化。把基础语法理解透彻,严格遵守路径和格式规范,这个文件就能成为你运营网站时的得力助手,而不是一个随时可能引爆的雷。