页面换地址、站点改版、栏目合并时,跳转几乎是绕不开的动作。但跳转本身不是收录的保证,它只是把蜘蛛从一个地址引到另一个地址。跳转怎么设置、链有多长、最终落点是否能被抓取,都会影响这个地址在索引里的表现。
重定向解决的是什么问题
当一个 URL 不再作为主地址使用,就需要告诉蜘蛛和浏览器“去新地址”。这个信号有几层:HTTP 状态码、响应头里的 Location、以及最终返回的那份内容。几层都对上,跳转才算清晰。
如果只做了前端跳转,服务器对旧地址仍然返回 200 和一份正常页面,蜘蛛看到的就是一个普通网页,不会把它理解成搬家。这种情况下新旧两个地址可能各自被处理,重复内容的风险也随之出现。
几种跳转方式在收录里的差别
- 301:最常见的永久迁移信号,指向关系稳定,后续处理一般会向目标地址收敛。
- 302 / 307:临时跳转,蜘蛛通常会继续保留旧地址的观察,不会马上替换索引里的地址。长期用临时跳转做永久迁移,索引更新容易被拖慢。
- meta refresh 与 JS 跳转:需要渲染才能识别,抓取和渲染资源不足时可能识别不到,稳定性不如服务端跳转。
- 只改前端路由:对蜘蛛来说地址没变,等于没做迁移。
跳转链为什么越短越好
一次跳转是 A 到 B,多次跳转就是 A 到 B 再到 C 再到 D。每一跳都要消耗一次抓取,链越长,蜘蛛在旧地址上花的时间越多,最终落点被发现的路径也越长。实践中尽量让旧地址直接指向最终地址,避免“旧域名到中间页再到新域名”这种接力。
另一种常见情况是跳转成环:A 跳 B,B 又跳回 A。蜘蛛跟进几轮后会停止,这个地址的收录状态基本就停住了。改版之后抽几条旧地址手动点一遍,很容易发现这类问题。
跳转方向和 canonical 要保持一致
如果 A 跳转到 B,而 B 页面的 canonical 又指向 A,两个信号互相矛盾。蜘蛛需要额外判断哪个是主地址,收录结果就变得不稳定。既然已经用跳转做了迁移,目标页的 canonical 就应该指向它自己。
同理,站点地图、站内链接、外部还在引用的旧链接,也尽量统一到最终地址,减少中间环节。信号一致,处理才干脆。
出问题时的自查顺序
- 用抓取工具或命令行看旧地址返回的状态码,确认是 301、302,还是意外返回了 200。
- 看 Location 指向的地址是不是最终地址,中间有没有多余的跳转层。
- 检查最终地址能否被抓取:robots.txt 有没有拦住、是否需要登录、状态码是不是 200。
- 检查最终地址的 canonical 指向哪里,和跳转方向是否一致。
- 从日志里看蜘蛛访问旧地址的频率。如果它长期只访问旧地址、很少到新地址,说明跳转信号可能没被识别。
几个容易忽略的点
- 不要把旧地址跳到一个 noindex 页面上,等于把流量送进一个不会被索引的落点。
- 大量旧地址一次性跳转后,日志上会看到集中的抓取,之后慢慢回落,属于正常现象。
- 服务端跳转改好了,但站内链接还指向旧地址,蜘蛛会继续从内链发现旧地址,迁移并不彻底。
- 跳转的目标地址如果是 404,这次迁移等于把页面丢掉了。
跳转只是把地址指向新位置,能不能进索引,仍然取决于落点页面的内容质量、可抓取性和重复情况。
把跳转当成一次完整的地址迁移来看:状态码、目标地址、目标页自身的收录条件,三件事都要对。配置完成后隔一段时间看日志和索引状态,比一次性设好就放在那里不管要可靠得多。