网站收录

抓取和收录是两件事:日志里的 200 不等于进了索引

服务器日志里爬虫来得很勤,不代表页面已经被收录。抓取只是把内容取回,收录还要经过解析、去重和质量判断。本文把这两件事拆开讲,说明日志里常见的几种假信号,以及页面被抓了却迟迟不进索引时可以从哪里开始自查。

网站收录

抓取和收录是两件事:日志里的 200 不等于进了索引

做站点运营的人常有一个习惯:打开服务器日志,看到搜索引擎爬虫来访次数不少,就默认收录没问题。但日志记录的只是抓取,它和收录是两件不同的事。把这两件事混在一起看,很容易得出错误的结论,于是在错误的方向上改代码、调模板。

抓取和收录各自在做什么

抓取指的是爬虫把 URL 对应的内容下载回去,包括 HTML、CSS、JS 和图片。这一步只关心“能不能拿到”和“拿到了什么”。收录发生在抓取之后:搜索引擎对页面做解析、提取正文、判重、评估质量,再决定是否写进索引库。只有进了索引库的页面,才有可能出现在搜索结果里。

所以链路大致是三层:抓取、索引、展示。日志能反映第一层,索引报告能反映第二层,而排名和点击属于第三层。很多“收录有问题”的判断,其实是在用第一层的数据去猜第二层的结果。

几个常见的误判信号

日志里返回 200

200 只说明这次请求成功,服务器把内容给到了。它不说明内容有价值,也不说明页面会被收录。一个空模板页、一个参数组合出来的筛选页,同样可以返回 200。

抓取频次变高

抓取变多可能只是站点整体状态变好,或者爬虫发现了更多 URL。如果新增的 URL 大多是低价值页面,抓取量上涨反而会挤占其他页面的抓取机会。

提交了 sitemap 或做了主动推送

这些动作的作用是加快发现,让爬虫更早知道 URL 的存在,不构成收录承诺。发现、抓取、收录是三个依次发生的环节,任何一步都可能停下。

索引报告里的“已抓取,尚未编入索引”

这个状态恰恰说明抓取和收录被分开了:内容已经拿到,但系统还没决定把它放进索引。它是个中间态,可以停留很久,也可能一直不变化。

抓了却没收录,通常先看这几处

  • 页面本身是否被限制:meta robots 里的 noindex、X-Robots-Tag 响应头,都会让页面在抓取后被排除。
  • 是否有近似重复的页面:同一套模板套不同参数、多城市页只换了地名,系统通常只留一版。
  • 正文是否真的可读:用查看源代码的方式确认正文是直接出现在 HTML 里,还是依赖 JS 执行后才生成。
  • canonical 指向哪里:如果 canonical 指向了另一个 URL,当前页等于主动让位。
  • 页面承担的功能:纯聚合、纯导航、内容极薄的页面,被跳过的概率明显更高。

抓取机会是一种有限资源

站点的抓取预算是相对固定的。如果大量抓取被消耗在排序参数、会话参数、无内容的列表页上,真正需要被收录的页面就会排到后面。定期翻日志,看爬虫把时间花在了哪些 URL 上,比盯着收录总量更有意义。

抓取是过程,收录是结果,展示又是另一回事。用日志判断收录,等于用第一步的数据去推断第三步的结论。

一个可执行的判断顺序

  1. 先用站点查询或索引报告确认页面当前的状态,是“已发现未抓取”“已抓取未编入索引”,还是根本查不到。
  2. 如果日志显示已被抓取,检查是否被 noindex 或 robots 规则挡住。
  3. 确认正文在不执行 JS 的情况下能否读到,页面主要内容的来源是否稳定。
  4. 排查站内是否存在内容高度相似的近亲页面,明确哪一个才是希望被收录的版本。
  5. 如果以上都没问题,就把注意力从技术细节转到页面本身:它是否提供了别处没有的信息。

把抓取和收录分开之后,很多问题的定位会变得清楚:该修的是让页面被抓到,还是让页面值得被留下,处理方式并不相同。