如果你在浏览器中访问 你的域名/robots.txt,会看到一个纯文本文件,里面写了一些规则。这个文件,就是你和搜索引擎爬虫之间的「交通指示牌」——告诉搜索引擎:哪些页面可以抓取,哪些不要碰。
但这个看起来简单的文件,却是建站新手最容易配出问题的 SEO 组件之一。配错了,可能影响搜索引擎抓取,甚至让重要页面长期无法正常展示。
一、robots.txt 控制的是什么?
首先要明确一个最核心的概念:robots.txt 控制的是「抓取」,而不是「索引」。
- 抓取(Crawl):搜索引擎爬虫访问并读取你的页面内容。
- 索引(Index):搜索引擎把页面内容存入它的数据库,使其可能出现在搜索结果中。
robots.txt 只能阻止爬虫抓取某个路径。它不能直接阻止页面被索引。
如果你用 robots.txt 屏蔽了某个页面,但该页面被其他网站链接引用,搜索引擎仍然可能将它收录进索引——只不过索引中没有该页面的实际内容,搜索结果中可能显示「由于此网站的 robots.txt 文件,无法提供此结果的描述」。
如果你想让某个页面不出现在搜索结果中,正确的方法是使用 noindex meta 标签,而不是 robots.txt。
二、robots.txt 的基本语法
一个典型的 robots.txt 文件长这样:
User-agent: *
Disallow: /admin/
Disallow: /wp-admin/
Allow: /admin/public/
Sitemap: https://www.example.com/sitemap.xml
各字段含义
| 字段 | 含义 |
|---|---|
User-agent: * |
这条规则适用于所有搜索引擎爬虫(* 是通配符) |
Disallow: /admin/ |
禁止抓取 /admin/ 路径及其所有子目录 |
Allow: /admin/public/ |
在 Disallow 规则中放行特定路径 |
Sitemap: ... |
告诉搜索引擎你的 Sitemap 地址 |
你也可以针对特定爬虫设置规则:
User-agent: Googlebot
Disallow: /private/
User-agent: Baiduspider
Disallow: /
上面第一条规则只对 Google 爬虫禁用 /private/ 路径;第二条规则禁止百度爬虫抓取整个网站。
三、5 个最常见的配置误区
误区 1:用 robots.txt 保护敏感内容
这是最危险的一个误区。robots.txt 是公开文件,任何人都能访问查看。如果你在里面写了:
Disallow: /secret-admin-panel/
这等于向全世界宣告了你的后台管理路径。攻击者会专门盯着 robots.txt 中 Disallow 的路径。
正确做法:敏感后台使用密码保护、IP 白名单、HTTP 基础认证等方式保护,而不是靠 robots.txt 来「隐藏」。
误区 2:全站禁止抓取
User-agent: *
Disallow: /
这条规则会让所有搜索引擎停止抓取你的网站。如果你发现网站忽然在 Google 中搜不到了,先检查 robots.txt 是不是被误设为全站禁止。这种情况常见于从测试环境迁移到正式环境时忘记修改。
误区 3:屏蔽 CSS 和 JS 文件
Disallow: /assets/js/
Disallow: /assets/css/
Google 等搜索引擎会渲染页面,需要获取 CSS 和 JS 来理解页面布局。如果屏蔽了这些资源,搜索引擎可能无法正确评估你的页面质量,从而影响排名。不要屏蔽 CSS 和 JS 文件,除非你有非常具体且理解后果的理由。
误区 4:把 noindex 页面放进 Disallow
如果你想一个页面彻底不被搜索引擎处理,不应该用 Disallow,而应该在页面中添加:
<meta name="robots" content="noindex">
因为如果只用 Disallow,爬虫根本不会读取页面内容,也就看不到 noindex 标签,页面仍然可能存在于索引中。
规则:允许抓取 + noindex = 页面不出现在搜索结果。Disallow = 页面不抓取但可能被索引(通过外链发现)。
误区 5:依赖 robots.txt 阻止搜索引擎收录过期内容
有些用户会定期在 robots.txt 中添加新 Disallow 规则来屏蔽旧页面。这不是正确的做法。搜索引擎一旦索引了页面,仅仅禁止后续抓取不会让已有的索引被删除。
正确做法是:
- 删除或更新页面本身(返回 404 或 301 跳转)。
- 或在页面中添加
noindex,等待搜索引擎下次抓取时处理。 - 或通过 Search Console 的「移除网址」工具提交移除请求。
四、如何测试 robots.txt 是否正确?
Google Search Console 和在线校验工具
Google Search Console 会在站点资源中展示 robots.txt 抓取状态和相关问题。你可以结合以下方式检查:
- 查看 Search Console 中的 robots.txt 状态报告,确认 Google 能读取该文件。
- 使用 URL 检查工具查看某个具体页面是否允许抓取、是否可被索引。
- 使用在线 robots.txt validator 或本地工具测试规则匹配,避免
Disallow写错路径。
直接在浏览器中查看
访问 你的域名/robots.txt 即可看到当前生效的 robots.txt 内容。
五、Halo 站点的 robots.txt 配置
Halo 站点通常建议通过官方 Sitemap 插件处理 robots.txt:该插件支持 robots.txt 路由和规则编辑。如果你没有使用这个插件,也可以在 Nginx 等反向代理层提供 robots.txt,具体取决于你的部署方式。
建议的默认配置:
User-agent: *
Disallow: /apis/
Allow: /
Sitemap: https://你的域名/sitemap.xml
/apis/是 Halo 的 API 路径,无需被搜索引擎抓取。- 后台入口不要依赖 robots.txt 保护。robots.txt 是公开文件,真正的后台安全应依靠登录认证、强密码、访问控制和及时升级。
- 其他所有公开内容通过
Allow: /放行。
相关教程:Halo 如何接入 Google Search Console · Halo 如何接入 Bing Webmaster Tools
robots.txt 看起来简单,但用错了后果不小。记住最核心的一条:它管的是「能不能抓」,不是「能不能被搜到」——想让页面不出现在搜索结果里,应该在页面里加 noindex 标签,而不是用 robots.txt 去屏蔽。
另外,robots.txt 是任何人都能访问的公开文件,别把后台路径写在里面当作安全措施。新站上线前花 30 秒访问一下 你的域名/robots.txt,确认没有写 Disallow: /。
robots.txt 配好了,你基本完成了搜索引擎的基础配置。不过如果你将来要改 URL 结构或换域名,重定向那一步才是真正的考验。