服务器日志里看到蜘蛛来过,就以为页面已经被收录,是很多站点常见的误判。抓取、索引、展现是三件不同的事,日志只能证明第一件发生过。
三个状态要分开看
抓取是爬虫把页面 HTML 拉走的过程;索引是搜索引擎解析内容、判断价值后写进自己数据库的环节;展现是用户搜索时这条记录被拿出来参与排序和展示。抓取成功只代表拿到了内容,后面两步都可能不通过。
所以“蜘蛛来了但搜不到”并不是矛盾的说法,而是一个很常见的中间状态。
抓取之后还差哪几步
- 解析正文:能不能拿到主要内容,还是只剩导航、页脚和广告位。
- 判断重复:内容是否与其他 URL 高度相似,是否会被合并到另一个地址。
- 质量与需求匹配:页面是否回答了一个真实问题,还是只堆了关键词。
- 写入索引:前面都通过,才会成为可被搜索的条目。
任何一步被卡住,表面现象都可能是“抓了但没收录”。
常见卡点与对应检查
1. 页面被 noindex 挡住
meta robots 或 HTTP 响应头里的 noindex 只有在抓取之后才会被读到,所以日志里照样有访问记录。检查页面源码和响应头,确认没有遗留的测试设置或复制模板时带过来的标记。
2. canonical 指向了别的 URL
如果页面 A 的 canonical 指向页面 B,搜索引擎通常会保留 B 而略过 A。重点检查是否是模板统一写死了 canonical,导致一批页面都指向同一个地址。
3. 内容依赖 JS 渲染
如果 HTML 源码里主体内容是空的,全靠前端请求填充,就要确认搜索引擎能否顺利执行脚本。可以先在浏览器里禁用 JS,看看页面上还剩多少内容。
4. 内容太薄或高度重复
列表页、筛选页、参数生成的页面最容易出现这种情况。判断标准不是字数,而是这个页面是否提供了别的页面没有的信息。
5. 服务器响应不稳定
频繁的超时、5xx 会让搜索引擎降低抓取意愿,可能抓到一半就放弃。看一下服务器日志里的状态码分布,再决定是否要处理。
验证顺序建议
- 先用 URL 检查类工具确认该地址当前是已编入索引,还是已抓取、尚未编入索引,不要只靠日志判断。
- 确认 robots.txt 没有屏蔽该路径,页面返回 200,正文在源码中可见。
- 检查 meta robots、canonical、多语言标记等头部信息是否符合预期。
- 对照 sitemap 与索引数据,看是哪一类页面集中出问题,而不是逐个页面猜。
- 针对原因改一处、观察一段时间,再动下一处,避免同时改多个因素导致无法归因。
抓取日志回答的是“谁来过”,不是“谁被收录了”。把这两件事混在一起,很容易在错误的方向上反复调整。
把抓取、索引、展现拆开看之后,很多“抓取了却没收录”的问题会变得具体:不是搜索引擎没来,而是来了之后没有通过后面的判断。这时要做的不是想办法提高抓取频率,而是回到页面本身,把内容完整度、规范化配置和技术细节逐项确认。