Robots.txt 是部署在网站根目录的文本文件,用于划定搜索引擎爬虫的抓取边界。一份书写得当的协议文件,既能守护后台、结算页等敏感区域不被收录,又能引导爬虫将资源集中投向高价值内容,直接关系到站点的抓取效率与索引质量。理解其核心语法,是迈出规范化站点管理的第一步。
在动手编辑前,务必确认文件存放于域名根目录下(如 yourdomain.com/robots.txt),且文件内容遵循特定的指令格式。每条规则由选择器与若干指令行构成,结构清晰可见。
构成规则的基本要素如下:
举一个最基础的放行示例:
User-agent: * Disallow: Sitemap: https://yourdomain.com/sitemap.xml上述配置的含义是:本站面向所有爬虫开放全站抓取权限,并额外通知了地图文件的存放位置。这是新站上线初期最常用的初始配置,能确保内容尽快被搜索引擎发现。
不同站点的结构差异巨大,管理后台、用户中心、临时页面等区域往往需要区别对待。根据实际工作流定制规则,能有效避免资源浪费与隐私外泄。
当网站处于开发调试阶段,或需要配合大促活动做临时下线时,通常采用一刀切策略阻止所有抓取行为。
User-agent: * Disallow: /此规则意味着爬虫无法访问站点内任何一个 URL。但请注意,该指令并非法律意义上的屏蔽,它仅代表礼貌性请求,不排除个别恶意爬虫违反协议强行抓取。维护结束后务必及时移除该规则。
多数站点的后台路径虽然不涉及隐私,但频繁的访问会增加服务器负载。针对这类目录做定向隔离是常见操作,同时要确保其余路径完全开放。
User-agent: * Disallow: /admin/ Disallow: /checkout/ Disallow: /user-center/ Allow: /在实际测试中发现,部分爬虫对 Allow 指令的解析存在差异,因此此处采用先定向封禁、后全量放行的写法。若目标爬虫不识别 Allow,也可直接移除 Allow 行,仅保留三条 Disallow 规则,未列出的路径同样默认可访问。
主流的搜索引擎爬虫(如 Googlebot、Baiduspider)对站点资源的需求各异。例如,你可能希望谷歌的爬虫抓取原始高清图片,而限制其他爬虫下载体积庞大的静态素材。
User-agent: Googlebot Allow: / User-agent: Baiduspider Disallow: /assets/cache/ User-agent: * Disallow: /assets/ Disallow: /images/此处必须留意分组顺序:应将特定爬虫的专属规则前置,通用规则(即 User-agent: *)放在最后作为兜底。爬虫会优先读取并匹配与自己名称一致的段落,一旦命中则不再向下解析。
协议文件本身的容错率较低,一个不起眼的符号或大小写错误,都可能导致规则失效或误伤整站。
当一组规则中同时存在 Allow 与 Disallow 且指向相近路径时,可能出现匹配优先级问题。通常搜索引擎会以最具体的字符长度为准,即更长的匹配路径拥有更高优先级。例如,Disallow: /forum 与 Allow: /forum/new 同时存在时,/forum/new 的规则会胜出。
对于聚合域名或双站点架构,请不要将多个站点的规则合并写入单一 robots.txt 文件。正确做法是为每个独立域名单独维护专属文件。同时,建议定期通过搜索引擎官方的测试工具(如 Google Search Console 中的 Robots 测试器)验证文件的有效性,以及时发现拦截错误。
该文件本身会被搜索引擎高频抓取,通常修改后数小时至两天内即可生效。若需立即验证,可借助站点后台的抓取测试工具手动触发更新请求,无需等待自然周期。
不能。Robots.txt 的作用是阻止抓取,而非阻止收录。如果页面已被外部链接指向,且内容公开,仍有可能被当作未知 URL 收录并展示摘要。对真正需要保密的页面,应同时采用登录鉴权或 HTML 中的 noindex 标签进行双重防护。
无需固定位置,它不隶属于任何 User-agent 分组,可以独立成行放置。建议放在文件末尾,作为补充信息供爬虫读取即可。需要留意的是,Sitemap 值必须是完整可访问的 URL,并携带正确的协议头。
掌握 Robots.txt 的编写,是网站运营与 SEO 优化的基本功。建议从最小化原则出发:仅屏蔽确实不需要抓取的目录,其余全部放行。每次调整后,请借助在线校验工具检查规则逻辑,同时观察后台抓取统计中的异常项。维护过程中,保持规则简洁、路径明确、注释清楚,能让后续的排查工作事半功倍。