先说结论:會跟,但和普通超連結不是一回事
搜尋蜘蛛處理跳轉的逻辑和浏览器類似:遇到 301 或 302,會讀取响應头里的 Location,然後去請求新地址。所以從“目标 URL 能不能被發現”這個角度看,跳轉是可被跟随的。但跳轉和頁面里的普通 a 标簽超連結,在搜尋蜘蛛眼里承担的角色完全不同,很多問题就出在把两者当成一回事上。
301 是“搬家”,不是“指路”
301 表示原地址永久迁移到新地址。搜尋蜘蛛跟随之後,通常會把原 URL 上的信号轉给新地址,並让原 URL 逐渐從索引里登出。也就是说,你把入口頁做成 301 跳轉到目标 URL,本质上是在告诉搜尋引擎:這個入口頁不存在了,請用目标 URL 代替它。
對蜘蛛池来说,這往往和初衷相反。入口頁的價值在于它是一個稳定存在、能被反复抓取的中轉站;一旦 301,它自己就慢慢消失了,可用的入口反而少了一個。如果多個入口頁都 301 到同一個目标 URL,還可能被当成重复跳轉處理,效果並不會叠加。
302 是临时指路,信号传递有限
302(以及 307)表示临时跳轉,搜尋蜘蛛通常也會跟着去抓目标 URL,但會保留原地址,並把两者当作不同 URL 對待。结果是目标 URL 能被發現,原入口頁却仍占着一個位置,信号被分摊,指向目标的“推荐”意味比較弱。
鏈式跳轉會明顯打折
如果入口頁 302 到 A,A 又 301 到 B,B 再跳到目标 URL,鏈條越長,搜尋蜘蛛中途放弃或只抓一部分的概率越高。實践中建议跳轉层數控制在 1 跳,尽量不要超過 2 到 3 跳。
什么情况下适合用跳轉
- 站点換域名、HTTP 升級 HTTPS、URL 结构調整,需要把老地址的信号轉過去;
- 临时活動頁或短期推廣地址,需要指向一個長期存在的落地頁;
- 某個入口頁被废弃、需要合並到新的入口頁时,用 301 收口。
什么情况下不建议用跳轉做入口
- 目标是让搜尋蜘蛛發現並抓取目标 URL 本身,普通超連結更直接,也更容易排查;
- 入口頁還要繼續承担被發現、被反复抓取的功能,301 會把它自己消耗掉;
- 目标 URL 本身返回 404、503 或被 robots.txt 屏蔽,跳過去也是白跑一趟。
把入口頁当成“路牌”而不是“跳板”:超連結负责指路,跳轉负责搬家。两者混用,容易把入口頁自己搭進去。
几個容易被忽略的细节
meta refresh 和 JS 跳轉更弱
頁面里用 meta refresh 或 JS 的 location.href 做跳轉,搜尋蜘蛛的處理優先級低于服務端响應头跳轉,有些抓取情景下甚至不會执行。要做跳轉,優先放在响應头里。
Location 要寫完整绝對地址
相對路径的 Location 浏览器能识別,但部分抓取工具處理起来容易出错,直接寫以 https:// 開头的完整地址更稳妥。
不要和屏蔽規則叠在一起
入口頁返回跳轉的同时,如果响應头里還带着 noindex、X-Robots-Tag,或者路径被 robots.txt 屏蔽,搜尋蜘蛛很可能在跟随之前就停下。跳轉和屏蔽規則同时出現,通常以屏蔽為准。
用日誌驗證是否真的跟了
在服務器日誌里找入口頁的請求记錄,看紧接着是否出現同一個搜尋蜘蛛 UA 對目标 URL 的請求,Referer 里是否带着入口頁地址。如果只有入口頁被訪問、目标 URL 一次都没出現,說明跳轉没被执行,或者执行之後又被拦下了。
小结
搜尋蜘蛛會不會跟跳轉?會。但跟不跟、跟完抓不抓、抓完認不認,是三件事。跳轉是迁移工具,不是發現工具。想提高目标 URL 被發現的概率,老老實實用可点击的超連結,把入口頁维護成一個稳定、可訪問、有内容的頁面,比设計一串跳轉鏈更省事。