蜘蛛池入口页的作用是把链接暴露给搜索引擎蜘蛛,但模板、建站程序或复制粘贴时带进来的一些 meta 标签,可能正好把这件事抵消掉。noindex、nofollow、canonical 这三个最常见,问题往往不在写错,而在没人注意到它们一直存在。
noindex:一句“别收录”,把入口页从索引里摘掉
noindex 的作用是告诉搜索蜘蛛:这个页面可以抓,但不要放进索引。对入口页来说,这通常是致命的——蜘蛛来了、链接也读到了,页面本身却不会成为可检索的落地页,长期看入口页的抓取频次也可能被压低。
它通常从哪来
- 测试环境或 staging 模板没删干净,直接复制到线上;
- 建站程序对某些“空页面”“标签页”默认加了 noindex;
- 批量生成时用同一套 head,某个开关全站生效;
- 改版迁移时,旧站的 SEO 插件配置被一并带过来。
排查方式很直接:随机抽十几页入口页,查看响应 HTML 里 head 部分的 meta robots,也顺手看一下 HTTP 响应头里有没有 X-Robots-Tag。两处都可能下发 noindex,只看一处会漏。
nofollow:管的是链接,不是页面
nofollow 常被误解。它约束的是页面上的链接是否传递权重和信号,不直接影响页面能不能被抓。但入口页如果整页链接都带 nofollow,或者 head 里写了 meta robots 的 nofollow,对“通过链接引导蜘蛛走下一跳”这件事就没有帮助了——蜘蛛可能仍然会去访问,但你在主动放弃这部分引导意图。
另一种情况更隐蔽:站内菜单、页脚、模板里某个通用组件带了 nofollow,结果每张入口页上真正想推的链接被包在里面。检查时要看的是目标链接本身,而不是整页设置。
canonical:指向谁,等于告诉蜘蛛谁是正主
canonical 用来声明页面的规范版本。入口页如果因为模板复用,canonical 统一指向了首页或某个模板示例页,等于告诉蜘蛛“这些页面都是那一个的副本”,入口页自身很难被当作独立 URL 处理。批量生成时这类错误一旦发生,就是全站级别的。
常见来源有:CMS 的默认 canonical 规则、多域名解析时没有区分主机名,以及泛解析下所有子域都指向同一个 canonical。
日常自查可以这样排
- 每批入口页上线后,抽 5% 到 10% 的样本,看 head 里的 robots、canonical 和链接的 rel 属性;
- 用同一套模板生成的两批页面互相对比,确认关键标签一致;
- 批量改动后重新抽样,不要只验证改过的那一页。
这三个标签不决定蜘蛛来不来,但会决定蜘蛛来了之后把你的页面当成什么。它们的成本很低,漏掉的代价却不低,值得纳入常规巡检。
最后提醒一点:这些标签的生效需要蜘蛛重新抓取并更新索引,改完不会立刻体现在日志或索引结果里。观察时至少给出一个抓取周期,别用一两天的情况去判断改对了没有。