服务器日志里蜘蛛一天来几十次,页面却始终进不了索引,这种情况很常见。抓取和收录是两件独立的事:抓取只说明蜘蛛取走了 HTML 响应,收录要经过解析、评估、去重、排队几道环节,任何一步卡住,页面都不会出现在搜索结果里。所以看到“抓了不收录”,先别急着加大提交量,按下面的顺序核对更有效。
先确认:你看到的“抓取”到底是什么
日志里的记录至少要看三件事:响应码是不是 200、返回的字节数是否和正常页面接近、请求的 UA 是不是真正的搜索蜘蛛。有几种情况会被误当成抓取:
- 响应码 200,但 Body 极小:往往是跳转页、拦截页或空壳页,蜘蛛拿到的是没有正文的 HTML。
- 返回 301/302 链路过长:蜘蛛跟了几跳后停在中间页,目标页其实没被抓到。
- UA 伪造的第三方爬虫:日志量看着很大,对收录没有任何作用。
抓取之后的四道关卡
1. 内容能不能被解析出来
蜘蛛拿到 HTML 后要先能读到正文。正文全部由 JS 渲染、首屏之外才出现、被遮罩层或登录墙挡住,都会让解析结果接近空白。可以用“网址检查”里的原始 HTML 和渲染后 HTML 做对比,重点看正文有没有出现在原始响应里。
2. 指令有没有把页面挡在索引外
很多“抓了不收录”其实是页面已经明确告诉搜索引擎不要收录。需要同时检查响应头和 HTML 里的两处设置:
- HTML 中的 meta robots:noindex、none、noindex,nofollow 都会阻止进入索引。
- 响应头中的 X-Robots-Tag:常见于 PDF、图片和 CDN 回源配置,作用与 meta 标签一致,但最容易被忽略。
- canonical 指向了别的 URL:页面会被当作副本,信号合并到目标地址,自身不单独收录。
这三处只要有一处生效,抓取次数再多也不会有收录结果。
3. 页面是否被判为重复或低价值
正文与站内其他页面高度重合、由模板批量生成、正文只占页面很小比例,都会让页面进入“被采集但不单独保留”的状态。此时日志里能看到抓取,索引里只会留下其中一个版本。
4. 索引排队与可检索性
通过前面几关后,页面进入索引队列。队列有先后,新站或低权重路径上的页面可能等待较久。还有一种情况是已经进入索引,但没有任何查询能把它检索出来——这属于可检索性问题,和没收录不是一回事,处理方向也不同。
用日志和后台工具交叉核对
- 日志里筛出目标 URL,记录最近一段时间的抓取频次、响应码、返回字节数。
- 后台做一次“网址检查”,看抓取到的 HTML 与渲染后 HTML,以及抓取状态是否正常。
- 对照抓取响应,逐条确认 meta robots、X-Robots-Tag、canonical 的最终取值。
- 把页面正文与相近页面做文本比对,判断是否属于同一批重复内容。
- 观察两到四周,看索引状态是停在原地还是有变化,再决定是否调整内容或结构。
几个容易走偏的判断
- 把抓取频次当收录进度:频次反映的是蜘蛛对地址的兴趣,不反映索引结果。
- 反复提交同一个 URL:提交只是补充发现渠道,不改变页面本身的评估。
- 给重复页面加大量外链:重复问题不会因为外链变多而消失。
抓取是入口,收录是结果。中间隔着解析、指令、去重和排队四步,排查时按顺序走,比盲目加大提交量省事得多。