每个运营网站的人,迟早都要和 robots.txt 这份文件打交道。它安静地躺在域名根目录,用简单的文本规则向搜索引擎爬虫说明:站内哪些路径可以向它们开放,哪些区域需要回避。规则设置得当,爬虫便能将有限的抓取额度集中在你的高质量内容上,新页面的收录速度会有明显提升;而路径写错一个字符或漏掉一个冒号,就可能让整站从搜索结果中消失,这样的教训每年都有不少站长亲身体验。下面,我们就从头梳理这份文件的语法要点和那些容易让人失手的细节。
先来认识它的访问方式:在浏览器地址栏输入你的域名并加上 /robots.txt,例如 https://example.com/robots.txt,即可直接查看这份配置。它的本质是为爬虫规划抓取路线,相当于一位园区导览员,而不是判定页面是否收录的最终决策者。如果你希望某个页面彻底从搜索结果中消失,正确的做法是使用 noindex 标签。robots.txt 仅能限制爬虫的抓取行为,至于搜索引擎是否将已抓取的内容纳入索引,它无法干预。举个例子:你禁止了某产品页被抓取,但这个产品被大量外部网站提及,搜索引擎依旧可能将其收录展示,只是内容来源变成了其他站点。
还有一个不可忽视的事实:robots.txt 对遵守规范的搜索爬虫有效,对那些不守规则的采集程序来说,几乎形同虚设。主流搜索引擎的蜘蛛都会认真遵守协议,但恶意抓取数据、频繁刷接口的工具根本不会理会这份文件。因此,涉及用户隐私、订单详情、后台管理这类敏感目录,你需要叠加登录认证、IP 白名单或防火墙拦截等硬性防护,不能把安全底线寄托在一份君子协议上。
整个 robots.txt 由若干条规则组构成,每个组都必须以 User-agent 字段开头。所有字段统一采用“名称: 值”的格式,冒号建议使用英文半角,并在其后跟一个空格。尽管搜索引擎有一定的容错能力,但保持规范书写能尽可能避免意外情况。
这一行用于指定当前规则组对哪类爬虫生效。比如你只想限制谷歌的搜索蜘蛛,就写 User-agent: Googlebot;如果想对所有搜索引擎一视同仁,用通配符 User-agent: * 最省事。你还可以创建多个规则组,例如对谷歌放行更宽的抓取范围,对必应收紧限制,各有侧重。
Disallow 声明禁止抓取的路径,Allow 则声明允许抓取的路径,两者常常配合使用。有个容易被忽略的细节:如果 Disallow 后面留空(写成 Disallow:),表示解除所有限制,爬虫可以抓取全站内容。当同一个 URL 同时被 Allow 和 Disallow 规则命中时,搜索引擎遵循“最长匹配优先”原则,即路径写得更具体的那条规则生效。例如你设置了 Disallow: /api/ 又添加了 Allow: /api/public/,因为后者路径更长、更具体,所以 public 目录下的文件依然可以被爬虫抓取。
Sitemap 指令用于填写站点地图的完整网址,方便爬虫在一个位置找到你的全部内容,通常放在文件末尾。Crawl-delay 则用于设置爬虫抓取的时间间隔。特别提醒:谷歌的爬虫谷歌已明确表示不遵守此指令,它对抓取频率的控制需要依靠 Search Console 后台设置;而对于遵守该指令的搜索引擎,设置过长的延迟可能拖慢内容收录速度,建议依据服务器实际负载合理设定。
在实际配置中,有几种错误反复出现,后果也相当严重。其一是在 Disallow 路径中多写了一个斜杠或漏掉前置斜杠,比如将 Disallow: /admin 误写成 Disallow: admin,可能导致规则完全失效或错误拦截;其二是误用通配符和正则表达式,robots.txt 本身只支持有限的通配符,许多站长想当然地使用正则语法(如 .* 或 ?),结果规则被搜索引擎忽略,首页反而被禁止抓取;其三是把 robots.txt 与 noindex 混淆,为了加速收录而误写了不存在的物理路径,导致爬虫反复请求 404,浪费了宝贵的抓取配额;最后一个常见问题是在文件修改后未主动向搜索引擎提交更新,旧规则在缓存期内继续生效,新内容迟迟无法被抓取。
对于初次配置的站长,建议按下述步骤操作,每一步都有明确的判断标准:
robots.txt 只管抓取,不管索引。如果页面此前已被抓取并进入索引库,那么即便你后来禁止抓取,搜索引擎也可能在一定时间内继续展示原有快照。要让页面从搜索结果中消失,需要在该页面上添加 noindex 标签,或者通过站长后台提交删除请求。
可以。你可以在同一文件中为不同爬虫配置不同的规则组,每组以各自的 User-agent 开头,后续的 Allow 和 Disallow 只对当前组生效。文件按从上到下的顺序匹配,因此建议把全站的通用规则写在最前面。
搜索引擎爬虫通常定期重新抓取该文件,快则几分钟,慢则数小时甚至更久,具体取决于各搜索引擎的抓取频率。为缩短等待时间,可在修改完成后主动到对应站长平台提交更新,大多数情况下新规则会在当天内生效。
robots.txt 的配置没有太多玄机,关键在于清晰认识它的能力边界,并严格遵循语法规范。建议从最小化的规则开始,先明确哪些目录必须保护,哪些内容需要开放;写好之后务必逐一验证,再主动提交给搜索引擎。定期检查文件中是否存在多余路径或失效规则,保持其简洁、准确。这样,爬虫才能真正按你的意愿合理分配抓取资源,让你的核心内容加速进入搜索结果。