Robots.txt 是网站与搜索引擎爬虫之间约定访问边界的标准文件,它直接决定爬虫能否抓取特定页面或目录。合理配置这份文件,既能保护后台、会员中心等敏感区域不被收录,也能减少无效抓取对服务器资源的消耗,让搜索引擎更聚焦于网站的优质内容。本文从最基础的语法入手,结合实际场景给出可直接套用的配置方案。
robots.txt 必须放置在网站域名根目录下,比如 https://example.com/robots.txt。它的核心由一组组指令块构成,每组指令块先声明 User-agent,再跟随具体规则。整个文件遵循"从上到下、分段对应"的原则,每个爬虫只会匹配与自身名称对应的段落。
常用指令字段说明:
一个最简单的开放配置如下:
User-agent: * Disallow: Sitemap: https://example.com/sitemap.xml此配置的含义是允许所有爬虫抓取全站内容,同时告知地图位置。
不同网站对抓取的需求差异很大,以下列举几种高频场景的推荐写法。
网站处于开发中、改版测试或临时维护阶段时,需要禁止所有爬虫访问任何路径。
User-agent: * Disallow: /注意,此规则仅对遵守协议的搜索引擎有效,某些恶意爬虫可能无视该指令,不能将其视为安全防护手段。
当网站主体内容需要正常收录,但后台、用户中心、临时目录需要屏蔽时,采用逐一列举的方式更稳妥。
User-agent: * Disallow: /admin/ Disallow: /user/ Disallow: /temp/这种方式无需依赖 Allow 指令,兼容性最好。如果希望在同一段落中同时使用 Allow 放行某个子路径,务必把 Allow 规则写在对应的 Disallow 之后,例如在禁止 /user/ 的前提下放行 /user/profile/。
不同搜索引擎的爬虫对资源消耗和处理能力不同,可以分别设置。例如允许 Googlebot 抓取全部内容,但限制其他爬虫访问图片目录,以降低带宽压力。
User-agent: Googlebot Allow: / User-agent: * Disallow: /images/ Disallow: /css/声明顺序很重要,特定爬虫的规则段落必须放在通用规则之前,否则爬虫可能匹配到错误的规则块。同时注意,每个段落之间用空行分隔。
robots.txt 的语法看似简单,却常因细节疏忽导致抓取异常或隐私泄露。
发布 robots.txt 之前进行测试能显著减少抓取问题。推荐按照以下步骤操作。
不能直接阻止。robots.txt 只是阻止爬虫发起抓取请求。如果页面已经被其他网站转载或通过外链被发现,搜索引擎仍可能通过其他途径索引该 URL 或仅展示标题和摘要。若要彻底阻止收录,需要配合 noindex 标签使用。
在路径匹配时,遵循"最长匹配优先"的原则。即爬虫会对比所有匹配的规则,最终采用字符长度最长的那条作为生效规则。例如 Disallow: /admin/ 和 Allow: /admin/public/ 同时存在时,访问 /admin/public/file.pdf 将匹配 Allow 规则并获得放行。
爬虫通常会定期重新抓取该文件,具体间隔从几小时到几天不等,取决于抓取频率和站点权重。此外,也能在搜索引擎的站长后台手动请求重新抓取该文件以加快更新速度,提交后一般会在当天内被重新读取。
编写 robots.txt 的核心原则是"最小化限制",仅针对必须屏蔽的路径添加规则,其余内容保持开放。上线前务必验证每条路径的匹配结果,同时关注文件大小、大小写和返回状态码等细节。建议将规则维护纳入网站改版的常规流程,每次更新后主动通过站长工具校验,避免因陈旧规则拖累搜索流量。