配置好 robots.txt 是管理搜索引擎抓取行为的基石。它既能引导爬虫高效收录核心页面,也能有效屏蔽后台目录等敏感区域,避免资源被白白消耗。掌握其语法规则和不同场景下的写法,是每个网站运营者的必备技能。
robots.txt 必须放在网站根目录下,比如你的域名是 example.com,那么它的访问地址就是 https://example.com/robots.txt。文件里的内容由多个规则块组成,每个规则块都要以 User-agent 开头来确定作用对象。
举个最简单的例子,允许所有爬虫抓取,并提交地图文件:
User-agent: * Disallow: Sitemap: https://example.com/sitemap.xml写文件时,每条指令要独占一行,冒号后面跟一个空格,行尾不要有多余的符号。
每个网站的抓取需求都不一样。下面整理了几种常见的配置模板,你可以根据自己的实际情况来参考或修改。
如果网站还在搭建中,或者暂时不想被搜索引擎收录,直接用 Disallow: / 就能阻止所有爬虫。这种方法比起一个个路径去排除要省心得多,也能有效防止测试页面出现在搜索结果里。
User-agent: * Disallow: /多数情况下,我们只需要把后台、用户中心这类区域藏起来。比如要屏蔽 /admin/ 和 /private/,可以这么设置:
User-agent: * Disallow: /admin/ Disallow: /private/ Allow: /请注意,Allow 指令放在 Disallow 后面才会生效。如果你不确定目标爬虫支持不支持 Allow,那就只列禁止的路径就行,因为没提到的路径默认是开放的。
大型网站常常需要给不同爬虫分配不同权限。比如,允许 Googlebot 抓全部内容,但限制其他爬虫进入 /assets 目录:
User-agent: Googlebot Allow: / User-agent: * Disallow: /assets对于带有参数的动态网址,为了避免爬虫抓取大量重复或垃圾页面,可以使用通配符 $ 来匹配结尾。例如,屏蔽所有以 .pdf 结尾的文件,或者带 sessionid 参数的链接:
User-agent: * Disallow: /*.pdf$ Disallow: /*?sessionid=但需要注意的是,通配符 * 和 $ 并不是所有爬虫都支持,Google 的爬虫可以识别,而有些爬虫则只会把它们当成普通字符处理,使用前务必确认。
除了掌握基础语法,在实际操作中还有一些不容忽视的细节,处理不好可能会引发抓取异常。
它虽然重要,但并不是万能的。robots.txt 无法阻止其他网站对你的链接进行引用,也无法阻止有人直接通过 IP 访问。另外,如果服务器返回的是 302 或 404 状态,爬虫也会有不同的处理方式。理解这些限制,能帮助你更合理地规划网站的抓取策略,而不是把所有问题都交给这个文件来解决。
生效时间并不固定。搜索引擎的爬虫会定期重新抓取这个文件,一般来说,Google 可能在一两天内就会重新读取,而其他搜索引擎可能需要更长时间。如果你着急让新规则快速生效,可以在站长工具里手动提交 robots.txt 或者请求重新抓取。
当 Allow 和 Disallow 规则存在交集时,搜索引擎一般会遵循“最长匹配”的原则。例如,Disallow: /images/ 和 Allow: /images/logo.png 同时存在,那么 logo.png 是可以被抓取的,因为它的匹配路径更长,拥有更高的优先级。
写错本身不会直接导致降权,但可能引发严重后果。比如不小心用了 Disallow: /,整个网站就都从搜索结果里消失了,这虽然是可逆的,但重新恢复收录需要时间。所以修改前最好备份原文件,改完后立即用测试工具验证。
配置 robots.txt 的关键在于理清抓取需求,用好 User-agent、Disallow、Allow 这几个核心指令。不要不加思考地套用模板,而是要根据站点的实际目录结构和目标爬虫特性来定制。配置完成后,务必通过站长平台的测试工具检查规则效果,并定期复查文件,防止改动页面结构后出现意外的屏蔽或开放。