入口页的 meta 标签只有几行,但它决定了蜘蛛抓到页面之后怎么处理:是留在索引里,还是只当一条通路。方向用错,轻则入口页白抓,重则把本来能带蜘蛛走的链接一起掐断。
先把三类指令分开看
- 抓取与索引控制:robots.txt 决定要不要来抓,X-Robots-Tag 和 meta robots 决定抓到之后要不要索引、要不要跟随链接。
- 重复内容归并:canonical、hreflang,用来在一堆相似 URL 里指出主版本。
- 展示控制:title、description、max-snippet、viewport,影响摘要怎么摘、移动端怎么显示。
蜘蛛池入口页最常见的坑,就是把这三类混着用。既想被索引,又怕重复,于是 canonical 和 noindex 一起堆上去,蜘蛛最后怎么处理就变得不可预期。
canonical 的三条底线
只在同域内指
canonical 是“同一份内容的首选 URL”声明,跨域指向往往被忽略;即便被采纳,也不等于把权重搬了过去。想用入口页给目标页做重量转移,靠 canonical 基本是无效操作。
指向的页面要真实可用
canonical 指向 404、跳转链或内容差很远的页面,容易被判为无效声明。指之前先确认那个 URL 返回 200,并且和当前页内容高度相似。
不要和 noindex 同时出现
一个页面同时写 canonical 和 noindex,等于告诉蜘蛛“这页别索引,但请把信号给另一个 URL”,这种自相矛盾的组合往往只会让信号被丢弃。
noindex 什么时候值得用
入口页如果是纯跳转页、内容极薄,或者只是参数组合出来的页面,加 noindex 是合理选择。但要记住两点:
- noindex 不阻止抓取。蜘蛛仍会来抓这片页面,也仍会沿着页面上的链接继续走,这对蜘蛛池反而是有利的。
- noindex 常和 nofollow 被绑在一起写,但两者管的是不同的事。加了 nofollow,蜘蛛不再跟随该页链接,入口页的带路作用就没了。除非页面上的链接质量很差,否则不要顺手加 nofollow。
想让蜘蛛继续走链接,就别加 nofollow;只是不想让这页进索引,用 noindex 单独一个就够。
X-Robots-Tag 和 meta 标签谁优先
X-Robots-Tag 写在 HTTP 响应头里,好处是能覆盖非 HTML 资源,也不依赖页面被完整解析。两者同时存在时,通常以更严格的一条生效,但不同搜索引擎的实现细节并不完全一样,所以不要故意制造冲突,更不要把冲突当成“保险”。
几个高频误区
- 全站批量加 noindex,结果入口页被移出索引,后续从入口页发现新链接的速度明显变慢。
- robots.txt 里屏蔽了目录,又指望 meta 标签生效——被屏蔽的页面蜘蛛压根读不到 meta。
- 把 canonical 当成外链工具指向目标站,期望信号传递,实际多数情况下直接被忽略。
- meta 内容写成 noindex,follow 之类带多余空格的写法,多数情况下能解析,但仍建议统一成规范写法,减少解析歧义。
上线前可以过一遍的检查项
- 入口页是否需要一个明确的索引态度:可索引、noindex,还是靠 robots.txt 挡在门外,只选一个思路。
- canonical 指向的 URL 是否同域、是否返回 200、内容是否相近。
- 是否误加了 nofollow,切断了入口页的带路功能。
- X-Robots-Tag 与 meta robots 是否互相矛盾。
- title、description 是否和入口页实际内容对得上,避免纯模板堆砌。
小结
meta 标签不是越多越好,而是每一条都要能回答“我想让蜘蛛对这条 URL 做什么”。入口页承担的是发现和带路,索引与否是其次;把 noindex 和 nofollow 分开想,把 canonical 只用在同域归并上,大部分混乱都能避免。