有些站点内容不差,sitemap 也提交了,但内頁收錄始终跟不上。排查一圈後發現,問题不在内容,而在站内連結本身:大量連結指向的不是最终地址,而是先经過一次或多次跳轉。對用戶来说只是慢一点,對搜尋引擎来说,則意味着它發現的 URL 和你想让它收錄的 URL 並不是同一個。
跳轉連結為什么會拖累收錄
搜尋引擎的抓取预算有限。当它沿着一條連結爬過去,先抓到一個 301 或 302 地址,再跟到目标頁,這個過程會消耗額外的抓取次數。如果站内大量連結都這么走,预算就浪費在中轉上,真正需要被抓的頁面反而排不上队。更麻烦的是,蜘蛛可能把中轉地址也当作一個獨立 URL 记錄在發現列表里,形成“一個頁面多個候選地址”的局面,索引归属容易分散。
需要說明的是,跳轉本身不是错誤。問题出在本可以直接指向最终地址的地方,却绕了一道。
先分清站内常见的三類跳轉
1. 协议與主机名跳轉
比如頁面里寫的是 http:// 開头的連結,服務器统一 301 到 https://;或者内鏈寫的是不带 www 的域名,實际跳轉到带 www 的版本。這類跳轉量大、集中在全站導航和頁脚,最容易被忽略。
2. 路径規范化跳轉
末尾斜杠的有無、路径大小寫、连續斜杠、带不带 index.html,服務器把非規范版本 301 到規范版本。内鏈如果混用了多種寫法,蜘蛛就會反复走跳轉。
3. 业務與統計跳轉
常见的 /go/、/out/、短鏈服務、带 utm 參數的中轉頁,以及广告位、合作方互換的連結。這類地址往往不返回 301,而是 302 甚至 JS 跳轉,指向的最终頁面很难被稳定發現。
核對顺序
- 看抓取日誌里蜘蛛實际訪問的 URL 形態。重点看两件事:中轉地址的訪問量占比,以及目标頁是否有一條“直達”的抓取记錄。如果某個頁面几乎只通過跳轉被發現,說明它缺少直接的入口。
- 在頁面源碼里搜關鍵詞。搜尋 http://、“go/”、“redirect”、“target=” 等字样,定位出哪些模板产生了跳轉連結。通常集中在導航、面包屑、相關推荐、列表頁的标题連結上。
- 区分 301 與 302。永久跳轉能把信号合並到目标地址,临时跳轉只是“這次去那邊”。如果站内的固定連結用了 302,等于每次都在重新指路。
- 检查是否存在跳轉鏈。A 跳到 B,B 又跳到 C,鏈路越長,抓取损耗越大,也越容易被中途放弃。
- 核對 sitemap 和 canonical 用的是哪個版本。這两處應该统一指向最终地址,而不是中轉地址或非規范版本。三者不一致时,索引归属就會摇摆。
- 確認跳轉目标是否可抓。有些中轉地址带 nofollow 或 robots 屏蔽,或者目标頁本身被 robots.txt 挡住,那就不是跳轉的問题,而是目标根本没放行。
修正时的几点注意
- 把内鏈直接改成最终地址,是最省事的做法。導航、面包屑、列表頁标题連結優先處理。
- 已经存在的中轉地址不要直接删掉,保留跳轉並確認狀態碼正确,避免产生大量 404。
- 統計跳轉如果必须保留,可以给連結加上 nofollow,减少蜘蛛在中轉上的消耗。
- 改完後观察一段時間日誌,看最终地址的直接抓取是否變多,再判断是否還有別的問题。
跳轉不會直接導致頁面不收錄,但它會让“發現”這一步變得低效。收錄的前提是稳定發現,先把路径理顺,再谈内容质量。
最後提醒一句:這類問题往往只影响一部分模板,不必全站大改。先從抓取日誌里找出跳轉集中的那几個入口,改完再看資料變化,比一次性推翻連結结构要稳妥得多。