核心做法是先把大小写差异收敛到一个唯一的规范路径,再把旧路径通过服务器端重定向映射到它,并确保站内链接、站点地图和规范标签都指向这个规范路径。百度在抓取和去重时通常把 URL 视为区分大小写的字符串,因此 /Page/A 与 /page/a 可能被当成两个资源。当旧系统或旧合作关系退出、只保留有价值的部分时,这种分裂会直接消耗抓取配额并稀释页面信号。
拿你手里那个已知有价值的页面作为对象,把它的实际请求路径逐字记录下来,包括目录名和文件名的每个字母大小写。然后在服务器日志或抓取记录里查找同一内容是否以另一种大小写被访问过。若两种写法都返回 200,说明服务器把它们当成了两个可访问资源;若其中一种返回 301、302 或 404,说明映射已经部分存在但可能不完整。
需要区分两种成因:一是文件系统本身区分大小写(多数 Linux 环境如此),上传时生成了两份文件;二是应用路由或 CDN 规则做了不区分大小写的匹配,但输出链接时保留了原始大小写。前者需要在文件层清理,后者只需要统一链接生成规则。
规范路径应当优先选择已经被外链引用、已经有抓取记录的那个版本,而不是凭命名习惯另选一个。确定后,用直接请求确认它返回 200,且返回内容与预期页面一致。接着检查这个路径是否被 robots.txt 允许抓取,以及是否被 noindex 之类的指令阻挡。
这里有一个容易误判的点:robots.txt 的抓取限制并不等于可靠的索引移除。即使你屏蔽了错误大小写的路径,已经进入索引的旧 URL 仍可能保留一段时间,因此不能用屏蔽代替重定向。
在 Web 服务器或应用层为每个非规范的大小写变体配置 301 重定向,目标指向规范路径。对大小写差异,常见的做法是写一条规则,把匹配到的旧写法整体改写,而不是逐个文件手工添加。配置完成后,用命令行或抓取工具请求旧路径,确认返回 301 且 Location 头指向规范路径,再确认规范路径返回 200。
假设一个情境:旧系统生成的是 /News/Detail/42,新系统只保留 /news/detail/42。若只在新系统里删除旧目录,旧 URL 会变成 404,已积累的外部链接价值就断了。配置 301 后,抓取和用户都会被带到新地址,这是保留价值部分的关键动作。这个动作的结果会直接决定下一步:只有重定向生效后,才值得去更新站内链接和站点地图。
重定向只解决入口问题,如果站内仍然大量输出旧大小写链接,抓取器会持续发现旧路径。因此需要检查导航、正文内链、分页、面包屑和站点地图中的 URL,把它们统一改为规范路径。同时确认页面的 canonical 标签指向规范路径,避免同一内容出现多个自指规范。
站点地图不保证收录,它只是发现渠道之一。把规范路径放进站点地图有助于集中信号,但不能替代重定向和内部链接的一致性。若站点地图里同时存在两种大小写,反而会强化分裂。
重定向和链接更新完成后,观察一段时间内旧路径的请求是否逐步转向规范路径。请求量下降或归零不能单独证明处理正确,因为还可能是抓取频率变化、日志采样或外部链接自然衰减造成的。更可靠的证据是:旧路径返回 301 而非 200,规范路径的抓取和展示保持稳定。
当确认旧路径不再返回 200、站内不再输出旧写法后,再考虑是否移除服务器上残留的重复文件。移除前保留一份清单,记录哪些旧路径曾被重定向,便于后续排查。若某个旧路径仍有外部链接持续访问,保留重定向比直接删除更稳妥。