很多人把抓取和收錄混在一起:日誌里看到蜘蛛来過,就認為頁面迟早會進索引。實际中間至少隔着三種狀態:URL 被發現、被成功抓取、被判定可以進入索引。任何一步卡住,结果都是搜不到,但處理方式完全不同。
先分清三個狀態
- 發現:搜尋引擎知道這個 URL 存在,来源可能是内鏈、站点地图、外鏈或歷史抓取记錄。
- 抓取:蜘蛛向该 URL 發起請求,並拿到响應。抓取成功只代表服務器和網絡层面通了。
- 收錄:搜尋引擎解析内容後,判断它值得放進索引,之後才可能被搜尋展現。
三者不是必然递進。URL 可能被發現但長期不被抓取,也可能被抓取多次却不進索引。排查时先確認卡在哪一段,比反复改标题和正文更有效。
發現阶段的卡点:URL 没有被知道
如果日誌里完全没有對该 URL 的請求,先不要怀疑内容质量。優先检查入口:頁面上是否有可点击的内鏈,站点地图是否包含且可正常訪問,robots.txt 是否允许抓取,是否有外鏈或站内推荐入口。孤立頁面只靠 sitemap 提交,發現速度通常較慢,补内鏈往往比反复提交更實际。
抓取阶段的卡点:請求發不出去或拿不到有效响應
發現之後,蜘蛛不一定马上来抓。常见阻碍包括服務器频繁超时、返回 5xx、403 拒绝、重定向鏈過長、robots 屏蔽,以及大量參數和篩選頁消耗抓取资源。抓取预算有限时,低價值 URL 被反复抓取,重要頁面反而排队。
看日誌要区分“抓取成功”和“抓取有價值”
返回 200 不代表内容可用。空壳頁、登入墙、驗證碼頁、主要内容靠 JS 但渲染後仍為空,都可能让蜘蛛抓到無效内容。短期看是抓取成功,長期可能導致该目錄抓取频率下降。
收錄阶段的卡点:能抓取,但不值得留索引
頁面能被正常抓取,仍可能不進索引。常见原因有:頁面寫了 noindex;canonical 指向了別的 URL;正文與其他頁面高度重复;模板化内容占比過高;软 404;渲染後正文仍然缺失。這些情况下,抓取會發生,但索引判断不會通過,或者收錄後又登出。
抓取是過程,收錄是判断结果。不要用抓取資料直接推断收錄结果,也不要用收錄结果反推抓取是否正常。
一個按顺序的排查清單
- 確認目标 URL 目前的索引狀態,先看它是否真的没被收錄,還是只是排名靠後。
- 查服務器日誌,確認蜘蛛是否抓過。没抓過,先處理發現和入口問题。
- 抓過但没收錄,检查响應碼、robots 規則、noindex、canonical 是否正确。
- 對比同站相似頁面,排除重复内容和模板化正文導致的取舍。
- 检查 JS 渲染後正文是否完整,必要时做服務端渲染或预渲染。
- 調整後观察一段時間,避免短時間内频繁改标簽和内容结构。
把發現、抓取、收錄拆開看,能避免在错誤环节反复動手。抓取量增加只是多了被判断的机會,最终是否進索引,仍取决于頁面本身是否值得留。