改版、换域名、合并页面时,URL 往往不是直接消失,而是通过重定向指到新地址。对用户来说,跳转是透明的;对搜索引擎来说,每一次跳转都是一次额外的抓取请求和一次信号传递。理解重定向对抓取与收录的影响,能帮你在迁移后少踩坑。
重定向在收录流程里的位置
搜索引擎处理一个 URL 大致经历:发现、抓取、解析、索引。重定向发生在抓取阶段。蜘蛛请求旧 URL,收到 3xx 状态码和 Location 头,再请求目标 URL。最终被解析和收录的是目标 URL,而不是旧 URL。但这个前提是:跳转链路要短、要稳定。
如果链路太长,蜘蛛可能在中途放弃,或者把中间 URL 当成独立页面处理,导致抓取配额被消耗在无意义的请求上。
301 与 302 对收录的不同含义
301 表示永久移动,搜索引擎会把旧 URL 的信号尽量传递到新 URL,并在后续抓取中逐步用新 URL 替换索引里的旧地址。302、307 表示临时跳转,搜索引擎通常保留旧 URL 的索引,继续抓取旧地址。如果你希望收录落到新 URL,临时跳转不是合适的选择。
真正的永久迁移,应该用 301,并且尽量保持长期有效。短期内改回 302 或取消跳转,会让搜索引擎重新判断,延长收录过渡期。
链式跳转与循环
A 跳到 B,B 跳到 C,C 再跳到 D,这种链式跳转每多一跳就多一次请求。蜘蛛一般能跟随若干跳,但链路越长,丢失信号和被中断的概率越高。更糟的是循环跳转,蜘蛛会陷入无解,最终放弃抓取该 URL。
自查时,可以用 curl 或浏览器开发者工具查看完整跳转链,确认没有多余中间层。理想情况是旧 URL 一步跳到最终地址。
重定向与 canonical 同时出现
如果旧 URL 既做了 301,页面里又写了指向另一个地址的 canonical,信号会互相矛盾。搜索引擎可能一时难以判断,收录可能落在你不希望的位置。迁移时,让重定向目标和 canonical 保持一致,不要两套逻辑打架。
常见处理顺序
- 先确认目标 URL 可正常访问,返回 200,并且没有被 robots.txt 挡住。
- 检查跳转链是否只有一跳,目的地是否稳定。
- 确认用的是 301,而不是 302、JS 跳转或 meta refresh。
- 把新 URL 放进 sitemap,并更新站内链接指向新地址,减少对旧 URL 的依赖。
- 观察日志里旧 URL 的抓取频次是否逐步下降,新 URL 是否开始被频繁抓取。
几类容易忽略的情况
- 跳转到 404 页面:旧 URL 会更快从索引里消失,但新地址也不会被收录,因为目标本身无效。
- 跳转到首页:大量不相关的旧 URL 都跳首页,搜索引擎可能视为软 404 处理,收录价值很低。
- HTTP 到 HTTPS、带 www 到不带 www:这类站点级迁移应全站统一跳转,避免部分页面走一套、部分走另一套。
- JS 跳转和 meta refresh:不如 HTTP 301 明确,收录过渡更慢,也更容易被误判。
观察与调整
重定向不是设完就结束。迁移后一段时间内,可以结合日志和搜索表现观察:旧 URL 是否还在被频繁抓取、新 URL 是否开始进入索引、是否有页面长期停留在已发现未抓取的状态。如果旧 URL 在几个月后仍大量被抓取,检查站内是否还有链接指向它,或者 sitemap 里是否混入了旧地址。
收录过渡需要时间,具体周期因站点规模、抓取频次和内容更新情况而异。与其反复改动跳转规则,不如保持链路干净、目标稳定,让搜索引擎有足够时间完成替换。