搜索引擎爬虫访问网站时,第一件事就是读取放置在根目录的 robots.txt 文件。这份纯文本文件相当于一份访客须知,告诉爬虫哪些页面可以抓取、哪些页面禁止进入。配置得当的 robots.txt 不仅能够保护后台和隐私页面不被索引,还能让搜索引擎把抓取额度集中用在重要内容上,是网站 SEO 优化中不容忽视的一环。
robots.txt 必须存放在站点根目录,例如 https://yourdomain.com/robots.txt,文件名严格区分大小写,推荐使用 UTF-8 编码保存。每一条指令独占一行,行尾不要留下多余空格。掌握基础字段是写出准确规则的前提:
除了以上三条,还可以通过 Sitemap 行指明站点地图的地址。看看下面这个典型配置:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://yourdomain.com/sitemap.xml
这段规则含义是:全站默认开放,但 /admin/ 目录禁止抓取,其中 /admin/public/ 作为例外允许访问。容易忽略的一个误区是:如果爬虫不理解 Allow 指令,它只会执行 Disallow 的限制,那么 /admin/public/ 对它仍然不可见。
不同网站的抓取需求差异很大,下面几种配置方案覆盖了大多数常见场景,你可以根据自己的情况替换路径后直接使用。
内容型站点或新上线的网站,通常希望所有页面都被搜索引擎收录。这时候只需要一行规则:
User-agent: *
Disallow:
其实把 Disallow 整行删除效果也一样。最怕出现失误写成 Disallow: /,一旦这样写,所有爬虫都会被挡在门外,收录进程会立刻中断。修改完配置后,建议到站长工具的抓取测试功能中检查实际效果。
如果不想让某个搜索引擎收录你的站点,可以为它单独配置规则:
User-agent: Bingbot
Disallow: /
这样配置后,其他爬虫不受任何影响。要注意的是,爬虫名称必须写准确,比如 Googlebot、Baiduspider、Sogou 蜘蛛的名称各有不同,写错的话规则不会生效,建议查阅各搜索引擎官方文档确认爬虫名称。
对于内容较少的网站,可以使用 Crawl-delay 指令控制爬虫的访问间隔,减轻服务器压力,例如:
User-agent: *
Disallow: /tmp/
Crawl-delay: 10
不过 Crawl-delay 并非所有爬虫都认可,部分引擎会忽略该指令。相比依赖这个字段,更可靠的方式是在服务器层面做访问限流。同时,若你希望优先抓取某些重要内容,可以在 Disallow 中排除不需要的路径,让爬虫集中资源访问核心页面。
很多网站在配置 robots.txt 时犯的错误并不显眼,但影响却十分深远。以下几点值得特别留意:
一个好的做法是,每次改动 robots.txt 后,都通过站长平台的 robots 测试工具验证效果,并检查日志确认爬虫的抓取行为是否符合预期。
写完 robots.txt 并不意味着工作结束,还需要通过几个步骤确认规则真正生效。
如果发现爬虫不断请求被禁止的页面,可以检查文件编码是否为 UTF-8 无 BOM,行尾是否有隐藏字符,以及服务器是否正确返回 200 状态码。
不能完全保证。robots.txt 只是对合规爬虫的一种约定,如果其他网站直接链接了你的页面,搜索引擎仍可能通过外部链接发现并索引该 URL,只是不抓取内容。对于真正的敏感信息,更可靠的方式是加上密码保护或设置 noindex 标签。
不同搜索引擎的规则不同。Google 会依据最具体匹配的原则,选择更长的路径作为结果;而其他一些引擎可能会按照文件中的先后顺序执行。为了避免不确定性,建议尽量保证规则之间不产生冲突,或者只使用 Disallow 来限制。
不是必须的,但建议写上。把 sitemap.xml 的地址声明在 robots.txt 中,可以帮助搜索引擎更快发现站点地图,尤其对于新站点来说,相当于多了一个提交入口。需要注意路径必须是完整的绝对地址。
robots.txt 是网站与搜索引擎沟通的第一道桥梁,配置时务必清晰理解每个字段的作用,避免常见误区和冲突规则。建议先从开放全站开始,根据实际需求逐步添加限制,每次修改后都通过站长工具验证。最后,记得把 sitemap 地址写入文件,并定期检查爬虫访问日志,确保规则始终符合网站的发展方向。