很多人看收錄,只看一個數字:site 查询或者後台的索引量。但爬虫每天来過多少次、抓了哪些 URL,和最终有多少頁面進了索引,是两個环节。抓取只是把頁面取回去,收錄是索引系統判断這個頁面值不值得留下。中間隔着一层判断,頁面可能被抓了很多次,依然不進索引。
先把「抓了」這件事確認清楚
日誌里能看到爬虫訪問,不代表它拿到了完整内容。核對时至少看四個字段:
- 狀態碼:200 是正常取回,301/302 是跳轉,403/503 是拒绝或不可用。返回 503 的次數多了,抓取频次會往下掉。
- 响應大小:如果某個模板頁永遠只有几百字节,很可能只拿回了框架,正文是 JS 渲染的。
- User-Agent:区分是搜尋爬虫還是其他工具,別把第三方抓取当成搜尋引擎的訪問。
- 時間分布:同一 URL 一天被抓好几次却始终不收錄,說明問题不在發現,而在頁面本身。
抓到了不收錄,常见就這几類原因
1. 頁面本身没有可索引的内容
空列表頁、無结果的篩選頁、内容几乎全靠图片或视频承载的頁面,索引系統會倾向于不留。這類頁面不是抓不到,是留下之後對搜尋结果没有帮助。
2. 重复或高度相似
同一批商品的不同排序參數、同一篇文章的打印版,正文几乎一样。系統會挑一個留下,其余的当重复處理。這類問题先從 URL 規范和 canonical 入手,而不是反复提交。
3. 指令把路堵住了
meta robots 里的 noindex、响應头里的 X-Robots-Tag、canonical 指到別的 URL,任何一個都會让頁面即使被抓也不進索引。检查时看最终渲染後的 DOM,不要只看源代碼。
4. 内容被渲染挡住
如果正文依赖客戶端渲染,爬虫拿到的 HTML 里没有正文,索引阶段就只能看到空壳。把關键内容放在服務端輸出,或者确保渲染後的内容能被正确获取。
一份可以照着走的核對顺序
- 從日誌里筛出「抓取次數較多但未收錄」的 URL 清單。
- 用抓取工具模拟訪問,看返回的 HTML 里正文是否存在。
- 看 robots 指令、canonical、狀態碼三項是否與预期一致。
- 和同站已收錄的相似頁面做對比,找差异:内鏈數量、正文長度、更新時間、是否有獨立标题。
- 如果確認是低價值頁型,直接决定挡住或保留,不要让它長期占着抓取名額。
別忽略入口和信号
頁面能被抓到,說明至少有一條路径。但只有一條弱内鏈的頁面,索引系統拿到的推荐信号很弱。同類頁面里,能從首頁两三次点击到達、有稳定内鏈、有外部引用的,被留下的概率明顯更高。這不是技巧,是頁面在站内位置的直接体現。
抓取解决的是「看得见」,收錄解决的是「值得留」。前者可以靠提交和内鏈推動,後者只能靠頁面本身站住。
复查的节奏
處理完之後不要每天看。按周记錄一次清單變化,看的是趋势:抓而未收錄的 URL 數量是否在减少,同類頁面里被留下的是哪一批。如果一批頁面反复抓取、反复不收錄,通常說明頁型本身有問题,繼續增加提交量意义不大。
把抓取记錄和索引结果放在同一張表里對照,比只看收錄總量有用得多。數量只是结果,路径才告诉你下一步该動哪里。