先给有条件的结论:如果大小写差异只出现在同一站点的内部链接与站点地图之间,优先做“统一映射到实际存在的物理路径”,而不是用重定向把错误大小写全部兜住。只有当错误大小写已被外部大量引用、且无法批量修正时,才用重定向作为兼容层。判断依据是:服务器文件系统是否区分大小写,以及错误路径是否已经进入被抓取和展示的链路。
大小写问题常常被误判成“爬虫控制失效”。实际要分三层看:文件系统层、URL 规范层、链接生成层。
/Guide/Page.html 与 /guide/page.html 是两个不同文件;Windows 服务器通常不区分。先做一次抓取或日志抽样,记录每个大小写变体返回的状态码和最终 URL。这一步的动作结果决定下一步:如果错误变体返回 404,说明需要修正链接源;如果返回 200,说明存在重复内容风险,需要做规范化。
适用条件:错误大小写主要来自站内模板、CMS 字段或站点地图生成器,外部引用很少。代价是需要改模板或生成逻辑,并重新生成站点地图。
动作:把链接生成规则固定为小写,或在输出前做一次路径规范化。结果:新产生的链接不再出现大小写变体,但已抓取的旧变体仍可能在缓存中保留一段时间。下一步应检查服务器日志,确认旧变体请求是否下降。
适用条件:错误大小写已被外部站点、用户收藏或历史广告大量引用,批量改外部链接不可行。代价是每个错误变体都要维护一条重定向规则,规则过多会增加服务器匹配开销,也容易遗漏。
动作:把已知错误大小写 301 到正确路径。结果:用户和爬虫都能到达正确页面,但重定向链不能过长。下一步应定期审查重定向表,把不再被请求的规则移除。
假设站点同时存在 /A/B.html 和 /a/b.html 两个真实文件,内容不同。此时无论修正源头还是重定向,都不能简单统一,因为统一映射会覆盖其中一个真实页面。这种情况下必须先确认两个文件是否应该合并;如果不应合并,就要在 URL 设计上明确区分,而不是强行大小写归一。
另一个反例:服务器本身不区分大小写,但 CDN 或反向代理区分。此时源站测试正常,线上仍可能出现 404。判断方法是分别从源站和 CDN 节点请求同一路径,比较状态码。这个动作的结果决定修复位置在源站还是边缘配置。
注意:robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。大小写统一映射解决的是路径可达性和重复内容问题,不是收录承诺。不同搜索引擎对大小写路径的处理和规范化支持需要分别核查。
完成映射后,下一步不是立刻全量提交,而是先取一组包含大小写变体的 URL,分别用带和不带大写的形式请求,记录状态码和最终 URL。如果错误变体稳定跳到正确路径,且正确路径返回 200,说明映射生效。如果错误变体仍返回 200 且内容与正确路径相同,说明规范化未生效,需要检查服务器配置或 CDN 缓存。根据这个结果再决定是扩大规则范围,还是回到源头修正链接生成逻辑。