蜘蛛沿着連結走,但並不是每一步都能直接到達頁面。服務器返回的跳轉,是它路上常见的“改道”提示。理解蜘蛛怎么處理這些跳轉,能帮你判断站内哪些路径值得整理。
重定向在蜘蛛眼里是什么
当蜘蛛請求的 URL 返回 3xx 狀態碼並带有 Location 头,它會讀取新地址,再發起一次請求。對蜘蛛来说,這不算错誤,但會多消耗一次抓取机會。如果一次抓取要穿過三四层跳轉才到達内容,那這部分時間就用在了“路上”。
几種常见跳轉的處理方式
- 301 / 308:表示永久迁移。蜘蛛通常會更新记錄,把新地址作為後續抓取和展示的入口。這是換域名、http 轉 https 时最常用的方式。
- 302 / 307:表示临时跳轉。蜘蛛一般不會據此替換原地址。如果長期用 302 做永久迁移,舊地址可能一直被反复抓取,新地址反而得不到確認。
- Meta Refresh 與 JS 跳轉:發生在頁面内部,蜘蛛需要先拿到 HTML 再解析。延迟較短的 meta refresh 通常能被识別,但多层 JS 跳轉不一定都能跟到底。
為什么跳轉鏈會消耗抓取机會
搜尋引擎给每個站点的抓取次數是動態變化的,不是固定配額。但一次抓取如果從入口開始连續穿過多個跳轉,最终才拿到 HTML,這段時間里蜘蛛没有讀到任何正文。跳轉越多,單位時間内能抓到的有效頁面就越少。對于頁面量大的站点,這種损耗會在日誌里体現出来。
容易出問题的几種跳轉鏈
- 跳轉鏈過長:A→B→C→D,每多一层就多一次請求,蜘蛛可能在中途停止。
- 跳轉循环:A 跳 B,B 又跳回 A,蜘蛛會在有限次數後放弃。
- 跳到 404 或错誤頁:舊地址迁移时没有對應新頁面,應直接返回 404 或 410,比跳到無關頁面更清楚。
- 跳到 noindex 頁面:跳轉本身没問题,但目标頁面若不希望收錄,等于浪費了一次抓取。
几類需要注意的跳轉场景
- http 到 https:整站迁移时,建议把 http 全部 301 到對應的 https 地址,並保證一一對應,不要统统跳到首頁。
- 带 www 與不带 www:選定一個主域名,另一個用 301 指向它,同时站内連結保持一致。
- 尾斜杠:/page 與 /page/ 如果都返回内容,可能被当成两個地址。選定一種寫法,另一種用 301 指過去。
- 舊參數地址:篩選、排序參數生成的 URL 如果不再使用,跳到對應分類頁时尽量保持内容主题一致。
怎么整理站内跳轉
先做一次盘点,可以從几處入手:
- 用日誌或抓取工具找出返回 3xx 的 URL,看跳轉层數和目标地址。
- 站内連結、導航、面包屑尽量直接寫最终地址,不要经過跳轉。
- Sitemap 中只放最终可訪問的 URL,不要放中間跳轉地址。
- 服務器层能合並的規則就合並,把鏈式跳轉压成一层。
整理时的小检查清單
- 内鏈和 Sitemap 是否指向跳轉地址,而不是最终地址?
- 是否存在两层以上的跳轉鏈,能不能直接指到终点?
- 302 是否被当成永久迁移長期使用?
- 跳轉目标是否返回 200 並且是希望被看到的頁面?
跳轉不是越多越糟,關键是每一层都有明确目的,並且尽量让蜘蛛一步到位。
把這些检查做完,蜘蛛在你的站点里走路會更直接。至于收錄和排名的结果,仍然由搜尋引擎综合判断,站点能控制的是路径本身的清晰程度。