网站收录

重定向链太长会让收录绕远路:跳转层数和落点怎么查

页面改版、换目录或调整参数后留下的重定向链,会让搜索蜘蛛多花好几跳才拿到内容。本文讲清重定向为什么影响收录,以及怎么用 curl、服务器日志和 sitemap 查跳转层数与最终落点,并给出缩短链路的处理顺序。

网站收录

重定向链太长会让收录绕远路:跳转层数和落点怎么查

页面做改版、换目录、调参数时,很容易留下一条甚至几条跳转。对用户来说,多跳一次几乎无感;对搜索蜘蛛来说,每一次跳转都是一次额外的请求,链条越长,被中途放弃的概率越高。

重定向为什么会影响收录

重定向本身不是错误,它是在告诉搜索蜘蛛“这个地址的内容搬到那边了”。问题在于它不算一次抓取完成:蜘蛛要先请求旧地址,拿到 3xx 响应和 Location 头,再对新地址发起一次请求。如果新地址又返回 3xx,那就继续跳。

这带来两件事。一是抓取资源被消耗在跳转上,同样的预算能拿到的内容变少;二是链路越长,中间任何一环出问题(超时、返回 5xx、跳到 404),蜘蛛就停在那里,最终页面拿不到,或者被当成不可用处理。

先把链路长度查清楚

不要凭印象判断,实际查一遍更省时间:

  • 用 curl -I 或浏览器的网络面板跟随跳转,看完整链路经过几个 3xx 才到 200。
  • 看站内链接和导航里是否还有指向旧地址的入口。内链指向旧 URL,用户和蜘蛛每次都要多跳一次。
  • 看 sitemap 文件里列的是最终地址还是被重定向的地址。sitemap 里放旧 URL,等于主动把蜘蛛往跳转链上带。
  • 翻服务器日志,筛选 3xx 状态的请求,看哪些地址被反复抓取却始终没有走到 200。

几种常见的跳转问题

链路过长

http 跳到 https,再去掉 www,再补末尾斜杠,再换目录,叠起来就是三到四跳。理想情况下,从任意旧地址到最终页面,一跳就够。

循环跳转

A 跳 B、B 又跳回 A,蜘蛛永远到不了终点,这类地址基本不会被收录。日志里同一个 URL 反复出现 3xx,值得怀疑。

跳到无关页面

把下线的详情页统一 301 到首页或栏目页,短期看像是保住了什么,长期看这些地址容易被当成软 404 处理,用户也拿不到想要的内容。内容确实不存在,410 或 404 更直接。

长期使用 302

302 是临时跳转,蜘蛛会保留旧地址一段时间。如果迁移是永久的,就该用 301,让抓取和信号都转到新地址上。

处理顺序建议

  1. 确定每个页面的最终地址,并让这个地址直接返回 200。
  2. 把站内链接、导航和 sitemap 全部改成指向最终地址,减少后续产生跳转的机会。
  3. 旧地址保留一跳,直接指向最终地址,不要串成链条。
  4. 检查最终页面的 canonical 是否自指,避免出现“跳转过去又被指回旧地址”的矛盾。
  5. 隔一到两周再看日志,观察 3xx 请求是否下降、最终地址被抓取的次数是否上升。
重定向的目标不是消灭所有 3xx,而是让蜘蛛用最少的请求到达真正想被收录的那个页面。

跳转链这类问题通常没法一次清干净,老站尤其如此。先处理被抓取最频繁的那几类地址,比重写全站规则更快看到变化。收录是结果,链路是否顺畅只是前提之一,页面本身有没有值得保留的内容,仍然是更关键的那一环。