结论先说:旧地址没有完全等价目标时,不要一律重定向到首页,也不要因为找不到对应内容就全部返回404。正确做法是先按旧URL的语义分组,再为每组选择“逐条映射、同类归并或明确下线”中的一种,并把选择结果写进可核对的映射表。这样做的原因是,三种处理方式对用户和搜索引擎传递的信号完全不同,混用会让后续排查失去参照。
迁移后常见的矛盾是:运营看到旧文章地址还能打开,认为“已经处理好了”;技术同事抓取后发现它跳到了首页,认为“这属于软性不相关跳转”。两种判断都基于同一个事实——旧地址有响应,但他们对“响应是否等价”的标准不同。
第一种解释是:旧地址确实有等价目标,只是目标URL变了。比如旧站的文章 /blog/old-post/ 在新站对应 /insights/old-post/,标题、正文、意图基本一致,只是路径结构调整。这种情况下301是合适的,等价性成立。
第二种解释是:旧地址没有等价目标,只是被“兜底规则”接住了。比如服务器配置里写了“所有未匹配路径跳首页”,于是旧地址返回301到首页。表面看没有404,实际上用户想找的内容不存在了,搜索引擎也无法把旧地址的权重传递到相关页面。这种跳转不是等价处理,而是掩盖了缺失。
区分这两种解释的证据不是“状态码是不是301”,而是目标页与旧页的主题是否一致。可以抽查旧地址的标题、正文主旨和主要内链,再看目标页是否承接了同样的意图。如果目标页只是首页或栏目页,而旧页是具体文章,等价性通常不成立。
与其逐个争论,不如先把旧URL按可核对的特征分组。分组依据是:旧页是否还有独立价值、新站是否有同主题页面、旧页是否已被外部引用。分组后,处理方式自然浮现。
这里有一个实际动作:先导出旧站URL清单,用脚本或表格批量比对标题与正文关键词,人工复核边界案例。完成这一步后,你会得到一张带分组的映射表。这张表会直接影响下一步——如果“无等价目标”占比很高,说明内容迁移本身不完整,应先补内容再谈重定向;如果“有等价目标”占比高,重点就转向验证301是否逐条生效。
假设旧站有 /guide/server-move/,新站没有这个页面,但服务器配置把所有未匹配请求301到首页。此时可以这样核对:
如果第2、3步都不匹配,那么这条301属于兜底跳转,不是等价处理。证据成立后,下一步不是继续加跳转规则,而是回到内容层:要么为新站补一个对应页面,要么把旧地址归入明确下线组。这个顺序很重要,因为先改跳转、后补内容,会导致映射表反复失效。
有人会用“robots.txt里屏蔽了旧目录”或“站点地图里没有旧地址”来证明处理正确。这两个信号都不够。robots.txt限制抓取,不等于旧地址已经从索引中移除;站点地图不包含某URL,也不保证它不会被收录或被访问。它们只能说明“不希望被抓取或不想主动提交”,不能替代逐条映射的等价性判断。
同样,迁移后启用HTTPS是常规动作,但它不保证旧地址的等价处理正确,也不保证排名或安全无漏洞。把HTTPS当成迁移完成的标志,会掩盖旧地址映射缺失的问题。真正需要核对的是:旧地址的响应是否指向主题一致的目标,以及该目标是否可正常访问。
当多个角色对“旧地址是否处理好了”意见不一时,最有效的做法是把争论变成可核对的项目。具体动作是:建立一张映射表,字段至少包含旧URL、处理方式、新URL、判断依据、复核状态。然后按分组抽样,每组抽若干条实际抓取,记录状态码和落地页主题是否匹配。
抽样结果会影响下一步:如果“有等价目标”组出现落地页不匹配,说明映射表本身有误,需要先修正映射再全量执行;如果“无等价目标”组被错误地跳到了首页,说明兜底规则覆盖过宽,应先收窄规则再复核。完成这两步后,才适合讨论是否提交新的站点地图或调整抓取限制。整个过程中,判断依据要落在页面主题和用户意图上,而不是只看状态码是否为301。