先给结论:如果旧栏目名只是从模糊说法换成更准确的说法,而且旧地址仍能访问,就保留旧导航链接和旧面包屑文本,只改展示名,让新旧叫法在一段时间内并存;如果旧栏目名本身指向了错误的内容边界,或者旧地址已经无法稳定访问,就直接替换导航和面包屑,并把旧地址做一次明确的跳转。判断依据不是“改名好不好看”,而是旧栏目名是否还准确描述当前内容,以及旧地址是否还有外部链接和用户习惯在支撑。
第一种条件:内容范围没变,只是叫法更顺。比如原来叫“帮助中心”,现在想改成“使用支持”,里面还是同一批文档、同一套分类、同一个列表页。这时旧导航和旧面包屑可以继续保留,因为用户和外部链接认的是那个位置,不是那四个字。你只需要把导航文字、面包屑末级文字、页面标题里的展示名换成新叫法,旧地址保持可访问。
第二种条件:内容范围变了,旧名字已经误导人。比如原来叫“产品文档”,现在这个栏目里混进了价格说明、服务条款和账号安全内容,继续叫“产品文档”会让用户点进来发现不是自己想找的东西。这时旧导航和旧面包屑必须替换,旧地址要做跳转,不能只改文字。判断标准很直接:如果旧栏目名会让用户对内容产生错误预期,就不能靠并存来拖延。
两种条件的分界线是内容边界,不是命名偏好。改名之前先列出这个栏目下所有二级页面,看它们是否还能被新名字覆盖。覆盖不了,就属于第二种条件。
保留旧导航不等于什么都不动。实际动作分三步,每一步的结果都会影响下一步。
这里有一个容易忽略的例外:如果旧导航出现在多个入口,比如页头、页脚和移动端抽屉里,不要只改一处。三处文字不一致,用户会以为进了两个不同的栏目。处理方式是先统一文字,再统一链接,最后统一面包屑。
面包屑和导航不是一回事。导航是入口,面包屑是路径。栏目改名后,面包屑里出现旧名字,通常有两种原因:一种是模板里写死了旧栏目名,另一种是层级数据里还存着旧名称。前者要改模板,后者要改数据。
假设一个例子:某站点把“新闻中心”改成“动态”,但面包屑仍然显示“首页 > 新闻中心 > 正文”。这时用户从导航点“动态”进来,却看到面包屑写着“新闻中心”,会怀疑自己点错了。处理动作是先查面包屑的数据来源,如果来自栏目表,就更新栏目名称字段;如果来自页面模板里的固定文字,就改模板。改完之后,再检查该栏目下所有详情页的面包屑是否同步变化。如果只有列表页变了、详情页没变,说明详情页用了另一套面包屑逻辑,需要单独处理。
这个例子的关键是:面包屑的旧名称不能靠跳转解决,跳转只解决地址,不解决文字。文字必须从数据或模板层面替换。
第一个信号:旧地址是否还有外部链接。如果有其他站点、收藏夹或历史邮件指向旧地址,跳转就有必要。第二个信号:旧地址是否还在站内被引用。如果站内其他页面还在链接旧地址,先改站内链接,再决定是否保留跳转。
两个信号都没有时,可以直接让旧地址返回 404 或 410。但要注意,访问量归零不能单独证明处理正确,因为日志可能被过滤、统计口径可能变化、用户可能直接通过搜索进入新地址。更稳妥的做法是保留跳转一段时间,再根据访问情况决定是否移除。
跳转的目标要指向最接近的新页面,不要全部指向首页。旧栏目下的详情页如果内容还在,就跳到对应的新详情页;如果内容已经合并,就跳到新的列表页。全部跳首页会让用户多一次寻找,也会让外部链接的价值落空。
个别栏目改名时,手工改导航和面包屑很容易。栏目数量一多,就会出现模板不统一、数据来源不一致、缓存未更新等问题。这时不能直接照搬单个栏目的处理方式。
规模化场景下,先做一次栏目清单,列出每个栏目的旧名称、新名称、旧地址、新地址、面包屑来源和导航位置。然后按来源分组:模板写死的归一组,数据驱动的归一组,混合的归一组。分组之后,每一组用同一套动作处理,而不是逐个栏目手工改。这样做的结果是,改完之后可以按组验证,而不是靠记忆检查。
例外情况是:有些栏目虽然名字变了,但旧地址还在被大量站内页面引用。这时不要先改导航,而要先改站内引用,否则用户从旧页面点进来会看到导航和面包屑不一致。动作顺序应该是:先改引用,再改导航,再改面包屑,最后处理跳转。