先给结论:只要旧地址承载过可被访问的内容、且新站找不到语义等价的目标,就不要把 301 一律指向首页。更稳妥的做法是分三步——先判断旧页是否还有独立检索意图,再决定保留一个最小可用页、做 301 到最近似的栏目页,还是用 410 明确下线。判断依据来自旧页本身,而不是迁移工具给出的默认映射。
打开你手里的旧 URL 清单,逐条问一个问题:这个地址当初解决的是不是一类可以被单独搜索的需求?例如“某型号配件更换周期”与“配件总览”不是同一类需求,前者有独立意图,后者只是入口。按这个标准分成三组:
分组动作会直接决定下一步:分错组,后面所有映射都会变成把流量倒进不相关页面。
成立条件是:旧页的需求是栏目页的子集,且栏目页能让访问者继续找到答案。比如旧页是“A 系列配件更换周期”,新站只有“A 系列配件”总览,且总览里明确写了更换周期。若总览只列了购买链接,就不成立,因为访问者落地后找不到原问题的答案。
成立条件是:这类旧地址数量可控、且对应的需求仍有业务价值。最小可用页不需要复杂模板,一段说明加几条内链即可。它的作用是让旧地址继续有落点,同时通过内链把访问者导向新结构中的相关页面。代价是维护成本,所以只对确有意图的地址这样做。
成立条件是:旧页内容已彻底失效,业务上不再提供,且没有近似主题可承接。此时用 410 比把流量导向首页更诚实。需要注意,robots.txt 的抓取限制不等于可靠的索引移除,它只阻止抓取,不保证旧地址从索引中消失;要移除索引,应结合页面本身的响应状态来处理。
假设旧站有 /old/part-a-cycle,新站结构里只有 /parts/a/ 总览和 /parts/ 首页。检查 /parts/a/ 后发现它只列了配件名称和购买入口,没有更换周期说明。此时:
/parts/a/ 回答不了这个问题。/old/part-a-cycle 的最小可用页,并在页内加入指向 /parts/a/ 和 /parts/ 的内链;若业务上已不再提供该信息,则返回 410。这个动作的结果会影响下一步:保留最小页后,你需要把它纳入站内链接结构,让它被相关新页引用;返回 410 后,则应在内链中移除指向旧地址的链接,避免把访问者送到已下线的页面。
处理完旧地址后,检查新站内是否还有指向旧地址的链接。如果旧地址做了 301,链接可以暂时保留,但更干净的做法是直接改成新目标;如果旧地址返回 410,必须把内链改到仍然有效的页面。站点地图不保证收录,所以不要用“已提交站点地图”当作旧地址处理完成的依据。HTTPS 也不保证安全无漏洞或排名,因此不要把它当作迁移处理的替代项。
最后用一条规则收口:旧地址没有等价目标时,先问它是否还承载独立需求;承载就保留最小落点或找近似承接页,不承载就明确下线。把这条规则和站内链接清理一起做,内链结构才不会在迁移后留下断点。