很多人把抓取和收录混在一起:日志里看到蜘蛛来过,就认为页面迟早会进索引。实际中间至少隔着三种状态:URL 被发现、被成功抓取、被判定可以进入索引。任何一步卡住,结果都是搜不到,但处理方式完全不同。
先分清三个状态
- 发现:搜索引擎知道这个 URL 存在,来源可能是内链、站点地图、外链或历史抓取记录。
- 抓取:蜘蛛向该 URL 发起请求,并拿到响应。抓取成功只代表服务器和网络层面通了。
- 收录:搜索引擎解析内容后,判断它值得放进索引,之后才可能被搜索展现。
三者不是必然递进。URL 可能被发现但长期不被抓取,也可能被抓取多次却不进索引。排查时先确认卡在哪一段,比反复改标题和正文更有效。
发现阶段的卡点:URL 没有被知道
如果日志里完全没有对该 URL 的请求,先不要怀疑内容质量。优先检查入口:页面上是否有可点击的内链,站点地图是否包含且可正常访问,robots.txt 是否允许抓取,是否有外链或站内推荐入口。孤立页面只靠 sitemap 提交,发现速度通常较慢,补内链往往比反复提交更实际。
抓取阶段的卡点:请求发不出去或拿不到有效响应
发现之后,蜘蛛不一定马上来抓。常见阻碍包括服务器频繁超时、返回 5xx、403 拒绝、重定向链过长、robots 屏蔽,以及大量参数和筛选页消耗抓取资源。抓取预算有限时,低价值 URL 被反复抓取,重要页面反而排队。
看日志要区分“抓取成功”和“抓取有价值”
返回 200 不代表内容可用。空壳页、登录墙、验证码页、主要内容靠 JS 但渲染后仍为空,都可能让蜘蛛抓到无效内容。短期看是抓取成功,长期可能导致该目录抓取频率下降。
收录阶段的卡点:能抓取,但不值得留索引
页面能被正常抓取,仍可能不进索引。常见原因有:页面写了 noindex;canonical 指向了别的 URL;正文与其他页面高度重复;模板化内容占比过高;软 404;渲染后正文仍然缺失。这些情况下,抓取会发生,但索引判断不会通过,或者收录后又退出。
抓取是过程,收录是判断结果。不要用抓取数据直接推断收录结果,也不要用收录结果反推抓取是否正常。
一个按顺序的排查清单
- 确认目标 URL 当前的索引状态,先看它是否真的没被收录,还是只是排名靠后。
- 查服务器日志,确认蜘蛛是否抓过。没抓过,先处理发现和入口问题。
- 抓过但没收录,检查响应码、robots 规则、noindex、canonical 是否正确。
- 对比同站相似页面,排除重复内容和模板化正文导致的取舍。
- 检查 JS 渲染后正文是否完整,必要时做服务端渲染或预渲染。
- 调整后观察一段时间,避免短时间内频繁改标签和内容结构。
把发现、抓取、收录拆开看,能避免在错误环节反复动手。抓取量增加只是多了被判断的机会,最终是否进索引,仍取决于页面本身是否值得留。