robots.txt 只有两个作用:告诉爬虫哪些目录不必抓、指明 sitemap 位置。它不能用来阻止页面被收录,那个要靠 noindex。混淆这两件事,是 robots 配置出问题的主要原因。可行的做法是在构建时按环境生成,生产环境固定输出放开版本,避免人工拷贝出错。三件事十分钟能做完,能避免整站掉出索引这类事故。
企业官网robots配置
只有两个作用:告诉爬虫哪些目录不必抓、指明 sitemap 位置。它不能阻止页面被收录,那个要靠 noindex。混淆这两件事,是配置出问题的主因。
一份可用的写法
| 行 | 内容 | 含义 |
|---|---|---|
| 1 | User-agent: * | 对全部爬虫生效 |
| 2 | Disallow: /admin/ | 后台不必抓 |
| 3 | Disallow: /cart/ | 购物车不必抓 |
| 4 | Disallow: /search | 站内搜索结果不必抓 |
| 5 | Allow: / | 其余全部放开 |
| 6 | Sitemap: 绝对地址 | 指明 sitemap 位置 |
六行覆盖了九成的企业站需求。后台、购物车、站内搜索结果不必抓,其余全部放开,末尾声明 sitemap 位置。
常见写法对照
| 写法 | 作用 | 风险 |
|---|---|---|
| Disallow: / | 全站禁止抓取 | 上线忘删,整站掉出索引 |
| Disallow: /*?* | 屏蔽所有带参数 URL | 误伤分页与筛选页 |
| Disallow: /search | 屏蔽站内搜索结果 | 低,推荐加 |
| Noindex 写在 robots | 无效,不被支持 | 页面照样被收录 |
| Crawl-delay | 请求间隔 | 主流引擎已不认 |
第二行和第四行是最容易出问题的两个。带参数的 URL 里有相当一部分是正常内容,一刀切会屏蔽掉本应被抓取的页面。
想不收录,别用 Disallow
这是最关键的认知。Disallow 只是不让抓取,页面仍可能因为外部链接被收录,只是显示成没有描述的裸链接。
正确做法是让页面可以被抓取,同时在页面头部输出 noindex。爬虫要读到 noindex 才能移除索引,屏蔽抓取等于让它读不到。
分环境管理
开发环境、测试环境、生产环境三份配置要分开。开发环境全站 Disallow 是对的,但这份文件绝不能带到生产环境。
可行的做法是在构建时按环境生成,生产环境固定输出放开版本,避免人工拷贝出错。
上线前必查三件事
一是用搜索后台的 robots 测试工具跑一遍首页,确认没有被拦。二是直接访问 /robots.txt,确认返回 200 且内容是生产版本。三是检查 sitemap 里的 URL 是否都在 Allow 范围内。
三件事十分钟能做完,能避免整站掉出索引这类事故。
修改后多久生效
抓取频率高的站几小时,低的站要几天。修改后可以在搜索后台提交一次首页,加快重新抓取。
如果是为了紧急放开抓取,除了改文件,还要在后台提交 sitemap,两个动作一起做,恢复会快一些。
相关问法对照
同一件事被问出来的方式不止一种。除了本文标题这种说法,还常有人搜「企业官网robots配置」、「网站建设」、「企业官网建设」这样的主题词,或者「企业官网robots配置怎么做」、「企业官网robots配置判断标准是什么」、「企业官网robots配置常见问题有哪些」这样的长尾问法。本文的结论对这些问法同样成立,区别只在于先看哪一节。