在索引报告里,“已發現但尚未编入索引”和“已抓取但尚未编入索引”是两個很容易被混為一谈的狀態。它們看起来都像“没收錄”,但卡住的环节完全不同:一個卡在抓取之前,一個卡在抓取之後。先分清這一点,後面的排查方向才不會跑偏。
两個狀態分別卡在哪一步
“已發現”意味着蜘蛛已经通過内鏈、站点地图或其他入口知道了這個地址,但還没有真正来抓取。這时候你去看服務器日誌,往往找不到對應的訪問记錄。
“已抓取但未编入索引”則相反,頁面已经被讀過一遍甚至多遍,日誌里有明确的訪問,只是内容没有通過索引环节的评估。
打個不嚴谨的比方:前者是在排队,後者是已经面试過但没被錄用。两個阶段能動手的地方並不一样。
“已發現但未编入索引”的常见原因
- 站点可抓取的地址總量太大,遠遠超過蜘蛛愿意同时分配的配額,大量低優先級地址只能排队。
- 服務器响應慢、经常超时或触發限流,蜘蛛會主動放慢甚至暫停對這批地址的抓取。
- 這個地址在站内几乎没有入口,或者入口藏得很深,虽然被發現,但缺少被優先訪問的理由。
- 同一批自動生成的地址過多,且彼此结构高度相似,蜘蛛没有動力逐個抓取。
- 站点自身的更新频率與歷史表現還在积累,蜘蛛倾向于先照顾更稳定、更重要的頁面。
“已抓取但未编入索引”更偏向内容判断
- 正文内容太薄,或者關键信息要靠点击、滚動、登入之後才出現,抓到的版本几乎是空的。
- 與站内已有頁面高度重合,属于可以合並的重复内容。
- 模板框架占了大半篇幅,真正獨特的信息只有一两句。
- 頁面主要作用是聚合或跳轉,本身不提供獨立信息。
建议的排查顺序
- 先確認這個地址返回 200,並且没有被 robots.txt 或頁面上的 noindex 挡住。
- 去日誌里看蜘蛛到底来没来。来過就是索引环节的問题,没来過就是抓取环节的問题。
- 检查内鏈路径:從首頁点几下能到,路径上有没有孤岛頁面。
- 把同類型地址放在一起看,判断是零散几個還是成批出現,成批出現通常指向结构性問题。
- 抽样人工讀一遍頁面,問自己一句:它是否提供了別處没有的信息。
可以着手做的調整
- 减少暴露给蜘蛛的低價值地址,分頁、篩選、排序參數尽量用規范化的方式處理。
- 给真正重要的頁面补内鏈,让它們在结构上离首頁更近。
- 合並内容高度相似的頁面,而不是让它們互相竞争同一批需求。
- 把服務器稳定性和响應速度做好,减少超时與 5xx,抓取节奏自然會稳一些。
- 站点地图只放希望被索引的規范地址,並保持更新時間字段真實。
這两個狀態本身不算错誤,而是排队與篩選的過程。調整完成之後需要给蜘蛛一定的反應時間,不必每天反复提交同一個地址。
與其盯着單個 URL 反复提交,不如退一步看整站:有多少地址值得進索引,有多少只是流程中的過渡頁。把這個問题想清楚,很多“收錄不上”的困惑會自己消失一半。