看服务器日志时,经常能看到搜索蜘蛛频繁访问某个 URL,但过了一段时间,在搜索结果里仍然找不到这个页面。这时候容易产生一个误解:蜘蛛来过,页面就应该被收录。实际上,抓取和收录是两件不同的事,中间还隔着解析、去重、质量评估和索引决策等多个环节。
抓取和收录不是一回事
抓取指蜘蛛把页面下载下来,拿到 HTML、响应状态码、响应时间等信息。这一步只说明搜索引擎“看到了”这个 URL,并不代表它认可页面内容。
收录,或者说进入索引,指搜索引擎在抓取之后,对页面内容进行解析、理解、比对,最终决定是否把这条 URL 放进索引库,并在合适的时候作为搜索结果展现。抓取是收录的前提,但不是保证。
从 URL 被发现到进入索引,大致会经过这些环节
- URL 发现:通过内链、sitemap、外链、历史抓取记录等方式,搜索引擎知道有这个地址存在。
- 抓取调度:URL 进入待抓取队列,按站点权重、更新频率、服务器响应等因素安排抓取顺序。
- 抓取执行:蜘蛛请求页面并拿到响应;如果状态码异常、超时、被 robots.txt 拦截,链路可能在这里中断。
- 解析与规范化:提取正文、标题、链接,处理 canonical、重定向、参数等,判断哪个 URL 是代表版本。
- 内容理解与去重:和其他页面比对,看是否高度重复,是否属于同一主题的多个变体。
- 质量与索引决策:综合页面质量、站点整体情况、用户需求等信号,决定是否写入索引。
- 索引写入与更新:进入索引后,后续还会随页面变化和抓取结果更新。
抓了却没收录,常见卡点在哪里
- 重复内容:同一内容存在多个 URL,比如带参数版本、打印版、排序版本,索引里可能只保留其中一个,其余被折叠。
- 规范化指向别处:页面 canonical 指向了另一个 URL,搜索引擎会倾向于把信号集中到目标地址。
- 内容质量信号偏弱:页面信息量少、模板化严重、缺少独有内容,可能被判定为不值得单独索引。
- 软 404 或状态码问题:页面返回 200,但内容像错误页、空页,容易被当作无效页面处理。
- 依赖客户端渲染:关键内容需要 JavaScript 执行后才出现,而渲染环节没有拿到完整内容。
- 抓取被限制:robots.txt 误拦截、服务器频繁超时、需要登录才能看到正文。
怎么判断问题出在抓取还是收录
排查时可以按顺序看几件事:
- 日志里蜘蛛是否真的抓取了目标 URL,返回状态码是什么。
- 页面是否被 robots.txt 或 meta robots 阻止。
- 查看页面的 canonical 指向,确认没有把信号指向其他地址。
- 用抓取工具模拟渲染后的 HTML,对比蜘蛛可能看到的内容。
- 找同模板、同栏目下已经收录的页面做对比,看差异在内容量、内链还是结构。
抓取是入场券,收录是另一套判断。看到蜘蛛来过,只能说明 URL 被发现并请求过,不能直接推导出会进入索引。
运营上可以做的几件事
与其反复提交 URL,不如把基础环节理顺:
- 用清晰的内链和 sitemap 保证重要页面能被发现,减少孤儿 URL。
- 合并重复或高度相似的页面,保留一个主版本,并用 canonical 明确指向。
- 给页面增加独有信息,减少纯模板堆砌,让每个 URL 有独立存在的理由。
- 避免频繁改动 URL 结构;必须改时做好 301,并更新内链。
- 关注服务器稳定性和响应速度,减少蜘蛛抓取失败的概率。
抓取和收录之间没有一键通过的开关。把 URL 发现、抓取可访问性、内容质量和规范化这几段路走顺,页面进入索引的概率会更高,但最终是否收录、何时收录,仍由搜索引擎根据自身判断决定。