搜索抓取

抓取到了却没有收录:蜘蛛来过之后发生了什么

蜘蛛来访、日志里有 200 响应,并不等于页面会被收录。本文把抓取和索引拆成两道工序,梳理空壳 HTML、内容重复、canonical 指向别处、noindex 拦截、缺少内链等常见原因,并给出一套从访问日志到页面返回内容的排查顺序,帮你判断问题出在抓取环节还是索引环节。

搜索抓取

抓取到了却没有收录:蜘蛛来过之后发生了什么

抓取和索引不是一回事

做站的人经常会碰到这种情况:访问日志里明明有蜘蛛的记录,状态码是 200,返回大小也看着正常,可过了很久,搜索里还是找不到这个页面。问题往往出在把“抓取”和“索引”当成了一件事。抓取只是蜘蛛把页面内容取回去,之后还要经过解析、去重、质量判断、入库这一串步骤,任何一步没过,日志里照样留着抓取痕迹,索引里却没有它。

日志显示抓到了,却进不了索引的常见原因

  • 返回的 HTML 里没有正文。服务器先吐一个空壳,正文靠前端脚本再请求一次。蜘蛛如果没等到那一步,拿到的就是一个只有导航和页脚的页面,内容等于零。
  • 内容与站内其他页面高度重复。筛选页、打印页、带跟踪参数的地址,输出的正文几乎一样。这类页面即使被抓到,也容易在去重环节被合并掉。
  • canonical 指向了别的 URL。模板里写死的 canonical 没跟着改,蜘蛛抓的是 A 页,读到的信号却是“以 B 为准”,A 自然不会被单独收录。
  • 被 noindex 或 X-Robots-Tag 拦住。meta 标签改过一次忘了删,或者 CDN、中间件在响应头里补了一条规则,站点侧完全看不出来。
  • 站内没有任何链接指向它。页面只出现在 sitemap 里,导航、列表、正文中都没有入口,蜘蛛即使抓到一次,后续也很难再回来。
  • 页面内容本身太薄。几句话加上一堆推荐位和广告位,很难支撑一个独立页面。

先分清是抓取问题,还是索引问题

  1. 翻访问日志,确认蜘蛛到底来没来、来过几次、返回的状态码和字节数是多少。如果压根没有记录,那是抓取问题,方向在链接入口、robots 和服务器响应上。
  2. 按蜘蛛的 User-Agent 取一次页面,看拿到的 HTML 里有没有正文。这一步能排掉大部分“看起来正常”的假象。
  3. 核对 robots.txt、meta robots、X-Robots-Tag、canonical 四处信号是否一致,有没有互相打架。只需其中一处放行或拦截,结果就可能反转。
  4. 对比返回字节数。列表页和详情页如果字节数几乎一样,多半是模板输出有问题,而不是内容本身不够。

这几步做完,通常能把问题归到“没被抓”还是“抓了但没被采用”这两类里的一类,后面的处理方向完全不同:前者要修入口和响应,后者要修内容与信号。

让抓取结果更接近索引的预期

  • 首屏 HTML 里就带上正文的核心信息,不要等脚本执行完才出现。
  • 同一份内容只保留一个规范地址,其余变体用 canonical 或参数规则收敛。
  • 重要页面在导航、列表或正文里至少有两条站内路径能走到,别只靠 sitemap。
  • 改版或模板调整时,服务端输出、canonical、robots 一起检查,避免只改了一半。
抓取是索引的前置条件,但不是收录的保证。日志里蜘蛛来得勤,只说明入口通畅;内容能不能进索引,还要看它取回去的是什么。

把这两件事分开看,排查时就不容易在错误的方向上耗时间:先去日志确认抓取是否发生,再核对页面返回的内容和各类信号,最后才谈得上收录与排名。