先给出结论:不要只改栏目名称就收工。正确顺序是——先保留旧名称与旧路径的对应关系,再决定导航与面包屑各自引用哪一份名称数据,最后用少量典型页面验证,确认没有出现“导航叫新名、面包屑叫旧名”的混用,再决定是否批量替换。
把手里那个页面打开,看旧栏目名出现在哪些位置。通常分两种:一种是结构名,写在面包屑路径、详情页归属、列表页标题里,代表页面在站点中的位置;另一种是入口名,只出现在主导航、侧边栏、页脚等点击入口上,代表用户从哪儿进来。
如果旧名称只做入口,改名影响小,改导航文字即可。如果旧名称同时是结构名,改名等于改变了页面的层级语义,面包屑、列表页标题、甚至详情页里的“所属栏目”都要一起动。判断方法很简单:把旧名称从导航里删掉,看页面是否还能说清自己属于哪个栏目。说不清,它就是结构名。
很多站点把栏目名称存在一个字段里,导航和面包屑都读它。改名时一改全改,看起来省事,实际会带来两个问题:一是旧路径下的页面面包屑突然显示新名称,用户从旧链接进来会对不上;二是导航里为了排版好看常用的短名,被面包屑继承后显得不完整。
更稳妥的做法是拆成两份数据:导航用“入口名”,允许短、允许带动作感;面包屑用“结构名”,要求完整、能体现层级。两份数据都保留旧名称的映射,用于旧路径或旧参数的页面。这样改名时只动入口名,结构名按需分批替换。
假设某站点把“产品中心”改为“解决方案”。导航可以立即显示“解决方案”,但面包屑在旧路径 /products/ 下仍显示“产品中心 > 某产品”,直到该路径下的页面全部迁移或设置了对应关系。这样做的结果是:老用户从旧链接进入不会觉得走错地方,新用户从导航进入看到的是新名称。下一步再决定是否给旧路径做跳转或保留双入口。
这个顺序的关键在于:不要一次性全站替换。全站替换后如果出现混用,很难判断是导航数据的问题还是面包屑数据的问题。
上述方法在栏目数量少、层级浅时成立。栏目数量多、层级超过三层,或存在多入口指向同一栏目时,会出现例外:
这些例外的共同点是:不能靠单次全站替换解决,必须回到映射表逐条确认。如果站点栏目数量已经多到映射表难以维护,说明改名动作本身需要拆成多次小范围调整,而不是一次性完成。
不要只看某个页面的面包屑是否变了。更可靠的信号是:从旧链接进入的页面,面包屑能说清当前位置;从导航进入的页面,导航高亮和面包屑指向同一个栏目;列表页标题与面包屑结构名一致。如果这三条都满足,说明导航与面包屑的名称来源已经分开且同步。反之,如果只有部分页面满足,说明还有页面挂在旧名称的数据下,需要继续按映射表排查。这一步做完,再决定是否清理旧名称的映射记录。