聊收錄的时候,大家习惯從内容质量、内鏈、站点地图這些地方找原因,但收錄鏈條的第一环其實是服務器响應:抓取程序發出請求,你的服務器得先稳定地把頁面完整交出去。這一步不顺畅,後面谈索引、谈排序都没有意义。
抓取失敗和“抓到了没收錄”是两件事
很多人把這两者混着看。抓取失敗指的是請求根本没拿到一份可用的 HTML,比如连接超时、返回 5xx、被防火墙拦掉;而“抓到了没收錄”是服務器已经完整返回了頁面,抓取程序看完之後决定先不進索引。前者是通道問题,後者是判断問题,排查方向完全不同。如果日誌里大量請求的狀態碼不是 200,就先別急着改内容。
几種常见的服務器侧拦截
响應太慢甚至超时
抓取程序對每個請求都有等待上限。頁面要跑完一堆同步接口、資料库查询慢、首屏资源全部阻塞,都會把响應時間拉長。偶發一次超时問题不大,但同一批 URL 反复超时,抓取程序會降低對整站的訪問频率,结果是新頁面被發現得更慢。
間歇性 5xx
應用偶發报错、後端服務重啟、负载高时的 502 或 503,用戶侧看起来只是“網站偶尔打不開”,但抓取程序正好撞上那几次,就會记為失敗。它不會立刻放弃,可反复失敗會削弱對這批 URL 的信心。
429 與频率限制
有些站点在 Nginx、CDN 或云防護里配了速率限制,本意是防攻击,但抓取程序短時間内請求多個 URL 时也會被算進去。表現是返回 429 甚至 403,日誌里能看到同一来源的大批請求被拒。
WAF、CDN 與“人机校驗”誤拦
這是最隐蔽的一類:真實用戶訪問一切正常,抓取程序却拿到驗證碼頁、跳轉頁或一段空内容。原因可能是 UA 規則、Cookie 校驗、脚本挑战。此时狀態碼甚至還是 200,但正文里没有實际内容,這種“看起来成功”的失敗最难發現。
怎么確認問题出在服務器這一侧
- 按狀態碼統計日誌:非 200 的比例、集中在哪些路径、集中在哪個時間段。
- 区分訪問来源:把抓取程序所在網段的請求和普通用戶流量分開看。
- 對比同一 URL 的多次抓取记錄:是稳定失敗,還是偶發失敗。
- 看抓取統計里的响應時間和主机狀態,如果整站平均响應時間偏長,先解决性能。
- 如果非 200 的响應都带着驗證頁特征,检查防護規則是否放行了正規抓取来源。
處理顺序建议
- 先修稳定报错。持續返回 5xx 的接口優先處理,別让它繼續消耗抓取机會。
- 再做性能優化。加缓存、减少同步請求、把重查询挪到後台,把响應時間压下来。
- 然後放開誤拦。確認抓取来源的放行規則,別只做 UA 简單匹配,容易被伪装绕過。
- 最後才谈提交與内鏈。通道顺畅之後再补站点地图和内鏈入口,效率才高。
收錄問题不總是内容問题。先確認服務器有没有把頁面完整交出去,再往下游的索引环节找原因。
另外提醒一点:修完服務器問题不會立刻看到收錄變化,抓取频率和索引更新都有自己的节奏。用日誌和抓取統計观察請求成功率的趋势,比盯着某一天的收錄數字更可靠。