在蜘蛛池的入口页体系里,robots.txt 和 meta robots 是最容易被顺手写上、又最少被认真检查的两类配置。它们本身不参与排名,却会直接决定蜘蛛能不能顺着入口页把 URL 发出去。很多入口页明明有链接、有内容,蜘蛛却迟迟不来,问题往往就出在这几行规则上。
robots.txt 管的是抓取许可,不是收录结果
robots.txt 的作用是告诉蜘蛛哪些路径不要抓。它拦不住页面被别人收录(别处有链接时仍可能出现),但会让入口页上的链接失去被发现的机会——蜘蛛不抓这个页面,自然看不到页面里指向的 URL。
User-agent 分组要写清楚
robots.txt 按 User-agent 分组,每组规则只对匹配的蜘蛛生效。常见的坑是只写一条 User-agent: * 就以为万事大吉,而实际需要关注的搜索引擎蜘蛛抓取习惯并不一致。需要区分就单独分组,不需要区分就用通配,但规则本身别写得太紧。
Disallow 是前缀匹配,容易误伤
- Disallow: /tmp 会同时挡住 /tmp、/tmp1、/tmpage 这类路径,要留意结尾是否该加斜杠。
- Disallow: /*?* 这种一刀切挡参数的写法,可能把入口页依赖的分页、筛选链接一起挡掉。
- 空白的 Disallow: 表示不限制,和 Disallow: /(全部禁止)是完全相反的结果,两者只差一个斜杠。
Crawl-delay 与 Sitemap
Crawl-delay 只有部分蜘蛛支持,数值设得过大,等于主动降低入口页被访问的频次。Sitemap 一行则相当于给蜘蛛一份额外的入口清单,建议指向返回 200 的 XML 地址,不要指向跳转链或需要登录的路径。
meta robots 与 X-Robots-Tag 的分工
只想控制单个页面时,用页面内的 meta robots 更直观;如果是图片、PDF、JS 等非 HTML 资源,就只能靠响应头里的 X-Robots-Tag。两者指令语义一致,同一页面同时出现时,通常以更严格的那条为准。
- noindex:不索引,但不影响蜘蛛继续抓取页面里的链接。
- nofollow:不追踪页面内链接,用在入口页上等于自己切断 URL 发现路径。
- none:等同于 noindex 加 nofollow,限制最彻底,入口页要慎用。
几种常见的反效果写法
- 入口页模板里带了全局 noindex,上线时忘了摘掉。
- robots.txt 里挡住了静态资源目录,蜘蛛抓到 HTML 却拿不到 CSS 和 JS。
- 测试环境留下的 Disallow: / 被同步到了线上。
- 多个子域共用同一份 robots.txt,互不相关的规则叠加在一起。
上线前的自检顺序
- 直接访问 /robots.txt,确认返回 200 且是纯文本,不是 404 或 HTML 错误页。
- 用搜索引擎后台的测试工具模拟目标蜘蛛读取规则,逐个验证关键路径。
- 抽查入口页源码里的 meta robots,确认没有被模板或 CMS 插件悄悄注入。
- 检查非 HTML 资源的 X-Robots-Tag 响应头。
- 规则调整后观察访问日志,确认蜘蛛的抓取行为符合预期。
robots 类配置属于做对了没有额外收益、做错了直接断路的环节。它不保证收录,也不保证排名,但能保证入口页不会因为一行规则被蜘蛛整体跳过。
一点使用建议
入口页的 robots 规则建议尽量简单:只放开确实需要被发现的路径,只挡住确实不该抓的目录,不做过度的正则式限制。每次改动前后留一份记录,方便在蜘蛛行为异常时快速回滚对比。