很多人把“蜘蛛来过”直接当成“页面被收录”:日志里出现了访问记录,就以为这个地址已经在索引里了。实际流程并不是这样,抓取只是第一道工序,抓到的内容还要经过渲染、规范化、去重和价值判断,才可能真的进入索引。把这几步拆开看,排查问题时就不会一直停在“蜘蛛怎么还不来”上。
抓取解决的是“能不能拿到”,不是“要不要收”
抓取阶段要处理的事情很具体:这个地址返回什么状态码、是否被 robots.txt 允许、响应体多大、内容是否需要执行脚本才会出现。它回答的是“我们能不能稳定地取到这份内容”。至于取到之后要不要放进索引,是后面几步决定的。
所以一个地址天天被抓、却始终没进索引,并不矛盾:抓取正常说明取数没问题,没进索引说明卡在了更靠后的环节。
第一步:渲染,决定蜘蛛看到的是什么
如果页面的主要内容由前端脚本在浏览器里生成,抓取到的初始 HTML 可能只是一个空壳。系统通常还会做一次渲染,把内容跑出来再判断,但这会消耗额外资源,也更容易出现“蜘蛛看到的内容和用户看到的不一样”的情况。
- 正文是否出现在初始 HTML 里,还是必须等接口返回后才出现;
- 渲染后主要区块是否完整,有没有因为接口失败只剩骨架;
- 关键内容是否藏在需要点击、滚动或登录之后才加载的位置。
渲染这一步没问题,后面的判断才有可靠输入。它出问题的常见表现是页面进了索引,但摘要是空白或者一段模板文字。
第二步:规范化,决定用哪个地址代表这份内容
同一个页面往往有多种可达写法:带不带结尾斜杠、大小写不同、挂着一串追踪参数、混进分页或排序参数。系统会尝试把它们收敛到一个代表版本,规范化的结果决定了后续哪一条地址被当作“正主”。
如果站内链接、canonical 标注、sitemap 里写的是三个不同的版本,就等于在给系统出选择题,而答案往往不由站点决定。想让某个版本被继续处理,最好让入口、标注和提交这三条线指向同一个地址。
第三步:去重与聚类,决定要不要只留一个代表
规范化处理的是同一份内容的不同地址,去重处理的是内容高度相似的多个页面。系统会把它们聚在一起,通常只选一个作为代表进入索引。
这就解释了一个常见现象:某个页面确实存在,也确实被抓过,但拿它的标题去搜却搜不到,因为被选中的代表是另一个版本。商品的多规格页、文章的打印页、列表的筛选结果页,都容易出现这种情况。
第四步:页面价值与需求判断
走完前面三步,剩下的问题才是“这一页值不值得占一个索引位”。判断依据通常包括:内容是否足够独立、有没有可被检索的明确主题、与站内同类页面的差异有多大、用户是否真的可能用这类词来找。
这一步没有开关式的标准,但方向是稳定的:信息量低、主题模糊、和已有页面高度重合的地址,进入索引的把握自然更小。
把“抓到”和“收录”当成两件事,排查时就能先确定卡在哪一道工序,而不是在不相关的环节上反复调整。
几个容易被当成结论的信号
- 日志里有访问记录:只能说明抓取发生过,不代表页面进入索引。
- 提交了 sitemap:这是告知地址存在、方便被发现,不是收录保证。
- 索引状态里能看到这个地址:说明它被处理过,不等于某个查询一定能把针对的主题检出来。
- 收录量下降:可能来自去重合并,也可能是页面退出,需要按地址逐个确认。
自查时可以按顺序做的几件事
- 确认目标地址的真实状态码,以及有没有被 robots.txt 或登录墙挡住;
- 关闭脚本查看初始 HTML,再对比渲染后的内容,看主体是否依赖脚本;
- 检查 canonical 是否自指,站内链接是否都指向同一个版本;
- 列出内容相近的其他页面,判断自己会不会被当成重复版本合并;
- 确认搜索结果里代表这个主题的是哪一条地址,再决定要不要调整入口和标注。
这套顺序不一定能立刻让页面进入索引,但能避免把问题归错原因。抓取、渲染、规范化、去重、评估是几道不同的关,先定位卡点,再谈怎么优化才有意义。