入口頁的任務是把蜘蛛引到池内更多 URL,但很多人的關注点停在“蜘蛛来没来”,很少检查“蜘蛛来了之後服務器回了什么”。狀態碼是蜘蛛判断一個地址要不要繼續訪問、要不要降低抓取频率的直接依據,這里配错,前面铺的入口頁基本白做。
下面聊的是入口頁和池内頁面返回不同狀態碼时,蜘蛛常见的行為差异。不同搜尋引擎的策略並不一致,具体表現請以自己站点的訪問日誌為准,不要照搬结论。
4xx 家族:含义不同,別混着用
404 與 410
404 表示“暂时找不到”,410 表示“已经永久刪除”。两者都會让蜘蛛把這個 URL 從待抓队列里剔除,但 410 的信号更明确,後續回訪的間隔通常更長。入口頁如果因為參數拼装、目錄改名導致大批 URL 失效,返回 404 是正常做法,不必强行 301 跳到一個内容無關的頁面。
需要避免的是软 404:HTTP 狀態返回 200,頁面内容却是“该頁面不存在”或者一片空白。蜘蛛拿到 200 會当成正常頁面繼續抓、繼續進入後續流程,结果是大量無效地址占掉抓取预算。
403 與 429
403 是明确拒绝,蜘蛛通常會停止對该路径的抓取。如果入口頁整站返回 403,常见原因是 WAF 誤拦、UA 黑名單配错,URL 發現鏈路會直接断掉。429 表示“請求太多”,蜘蛛一般會降低频率、稍後再来,短期看比 403 温和;但如果長期返回 429,抓取量同样會明顯下滑。
5xx 與超时:蜘蛛會退让,但帳都记着
500、502、503 属于服務器端错誤。蜘蛛遇到這類响應,一般判定為临时故障,過一段時間重试,同时降低對该站点的整体抓取频率。偶發几次問题不大,但如果蜘蛛来訪的時間段里入口頁持續返回 5xx,或者响應迟迟不返回導致超时,抓取量掉得會比想象中快,恢复也需要時間。
這里有個常见誤区:把 503 当成“维護中,蜘蛛不會记仇”的萬能挡箭牌。短時間用没問题,長時間挂着 503,效果和關站差不多。
入口頁最容易踩的几種配置错誤
- WAF 一刀切:把所有非浏览器 UA 都拦掉,蜘蛛也一起挡在门外。
- 错誤頁返回 200:空壳頁、报错頁都用 200 輸出,蜘蛛反复抓無效地址。
- 入口頁强依赖後端接口:接口一挂,整頁 5xx,蜘蛛抓一半就退。
- 泛目錄不加限制:任意參數都返回 200,蜘蛛顺着參數组合無限抓。
- 协议與域名混用:HTTP 與 HTTPS、带 www 與不带 www 同时可訪問,同一批内容出現多個入口,狀態碼還各不相同。
排查顺序:從日誌到狀態碼
- 先在訪問日誌里筛出蜘蛛 UA 的請求,統計狀態碼分布,看 2xx 占比是否正常。
- 重点看出現频率高的 4xx 與 5xx,判断是配置問题還是偶發波動。
- 用 curl 带上蜘蛛 UA 直接請求入口頁,確認返回碼和内容與预期一致。
- 检查 WAF、CDN、反向代理的拦截規則,確認没有把正常蜘蛛一起拦掉。
- 改動之後观察一到两周的日誌趋势,不要当天改当天就下结论。
狀態碼只解决“蜘蛛能不能顺利拿到頁面”,不解决頁面质量、收錄與排名。入口頁返回 200 是入场券,不是结果。
使用建议
入口頁和池内頁面的狀態碼應当保持一致:该 404 的就 404,该 410 的就 410,不要為了“看起来正常”一律返回 200。抓取压力大时,用合理的响應速度配合 429 或 503 控制节奏,比直接 403 拦死更稳妥。定期翻日誌,比反复猜蜘蛛的偏好更有用。