当搜索引擎爬虫访问一个网站时,它首先读取的就是存放在根目录下的 robots.txt 文件。这个纯文本文件相当于网站的“访问守则”,告诉爬虫哪些页面可以抓取、哪些区域需要回避。合理的 robots.txt 配置,既能防止后台页面、临时目录等敏感内容被收录,也能引导爬虫把抓取预算花在真正重要的页面上,从而提升网站的搜索表现。
robots.txt 必须放置在域名根目录下,访问地址通常是 https://yourdomain.com/robots.txt。文件采用纯文本格式,推荐使用 UTF-8 编码,每行只写一条规则,并且路径区分大小写。掌握以下三个基础指令,就基本掌握了文件的编写方法:
在文件末尾追加一行 Sitemap 声明,可以帮助爬虫更快发现站点地图。示例如下:
User-agent: *
Disallow: /private/
Allow: /private/shared/
Sitemap: https://yourdomain.com/sitemap.xml
这段规则的含义是:所有爬虫默认可抓取全站,但 /private/ 目录被屏蔽,其中 /private/shared/ 子目录得到特别放行。需要特别注意的是,如果爬虫不识别 Allow 指令,那么 Disallow 的屏蔽规则依然会生效,不能把 Allow 当作绝对保障。
不同性质的网站,robots.txt 的写法差异很大。下面梳理了三种高频场景的配置方案,可以当作起步模板使用。
内容型网站或刚上线的新站点,通常希望所有页面都能被搜索引擎索引。这时只需保留一个没有填入内容的 Disallow 声明即可:
User-agent: *
Disallow:
直接省略 Disallow 行也能达到同样效果。这里最常见的失误是写成 Disallow: /,一个简单的斜杠就会拦截所有爬虫,导致页面收录数量瞬间归零。
如果不想让某个特定的搜索引擎抓取站点,可以单独为其制定规则,其他爬虫不受任何影响:
User-agent: Baiduspider
Disallow: /
这个设置只对百度爬虫生效。爬虫的准确名称需要在各搜索引擎的官方文档中查询确认,常见的有 Googlebot、Bingbot、Baiduspider 等。
企业官网常用的策略是开放前台内容,同时封锁管理后台和临时文件目录。配置示例如下:
User-agent: *
Disallow: /admin/
Disallow: /temp/
Disallow: /includes/
Sitemap: https://yourdomain.com/sitemap.xml
这样的写法可以确保爬虫不会进入后台和临时文件夹,同时避免重复内容分散权重。需要留意的是,如果某些页面需要被登录后才能访问,即使不写进 robots.txt,爬虫通常也无法抓取,因此不要把 robots.txt 当作安全防线,它只是一个礼貌性的协议。
在实际配置过程中,不少站点会因为一些细节失误而影响收录表现。以下是几个高频问题的总结:
此外,修改 robots.txt 后,一般建议借助搜索引擎的抓取检测工具(如 Google Search Console 的 URL 检查工具)验证规则的生效情况,不要仅凭直觉判断。
写完 robots.txt 后,不能一放了之。以下两个方法可以帮助确认规则是否正确执行:
如果站点有多个子域名或不同协议(HTTP 与 HTTPS),需要分别放置独立的 robots.txt 文件,不要寄希望于一处配置全局生效。
不一定。robots.txt 只是阻止爬虫抓取页面,但如果其他网站已经外链了该页面,搜索引擎仍可能将其收录并展示摘要,只是无法抓取正文内容。如果需要彻底从搜索结果中移除页面,应考虑使用 noindex 标签,而不是仅仅依赖 robots.txt。
在功能上没有实质区别,两者都表示允许爬虫抓取全站。但留空的 Disallow 在某些旧版解析器中可能被误读为未定义,因此更推荐直接删除该行,或者注释掉相关语句,让配置看起来更清晰。
生效时间取决于爬虫的重新抓取频率。大部分主搜索引擎会定期重新抓取 robots.txt(通常每 24 到 48 小时),但高优先级网站可能更快。如果修改后长时间未生效,可以主动提交抓取请求,也可以通过搜索引擎的日志观察爬虫的访问频率来判断。
robots.txt 是网站与搜索引擎之间最基础的沟通文件,合理配置能显著提升抓取效率。建议在部署前先厘清站点的公共区域与敏感目录,再按照本文提供的模板逐条编写;修改完成后,务必使用官方的抓取检测工具验证规则,并定期复查文件内容,避免因路径变动或拼写错误导致意外屏蔽。记住:robots.txt 是引导协议,不是安全屏障,敏感资源仍需在服务器层面做好防护。