网站收录

301、302 与链式跳转:重定向之后,收录落在哪个地址

页面换地址、旧内容下线时,重定向是最常用的处理方式,但收录最终落在哪个 URL,取决于跳转类型和链条长短。本文说明 301 与 302 在索引上的差别、链式跳转的隐患、meta refresh 和 JS 跳转的局限,并给出落地页检查项与改版后的收尾顺序。

网站收录

301、302 与链式跳转:重定向之后,收录落在哪个地址

收录跟着最后返回 200 的那个地址走

搜索引擎拿到一个 URL,第一件事是看服务器的响应。如果返回 3xx,它会顺着 Location 继续往下走,直到遇到一个返回 200 的页面。索引里留下来的,通常是这个最终地址。明白了这一点,很多“我明明提交的是 A,收录的却是 C”的疑问就能自己解释。

这里要把抓取和收录分开看:跳转被跟随,只说明这一串路径被抓过,并不等于末端页面一定进了索引。末端页面还得自己过关——能抓取、内容够用、没有被 noindex。

301 和 302 在收录上的差别

301 表示永久搬走,信号倾向于传到新地址,旧地址会随着时间从索引里淡出。302 表示临时,旧地址一般仍保留在索引里,新地址是否被单独收录则不一定。

所以判断标准很简单:这次变更是永久的,就用 301;只是维护、活动、灰度这类短期跳转,用 302。麻烦的是把 302 长期挂着——索引里旧地址不走,新地址又进得慢,最后两个地址同时出现,反而更难处理。

跳转类型写错,往往不是抓取失败,而是让索引里同时留下两个版本。

链式跳转是最容易被忽略的一环

A 跳到 B、B 再跳到 C,这种结构在老站里很常见。每多一跳,抓取成本就多一层,中间任何一环出错,末端页面都可能发现不了。建议按下面的顺序收尾:

  • 先把链条拍平,能直连的直接 A→C,不再经过中间页;
  • 检查有没有循环跳转,A 跳到 B、B 又跳回 A,这种会直接卡住;
  • 确认中间地址是否还需要保留,不保留的直接 301 到末端;
  • 改完后重新提交一次,观察新地址的抓取情况。

跳到不相关页面,不如干脆返回 404

旧产品下线后统一跳首页,看着省事,但落地页和原页面主题差得远,用户点进去一头雾水,搜索引擎也不容易判断该保留哪个。如果确实没有内容接近的替代页,返回 404 或 410 往往更干净,索引清理得也更早。

同样是跳转,方式不同结果也不同

  • HTTP 3xx:最稳,服务端完成,不依赖渲染;
  • meta refresh:带延迟时间,容易被当成页面内容处理,能不用就不用;
  • JS 跳转:需要渲染才生效,抓取成本更高,稳定性也差一些;
  • 按钮、表单、弹窗跳转:基本不会被当成重定向,只能算页面内的交互。

结论不复杂:能用 3xx 解决的,就不要用别的办法代替。

落地页也要自己检查一遍

  • 落地页返回的是 200,而不是另一个 3xx;
  • 落地页没有被 robots.txt 挡住;
  • 落地页没有 noindex;
  • 落地页内容和旧页主题接近,用户能找到想找的东西。

改版或换域名之后的收尾顺序

  1. 旧地址保留 301,时间留足,别急着撤;
  2. sitemap 里只放新地址,别再混入旧的;
  3. 站内链接全部换成新地址,减少无谓跳转;
  4. 持续看旧地址的抓取和点击,确认还有访问;
  5. 观察索引里旧地址的数量是否在慢慢减少。

几件不要做的事

  • 长期用 302 代替 301;
  • 跳转目标又是一个 3xx,形成新的链条;
  • 跳到一个被 noindex 或 robots 禁止抓取的地址;
  • 让新地址再跳回旧地址,形成闭环。

重定向本身不复杂,复杂的是它留下的尾巴。把路径缩短、状态码写对、落地页检查一遍,收录的走向通常就会跟着清楚起来。