外链点进来不是 200,而是一串 301 套 301 之后再套一个 302,最终落到的地址可能还不是你想被引用的那一页。先说结论:跳转本身是官方认可的规范信号,真正的风险不在「有没有跳转」,而在「跳了几跳」和「落到哪里」。官方对 hop 数有公开数字,也有公开说法说明内容以哪一跳为准——这两条能直接回答你大部分疑问。
跳转链在官方文档里处于什么位置
跳转在官方体系里的地位是明确的。Google 关于重定向与搜索的说明把跳转分成两类并给出各自效果:永久跳转让新的跳转目标出现在搜索结果里,临时跳转则仍显示来源页。同一份文档写明,Googlebot 会跟随跳转,索引流程会把永久跳转当作「跳转目标应成为规范地址」的信号;而对 302、303、307 这类临时跳转,Googlebot 同样跟随,但索引流程不把它当作规范信号,目标页是否被收录还取决于是否存在其他规范信号。
官方还说明了识别难度的排序:这份文档给出的表格按 Google 能够正确解释的可能性从高到低排列,服务端跳转被正确识别的可能性最高,其次是零秒的 meta refresh,再往后是 JavaScript 跳转。同一份文档对 JavaScript 跳转的措辞是「只有在无法使用服务端或 meta refresh 跳转时才使用」。
hops 上限与内容以哪一跳为准

关于 hop 数,官方数字是公开的。Google 关于 HTTP 状态码如何影响爬虫的说明在重定向一节写明:默认情况下 Google 的爬虫最多跟随 10 跳重定向;不同产品的爬虫可能有不同上限,例如 Googlebot 在抓取一般网页内容时一般跟随 10 跳,而 Google 检查工具不跟随重定向。
关于内容以谁为准,同一份文档给的说法更直接:从重定向地址收到的任何内容都会被忽略,处理的是最终目标 URL 的内容。同一份文档对状态码的强弱也分开了:301 被 Google 跟随,且 Google 各系统把它当作目标应被处理的强信号;302 默认被跟随,但只作为弱信号,而且其他产品可能处理方式不同。文档还补了一句实务提醒:这些状态码在 Google 看来相同,但语义不同,应该按用途选对应的状态码,让其他客户端也能正确处理。
把两条合起来推一遍,结论就出来了:跳到 10 跳以内,内容以最后一跳为准;但「被处理」和「被当作规范信号」是两件事——如果这条链里混进了 302,索引流程不会因为这个跳转就认为目标页是规范页。官方没有公布任何关于「每跳损失多少」的比例或阈值,这类数字不要写进任何报告。
自查跳转链的命令与判断表
先跑命令,再对照表判断:
用 curl -IL 跟随跳转,把每一跳的状态码和 Location 头打出来;数出总跳数,看最后一跳落在哪。然后按这张表定级:
| 自查结果 | 问题定位 | 处理动作 |
|---|---|---|
| 一跳 301 直达目标页 | 正常 | 记进抽查表,不需动作 |
| 两跳以上,且全部为 301/308 | 链路冗余,官方上限是 10 跳 | 把中间跳合并成一跳直达 |
| 跳数达到或超过 10 | 超出官方公布的默认上限 | 必须收敛;先查中间跳是谁加的 |
| 链中出现 302/303/307 | 索引流程不把它当规范信号 | 确认是否应为永久跳转,是则改 301/308 |
| 中间跳是 JavaScript 或非零秒 meta refresh | 官方说这两种被正确解释的可能性低于服务端跳转 | 改成服务端跳转 |
| 最终落到首页而不是对应页面 | 掩盖了问题 | 改成直达对应页面 |
| 任意一跳返回 404 或 5xx | 链已断 | 按死链处理,见丢失的外链怎么找回来 |
命令只解决「看清现状」,不解决「谁该改」。如果跳数超过一跳,责任方通常不是来源方——对方页面上的 href 写的就是一个地址,链条是你自己站内的配置产生的。这种情况不需要向对方提要求,直接改站内配置即可。只有当对方给你的地址本身就是套了跳转的追踪短链时,才是对方侧的问题。
怎么验证这条链接最终落对了页
四个检查,一次做完。一、命令层:curl -IL 输出确认跳数与最终地址。二、状态码层:确认链上没有 302、303、307 混在里面。三、规范层:在 URL 检查工具里输入你希望被引用的那个地址,看 Google 选取的规范地址是不是它;这一步不能省,因为官方把跳转列为「目标应成为规范地址」的强信号,同时也说明指定规范地址是一种偏好表达,最终选取仍可能不同。四、报表层:在链接报告里按目标 URL 查,确认这条链接被记在了你期望的那个地址上。
四个检查都对得上,才能在验收表里签这一条。任一环对不上,就在表上写清楚卡在哪一环、下一步谁处理、按什么时间点复查,不要写成「已处理」。验收字段怎么设见外链页面 301 之后原站该知道什么,那篇专门拆解这类情形的责任划分。
哪几类跳转不适用永久方案
四类情形不要一律改成 301。限时活动页结束后确实要下线,用临时跳转更符合实际语义,改成 301 反而会留下一个永久信号。多地区、多语言站点的按地区分发要用能按时效跳的方案,永久跳转会锁死地区选择。尚未上线的页面先用临时跳转占位,真正上线时再改永久。A/B 测试属于另一套判断,不能按普通跳转处理。官方把「暂时下线网站」和「A/B 测试」都单独列为独立场景,原因就在这里。
还有一类容易被误改的:来源方给你的是 UTM 追踪地址时,跳转是你要收敛的,参数本身要不要留在对外链接里是另一个问题,两件事分开处理。