先给结论:如果旧地址承载的是可替代内容,优先用301指向最接近的新页面;如果旧地址承载的是不可替代内容或本身没有合理落点,就让旧地址返回410,而不是硬凑一个首页或栏目页。判断依据不是“哪个状态码更快”,而是旧地址的语义能否在新结构里找到等价承接;拿不准时,先处理样本,再决定是否批量套用。
迁移后旧地址没有完全等价目标,不等于没有接近目标。只要旧页面主题、主要意图和用户预期能被一个新页面大体承接,301仍然比410更合适,因为它把已有链接关系和用户访问导向一个仍然有用的落点。
这里的“接近”需要可验证,不能凭感觉。可以按三个信号判断:旧页面标题与核心主题是否与新页面一致;旧页面主要段落讲的内容是否在新页面出现;用户从旧地址进入后,是否能在一次跳转内找到原来看的东西。三项都满足,才适合做301。
实施动作上,先抽样而不是全量。挑10到20个旧地址,逐个打开新页面,记录跳转目标、页面主题和缺失内容。如果抽样里超过一半的旧地址都能找到语义接近的新页面,再按目录或模板批量配置301;如果抽样里大量旧地址只能跳到首页或栏目页,就不要批量套用,否则用户和抓取都会落到无关内容上。
这个动作的结果会直接影响下一步:抽样通过,就进入批量映射和跳转后的落地页检查;抽样不通过,就转入410处理,并单独标记那些仍有价值、需要新建承接页的旧地址。
当旧页面讲的是已经取消的产品、下线的活动、合并后不再保留的栏目,且新站没有对应内容时,把旧地址硬跳到首页或最接近的栏目页,会造成两个问题:用户预期落空,抓取端也难以判断这个跳转是否真有承接关系。此时410比301更诚实。
需要明确一点:返回410不等于旧地址会立刻从结果里消失。抓取限制、站点地图和索引移除是不同层面的事。robots.txt 的抓取限制不等于可靠的索引移除;站点地图不保证收录,也不保证旧地址被及时清理。410只是向百度明确表达“该地址已不存在且不再提供”,后续清理仍取决于抓取和重新评估。
因此,410的适用条件是:旧地址内容确实不再提供,且没有语义接近的新页面。实施动作是逐批把这类旧地址返回410,同时保留一份旧地址清单,记录哪些是永久下线、哪些是暂时缺失。暂时缺失的不要急着返回410,先确认是否会在近期恢复,否则可能把还会回来的内容提前判死。
把两种选择放在一起,分界其实只有一条:旧地址对应的内容,在新站里是否还有承接价值。
这个分界的关键是“承接价值”而不是“页面数量”。一个旧地址即使流量很小,只要它对应的是仍在售产品、仍在用的功能说明或仍被外部引用的资料,就应该优先找承接页,而不是直接410。
最容易被忽略的是:小样本里301和410都表现正常,规模化后却出现例外。原因通常不在状态码本身,而在旧地址的结构比样本更复杂。
常见的例外有三类。第一类是带参数的旧地址,比如同一内容有多个参数版本,抽样时只看了干净地址,批量后参数版本可能跳到不同目标。第二类是分页和列表页,旧列表页没有等价新列表时,跳到单篇内容会让用户找不到原来的浏览路径。第三类是旧地址本身是聚合页,新站把它拆成了多个页面,这时单一301目标无法承接全部意图,需要评估是否保留一个聚合落点。
处理这些例外,动作是先在批量规则之外单独列出“不能套模板”的地址,再为它们逐个指定目标或返回410。做完这一步,再复查批量规则是否误伤了这些地址。这个动作的结果决定后续是继续扩大批量范围,还是先收敛到白名单地址。
假设某站迁移后,旧地址 /old-a/ 讲的是“A功能使用说明”,新站有 /new/a-guide/ 讲同一功能,只是页面结构变了,那么 /old-a/ 适合301到 /new/a-guide/。旧地址 /old-b/ 讲的是已下线的B活动,新站没有B活动页,也没有相近内容,那么 /old-b/ 适合返回410,而不是跳到首页。
如果 /old-c/ 讲的是C功能,但新站把C功能合并进了D页面,且D页面只有一小段提到C,这时要先判断这一小段是否足以承接原页面意图。足够接近就301到D页面;如果用户从 /old-c/ 进入后几乎找不到C的说明,就不要301,改为标记待建承接页,等C的说明补全后再跳转。这个例子的数字只是说明比较方法,不代表任何真实站点数据。
最后要记住:迁移后的旧地址处理,不是选一个“更利于快速收录”的状态码就结束。301和410各有适用条件,样本通过不等于全量成立,抓取限制和索引移除也不是一回事。把旧地址按承接价值分组,再分别决定跳转、保留还是失效,比统一套一个规则更可控。