很多人看收录,只看一个数字:site 查询或者后台的索引量。但爬虫每天来过多少次、抓了哪些 URL,和最终有多少页面进了索引,是两个环节。抓取只是把页面取回去,收录是索引系统判断这个页面值不值得留下。中间隔着一层判断,页面可能被抓了很多次,依然不进索引。
先把「抓了」这件事确认清楚
日志里能看到爬虫访问,不代表它拿到了完整内容。核对时至少看四个字段:
- 状态码:200 是正常取回,301/302 是跳转,403/503 是拒绝或不可用。返回 503 的次数多了,抓取频次会往下掉。
- 响应大小:如果某个模板页永远只有几百字节,很可能只拿回了框架,正文是 JS 渲染的。
- User-Agent:区分是搜索爬虫还是其他工具,别把第三方抓取当成搜索引擎的访问。
- 时间分布:同一 URL 一天被抓好几次却始终不收录,说明问题不在发现,而在页面本身。
抓到了不收录,常见就这几类原因
1. 页面本身没有可索引的内容
空列表页、无结果的筛选页、内容几乎全靠图片或视频承载的页面,索引系统会倾向于不留。这类页面不是抓不到,是留下之后对搜索结果没有帮助。
2. 重复或高度相似
同一批商品的不同排序参数、同一篇文章的打印版,正文几乎一样。系统会挑一个留下,其余的当重复处理。这类问题先从 URL 规范和 canonical 入手,而不是反复提交。
3. 指令把路堵住了
meta robots 里的 noindex、响应头里的 X-Robots-Tag、canonical 指到别的 URL,任何一个都会让页面即使被抓也不进索引。检查时看最终渲染后的 DOM,不要只看源代码。
4. 内容被渲染挡住
如果正文依赖客户端渲染,爬虫拿到的 HTML 里没有正文,索引阶段就只能看到空壳。把关键内容放在服务端输出,或者确保渲染后的内容能被正确获取。
一份可以照着走的核对顺序
- 从日志里筛出「抓取次数较多但未收录」的 URL 清单。
- 用抓取工具模拟访问,看返回的 HTML 里正文是否存在。
- 看 robots 指令、canonical、状态码三项是否与预期一致。
- 和同站已收录的相似页面做对比,找差异:内链数量、正文长度、更新时间、是否有独立标题。
- 如果确认是低价值页型,直接决定挡住或保留,不要让它长期占着抓取名额。
别忽略入口和信号
页面能被抓到,说明至少有一条路径。但只有一条弱内链的页面,索引系统拿到的推荐信号很弱。同类页面里,能从首页两三次点击到达、有稳定内链、有外部引用的,被留下的概率明显更高。这不是技巧,是页面在站内位置的直接体现。
抓取解决的是「看得见」,收录解决的是「值得留」。前者可以靠提交和内链推动,后者只能靠页面本身站住。
复查的节奏
处理完之后不要每天看。按周记录一次清单变化,看的是趋势:抓而未收录的 URL 数量是否在减少,同类页面里被留下的是哪一批。如果一批页面反复抓取、反复不收录,通常说明页型本身有问题,继续增加提交量意义不大。
把抓取记录和索引结果放在同一张表里对照,比只看收录总量有用得多。数量只是结果,路径才告诉你下一步该动哪里。