删除栏目不是把栏目页删掉就结束。真正需要处理的是那些仍然指向它的入口:导航、面包屑、正文里的旧链接、站点地图、分页、结构化数据里的链接字段,以及外部引用。找齐这些入口的可行办法,是先把“栏目”当成一个 URL 集合,而不是一个页面,再从页面模板、全站组件和内容数据三个层面分别枚举,最后按影响程度决定直接删除、改指向还是保留过渡。
删除前,先把该栏目的地址形态列全。一个栏目通常至少包含以下几类地址:栏目首页、分页地址、筛选或排序参数地址、该栏目下所有内容页地址,以及可能存在的栏目级标签页或聚合页。只盯着栏目首页,会漏掉大量仍然有效的下级入口。
假设一个栏目路径为 /guide/,它可能同时存在 /guide/page/2/、/guide/?sort=new、/guide/topic-a/ 这类地址。处理方式取决于这些地址是否还有独立价值:如果它们只是栏目的浏览分支,通常随栏目一起下线;如果某个下级聚合页本身有稳定的外部引用和搜索需求,就要单独评估是否提升为独立栏目或改挂到新路径,而不是跟着一起删。
这一步的产出应该是一张地址清单,并标注每个地址的类型、是否有独立内容、是否有外部引用。清单不全,后面的入口排查就没有基准。
指向栏目的链接,来源通常集中在三个层面。分开查,比在后台全文搜索更快,也更不容易漏。
检查栏目页模板、内容页模板、列表模板中写死的链接。面包屑、侧边栏栏目导航、页脚栏目导航、上一篇/下一篇的栏目归属链接,往往都在模板里。这类入口的特点是:改一处,全站同类页面同时变化。因此要先确认模板是否被多个栏目共用,避免改一个栏目影响其他栏目。
导航菜单、推荐位、专题模块、相关栏目模块,通常存在数据库或配置文件中,而不是模板文件里。删除栏目后,这些配置项可能仍然保留旧地址,前台表现为空链接、404 或跳回首页。需要逐项核对菜单项、推荐位配置和任何按栏目 ID 取内容的模块。
正文、摘要、自定义字段里手动插入的超链接,是最容易被忽略的一类。它们不随模板变化,也不在导航配置里。对这部分,可以按栏目路径做一次站内搜索或数据库查询,把包含该路径的正文记录列出来。注意区分“指向栏目首页”和“指向栏目下具体文章”两类:前者需要处理,后者如果文章本身保留,链接通常仍然有效。
后台搜索只能覆盖自己站内的数据,抓取结果能反映实际输出的页面里还有哪些链接。做法是:在删除前,对全站做一次链接抓取,筛出所有指向该栏目路径的链接,并记录来源页面地址。
这里要说明一个判断边界:抓取量下降、某个路径的引用数归零,都不能单独证明入口已经找齐。可能的原因包括抓取范围没覆盖到登录后页面、JavaScript 渲染的链接没被采集、抓取工具对参数地址做了归一化,或者部分页面本来就没被收录。因此抓取结果应当和后台搜索、模板排查互相印证,三者一致时才能认为入口基本找齐。
得到来源页面清单后,按来源类型分组:导航类、正文类、列表类、外部类。分组的意义在于决定处理动作——导航类必须改,正文类可以逐条判断,外部类通常只能通过跳转承接。
入口找齐之后,处理方式取决于两个条件:该入口指向的栏目是否还有等价内容,以及这个入口本身是否还有用户价值。
一个具体的动作示例:假设某栏目 /old-topic/ 整体并入 /new-topic/。先在模板层把面包屑和侧边栏中指向 /old-topic/ 的链接改为 /new-topic/;再在导航配置中替换菜单项;然后在正文数据中把指向栏目首页的链接替换为新地址,指向具体文章的链接保持不变;最后对 /old-topic/ 及其分页地址设置指向新栏目的跳转。做完这一步后,下一步是重新抓取一次,确认站内不再有指向旧栏目首页的链接,同时确认新栏目地址可正常访问。
这个顺序会影响后续判断:如果先删栏目再改链接,抓取时会同时出现大量错误地址和正常地址,难以区分哪些是漏改的入口;先改链接再删栏目,抓取结果更干净,剩下的错误地址就是真正需要补处理的入口。
删除栏目并处理入口后,通常会观察该路径相关页面的访问和抓取变化。这里要避免把变化直接归因于本次操作。季节波动、整体搜索需求变化、抓取频次本身的波动、数据采集口径调整,都会影响同一组数字。
可行的做法是:在改动前保存一份基线,记录该栏目及其下级页面的访问来源构成和抓取覆盖情况;改动后按相同口径再取一次。比较时重点看结构变化,例如原本落到旧栏目的站内点击是否转移到了新栏目,而不是只看总量升降。如果旧路径的访问降到接近零,而新路径没有相应承接,说明入口改指向可能不完整或新栏目承接能力不足,需要回到入口清单继续核对。
整个流程的核心不是“把栏目删掉”,而是把栏目当作一组地址,先枚举入口,再按内容是否迁移决定处理方式,最后用一次抓取和一次数据对比确认没有遗漏。入口找齐的标志,是站内不再有指向已删除栏目首页的有效链接,且外部引用有明确的承接地址。