做站点运营的人常有一个习惯:打开服务器日志,看到搜索引擎爬虫来访次数不少,就默认收录没问题。但日志记录的只是抓取,它和收录是两件不同的事。把这两件事混在一起看,很容易得出错误的结论,于是在错误的方向上改代码、调模板。
抓取和收录各自在做什么
抓取指的是爬虫把 URL 对应的内容下载回去,包括 HTML、CSS、JS 和图片。这一步只关心“能不能拿到”和“拿到了什么”。收录发生在抓取之后:搜索引擎对页面做解析、提取正文、判重、评估质量,再决定是否写进索引库。只有进了索引库的页面,才有可能出现在搜索结果里。
所以链路大致是三层:抓取、索引、展示。日志能反映第一层,索引报告能反映第二层,而排名和点击属于第三层。很多“收录有问题”的判断,其实是在用第一层的数据去猜第二层的结果。
几个常见的误判信号
日志里返回 200
200 只说明这次请求成功,服务器把内容给到了。它不说明内容有价值,也不说明页面会被收录。一个空模板页、一个参数组合出来的筛选页,同样可以返回 200。
抓取频次变高
抓取变多可能只是站点整体状态变好,或者爬虫发现了更多 URL。如果新增的 URL 大多是低价值页面,抓取量上涨反而会挤占其他页面的抓取机会。
提交了 sitemap 或做了主动推送
这些动作的作用是加快发现,让爬虫更早知道 URL 的存在,不构成收录承诺。发现、抓取、收录是三个依次发生的环节,任何一步都可能停下。
索引报告里的“已抓取,尚未编入索引”
这个状态恰恰说明抓取和收录被分开了:内容已经拿到,但系统还没决定把它放进索引。它是个中间态,可以停留很久,也可能一直不变化。
抓了却没收录,通常先看这几处
- 页面本身是否被限制:meta robots 里的 noindex、X-Robots-Tag 响应头,都会让页面在抓取后被排除。
- 是否有近似重复的页面:同一套模板套不同参数、多城市页只换了地名,系统通常只留一版。
- 正文是否真的可读:用查看源代码的方式确认正文是直接出现在 HTML 里,还是依赖 JS 执行后才生成。
- canonical 指向哪里:如果 canonical 指向了另一个 URL,当前页等于主动让位。
- 页面承担的功能:纯聚合、纯导航、内容极薄的页面,被跳过的概率明显更高。
抓取机会是一种有限资源
站点的抓取预算是相对固定的。如果大量抓取被消耗在排序参数、会话参数、无内容的列表页上,真正需要被收录的页面就会排到后面。定期翻日志,看爬虫把时间花在了哪些 URL 上,比盯着收录总量更有意义。
抓取是过程,收录是结果,展示又是另一回事。用日志判断收录,等于用第一步的数据去推断第三步的结论。
一个可执行的判断顺序
- 先用站点查询或索引报告确认页面当前的状态,是“已发现未抓取”“已抓取未编入索引”,还是根本查不到。
- 如果日志显示已被抓取,检查是否被 noindex 或 robots 规则挡住。
- 确认正文在不执行 JS 的情况下能否读到,页面主要内容的来源是否稳定。
- 排查站内是否存在内容高度相似的近亲页面,明确哪一个才是希望被收录的版本。
- 如果以上都没问题,就把注意力从技术细节转到页面本身:它是否提供了别处没有的信息。
把抓取和收录分开之后,很多问题的定位会变得清楚:该修的是让页面被抓到,还是让页面值得被留下,处理方式并不相同。