Robots.txt 是网站管理者与搜索引擎爬虫沟通的首要工具。通过这份放在服务器根目录的文本文件,你可以精确控制哪些页面可以被抓取和索引,从而保护隐私内容、优化抓取预算并引导搜索引擎更高效地理解网站结构。正确编写 robots.txt 是技术性 SEO 的基础操作。
一个标准的 robots.txt 文件由若干条记录组成,每条记录通过 User-agent 指令指定目标爬虫,并通过 Allow 或 Disallow 指令定义该爬虫的访问路径规则。文件书写规则严格且敏感:用户代理名区分大小写,路径必须从根目录写起。
常见误写示例:不要在路径末尾加空格;不要在 Disallow 后面跟逗号;每行只能写一条指令。正确的写法如下:
User-agent: *
Disallow: /admin/
Allow: /admin/style.css
Sitemap: https://example.com/sitemap.xml
Robots.txt 支持两个通配符:星号(*)匹配零个或多个任意字符;美元符号($)表示路径结尾。例如 Disallow: /*?sort= 会阻止所有带 sort 参数的 URL;Disallow: /printer$ 则仅禁止以 /printer 结尾的页面。对于动态页面和参数化 URL,合理使用通配符可以大幅减少规则条数,降低维护成本。
不同网站架构对爬虫的开放程度差异很大。以下列出六种常见需求对应的具体实现方式,可直接复制后根据自身路径调整。
建议写完规则后,使用谷歌搜索控制台中的“robots.txt 测试工具”验证规则是否符合预期,避免意外封锁重要页面。
一个错误的指令可能让整个网站从搜索结果中消失,或让敏感信息意外暴露。以下错误最致命且最常见:
此外,robots.txt 不是安全机制,它只约束规范的爬虫。恶意爬虫或黑客不会遵守你的规则,因此敏感数据(如用户订单、后台登录页)应通过服务器权限或登录页面保护,而非仅靠 robots.txt 屏蔽。
每次修改 robots.txt 后,务必进行以下测试流程:
建议每季度回顾一次现有规则,移除不再需要的屏蔽条目,避免累积过多过时的规则影响爬虫效率。同时对新增的功能模块或子站点,评估是否需要增加新的允许或屏蔽条目。
使用通配符精确匹配搜索路径。例如若搜索页面路径为 /search?q=,则设置 Disallow: /search?q=。若搜索引擎已经索引了这类页面,还需在页面中添加 noindex 标签并要求爬虫重新抓取。
不能。Robots.txt 只控制爬虫是否抓取某个页面,无法直接决定页面是否出现在索引中。若希望页面不被索引,应使用 robots meta 标签或 HTTP X-Robots-Tag 响应头设置 noindex。两者结合使用效果最佳:先用 robots.txt 阻止抓取,再用 noindex 防止索引(适用于爬虫依然能获取页面内容的情况)。
重要。爬虫会从上到下匹配与自己名称完全匹配的第一条记录。若没有完全匹配,则匹配通配符(*)记录。因此应把具体爬虫的规则写在前面,通配规则写在最后。例如先写 User-agent: Googlebot 的规则,再写 User-agent: * 的兜底规则。
编写 robots.txt 时,核心原则是“精确而非保守”。先明确哪些内容必须对爬虫开放(首页、核心产品页、优质文章等),再为管理后台、重复内容、测试页面配置禁止规则。写完文件并测试无误后,定期复查以确保规则与网站结构同步。如果你刚刚上手,不妨从最简单的屏蔽后台路径开始,逐步学习使用通配符和 Allow 指令,将 robots.txt 打造成你网站 SEO 策略中第一道可靠的控制环节。