网站收录

抓取、渲染、收录:页面进索引前要过的三道关

蜘蛛来过页面却迟迟不进索引,往往是因为把抓取、渲染、收录三件事混成了一件。本文把流水线上的三个环节拆开,说明每一关常见的卡点,并给出按顺序排查的方法,帮你判断页面究竟停在哪一步。

网站收录

抓取、渲染、收录:页面进索引前要过的三道关

「蜘蛛来过我的页面,为什么还是没收录?」这个问题之所以难回答,是因为它把三件不同的事压缩进了一句话。抓取、渲染、收录是流水线上的三个环节,任何一环没通过,页面都不会出现在索引里。把它们拆开看,排查会快很多。

三个环节,各管一段

简单说:抓取是蜘蛛把 URL 对应的响应取回去;渲染是它把页面跑成最终形态,看到用户真正看到的内容;收录是把处理后的结果写进索引。前者是搬运,中者是理解,后者是判断要不要留下。

很多「蜘蛛天天来却没收录」的情况,其实卡在第一关或第二关,只是日志里都是 200,看起来一切正常。

第一关:抓取

日志里能看出什么

  • 200 只说明响应正常,不说明内容被理解。返回 200 但正文为空、完全靠脚本撑起来的页面,一样可能是空壳。
  • 同一个 URL 反复被抓,通常意味着它被判定为重要但还没定论,或者站内入口太多。
  • robots.txt 拦截、5xx、超时属于这一关的失败,后面的环节根本轮不到。

常见卡点

URL 参数过多、同一内容存在多个地址、服务器响应过慢、页面依赖登录或表单,都会让抓取这一关走不完整。

第二关:渲染

现在很多页面靠 JavaScript 拼出正文。蜘蛛拿到 HTML 时看到的可能只是一个空容器,正文要等脚本执行完才出现。渲染这一步不通过,收录环节看到的就是一个几乎没有内容的页面。

  • 正文和主要链接尽量出现在初始 HTML 里;
  • 不要让 JS 动态决定 canonical、robots meta 这类关键指令,它们最好在源码里就是确定值;
  • 内容如果必须异步加载,至少保证首屏核心信息不依赖它。

判断方法很直接:在浏览器里禁用 JavaScript 打开页面,如果只剩下导航和页脚,那渲染就是风险点。

第三关:收录

到这一步,页面内容已经被理解,搜索引擎要决定它值不值得放进索引。判断标准不是「有没有被抓到」,而是「跟已有内容比,它是否提供了不一样的东西」。

  • 与站内其他页面高度相似,可能被归并;
  • 内容过薄,或主要由模板、列表、聚合生成;
  • 同一主题存在多个近似版本,最后只保留一个。

这也是为什么批量生成的页面抓取率很高、收录率却很低——它们顺利过了前两关,倒在第三关。

抓取是事实,收录是判断。日志能告诉你前者,索引状态才会告诉你后者,两者不能互相替代。

怎么按顺序排查

  1. 先看服务器日志,确认目标 URL 有没有被抓过、返回什么状态;
  2. 没被抓过,问题在发现和入口:内链、sitemap、点击深度;
  3. 抓过但内容是空壳,问题在渲染;
  4. 渲染正常却仍不收录,转向内容质量与重复度;
  5. 内容和结构都没问题,再检查是否被指令挡住,比如 noindex 或 canonical 指向了别处。

几个容易混淆的点

  • 「已发现」不等于「已抓取」:URL 进了待抓队列,跟真正被访问是两件事。
  • 「已抓取」不等于「已收录」:抓取只是把材料拿回来。
  • 「不在索引里」不等于「被惩罚」:多数情况只是没通过质量筛选,改内容比猜原因有用。

实操上能做什么

与其盯着收录总量,不如按目录、按模板分组看通过率,异常往往集中在某一类页面上。发现某类模板大面积卡在同一关,先解决这一类,比逐个页面调优效率高得多。

另外,重要页面尽量少依赖动态渲染,关键指令写死在 HTML 里,站内入口保持清晰。这些做法不会保证收录,但能减少在流水线上无谓的损耗。