收錄下滑,很多人第一反應是内容质量、canonical 或者 sitemap。但有一類情况常被忽略:蜘蛛确實来過,請求却在到達頁面之前就被拦住了。源站日誌里看不到它,抓取統計里却寫着失敗,于是問题被誤判成内容不被收錄。
被拦的請求,在日誌里長什么样
如果只看源站訪問日誌,被 WAF 或 CDN 挡掉的請求根本不會出現,容易得出蜘蛛没来的结论。換個位置看,特征其實比較集中:
- 狀態碼異常:403、429、503 反复出現,或者返回 302 跳到驗證頁;
- 返回 200 但内容是挑战頁:比如一段 JS 校驗、驗證碼頁面,蜘蛛拿到的是空壳;
- 抓取频次突然降到很低:不是蜘蛛不来了,而是来一次被拒一次,频次自然被压低;
- 渲染阶段失敗:首屏 HTML 能拿到,但渲染代理的請求被單獨拦截。
這些情况都指向同一件事:抓取通道不通。抓取和收錄是两回事,抓不到内容的頁面,後面索引评估也無從谈起。
常见的拦截来源
WAF 規則誤伤
一些規則會针對路径里的特殊字符、長參數、高频訪問做拦截。列表頁、篩選頁、站内搜尋這類 URL 很容易踩中,恰好也是收錄問题高發的頁面類型。
CDN 的机器人與区域策略
部分 CDN 預設開啟 Bot 管理,規則寫得粗就會把搜尋引擎一起挡掉。区域限制、防盗鏈、频率限制也可能波及搜尋蜘蛛。
服務器层面的封禁
fail2ban、自寫脚本、按 UA 黑名單屏蔽,都可能把合法爬虫寫入封禁列表。這類封禁往往是一次触發、長期生效,日誌里只剩沉默。
先確認是不是誤拦
- 用搜尋平台的抓取統計或 URL 检查工具,看它返回的狀態碼和抓取時間,而不是只盯着自己的服務器日誌;
- 對照官方公布的 IP 段或反向 DNS 结果,驗證請求是否真的来自搜尋引擎;
- 用不同 UA 請求同一 URL,观察响應差异,区分是内容問题還是策略問题;
- 把 CDN 邊缘日誌和源站日誌放在一起看,缺口往往就是被拦的部分。
放行要基于 IP 驗證,不要只看 User-Agent。UA 可以随便伪造,只凭 UA 放行等于自己開了個口子。
處理顺序:先通,再谈质量
確認誤拦之後,按下面的顺序處理會更稳:
- 放行已驗證的搜尋引擎来源,包括正常抓取和渲染請求;
- 检查 WAF 規則中针對參數、路径和频率的條目,缩小誤伤范围;
- 對 429、503 這類限速响應,設定合理的重试與配額,而不是長期封禁;
- 涉及 JS 挑战或驗證碼的頁面,為搜尋引擎提供可绕過的通道,否則蜘蛛永遠拿不到正文;
- 改動後观察一段時間,看抓取频次和狀態碼是否回到正常区間。
收錄問题排查时,建议先把抓取通道確認一遍,再去看内容、重复和 URL 規范。顺序反了,很容易在内容层面反复調整,却始终绕不開那個被拦在门外的請求。