搜尋抓取

抓取到了却没有收錄:蜘蛛来過之後發生了什么

蜘蛛来訪、日誌里有 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 一起检查,避免只改了一半。
抓取是索引的前置條件,但不是收錄的保證。日誌里蜘蛛来得勤,只說明入口通畅;内容能不能進索引,還要看它取回去的是什么。

把這两件事分開看,排查时就不容易在错誤的方向上耗時間:先去日誌確認抓取是否發生,再核對頁面返回的内容和各類信号,最後才谈得上收錄與排名。