先给结论:没有等价目标时,默认选择是让旧地址返回410或404,而不是把它统一跳到主域名首页;只有当旧地址仍能对应一个语义相近、内容确实存在的页面时才改写跳转,只有当旧地址本身仍有独立价值、且你能持续维护它时才保留。判断依据不是“哪条规则更省事”,而是旧地址承载的意图在新结构里是否还有落点。
同样表现为旧地址失效,成因不同,处理方式也不同。用二级域名与主域名区别来拆解:旧地址位于子域时,问题常出在子域整体被并入主域;旧地址位于主域路径下时,问题常出在目录被重组或栏目被砍掉。
判断动作:先对旧地址做一次全量清点,把每个地址标成“有承接页”“部分承接”“无承接”三类。这个分类结果直接决定下一步是保留、改写还是退出,而不是先动手写跳转规则。
改写跳转(把旧地址301到新地址)只有在语义等价的条件下才成立。等价不等于“都是同一类产品”,而是用户点进来后能找到他原本想找的那件事。
可以这样验证:假设旧地址是一个子域下的规格查询页,新站把规格并入了主域的产品详情页。如果详情页里确实包含完整规格,可以301;如果详情页只有一段概述、规格被挪到需要登录才能看的文档里,那就不算等价,此时301会把用户送到一个“看起来相关但拿不到答案”的页面。
另一个必须核查的点:跳转目标必须是200状态且内容稳定。如果新地址本身还在改版、还可能被再次移动,先不要建立跳转,否则你会在几周内制造出跳转链。跳转链不会立刻出问题,但它会让后续排查变得困难,也会让“旧地址到底去哪了”这件事失去唯一答案。
动作与结果:对每个候选目标地址做一次抓取,确认返回200、页面主体与旧地址主题一致。抓取结果不一致的,退回“无承接”处理,而不是勉强找一个最接近的页面顶上。
保留意味着旧地址继续可访问、继续有内容、继续被维护。它成立的前提有三个,缺一个就不该保留。
如果只是“舍不得删”,那不属于保留的成立条件。此时更合理的做法是退出:让旧地址返回410,明确告知已永久移除。410与404对用户几乎无差别,但410表达的是确定性移除,适合你已经确认不会再恢复该内容的情况。
需要提醒的是,用robots.txt屏蔽旧地址不等于移除索引。屏蔽抓取只是阻止后续抓取,已经建立的索引可能仍会存在一段时间。若目标是让旧地址从结果中消失,410或404配合页面级处理通常比单纯屏蔽更直接。
第一个误判是把所有旧地址统一301到主域名首页。这会让大量不相关的旧地址指向同一个页面,用户和后续维护者都无法从中判断原来的意图。它看起来“没有死链”,实际上丢失了迁移中最有价值的信息:旧地址原本对应什么。
第二个误判是把“流量下降”直接当成处理错误。迁移后旧地址的访问量下降,可能来自跳转生效、可能来自外部链接自然衰减、也可能来自统计口径变化。这些解释并存时,不能只凭一个数字就断定410用错了。要区分原因,需要看旧地址的实际响应状态、跳转目标是否可达,以及主域对应页面是否已经能被正常访问。
动作与结果:对退出类地址建立一份清单,记录每个地址的最终状态(410或404)和判断日期。这份清单在后续出现争议时,是唯一能说明“当时为什么这样选”的依据。
假设某站点把子域上的帮助中心并入主域,旧地址共有100个。其中60个能在主域找到内容一致的新页面,25个内容被合并进一个综合帮助页,15个对应的功能已下线。
这个例子里的数字只用于说明分类方法,不代表任何实际站点的比例。真正的分岔点在第二步:先判断有没有等价目标,再决定动作,而不是先决定动作再去找理由。
最后一步是复核:迁移完成后,抽查每一类中若干地址,确认响应状态与清单一致。如果发现某个被标为“有承接”的地址实际跳到了一个空页面或错误页,就把它改回退出处理,并更新清单。这个复核动作决定了清单是否还能作为后续决策的依据,而不是一份写完就过期的记录。