常见问题

入口页用 301 或 302 跳转到目标 URL,搜索蜘蛛会继续跟吗?

入口页用 301 或 302 跳转到目标 URL,搜索蜘蛛一般会跟随,但跳转和普通超链接承担的角色并不一样:301 会让入口页自身被替换掉,302 的信号传递有限,链式跳转还会明显打折。本文说明什么场景适合用跳转、什么场景不建议用,以及 meta refresh、Location 写法、日志验证等容易被忽略的细节。

常见问题

入口页用 301 或 302 跳转到目标 URL,搜索蜘蛛会继续跟吗?

先说结论:会跟,但和普通超链接不是一回事

搜索蜘蛛处理跳转的逻辑和浏览器类似:遇到 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 被发现的概率,老老实实用可点击的超链接,把入口页维护成一个稳定、可访问、有内容的页面,比设计一串跳转链更省事。