先给结论:不要试图让robots.txt去“兼容”大小写,而应把URL路径在进入robots匹配前统一映射为一种规范形式,并让服务器实际提供的路径与这种形式一致。否则在样本阶段看似正常的规则,一旦路径数量、目录层级或部署方式变化,就会批量失效。
统一映射的前提,是判断问题出在哪一层。两种条件对应完全不同的处理方式。
/Images/与/images/返回不同内容或不同状态码。此时robots规则只能覆盖实际存在的那个路径,不能靠一条规则同时代表两者。判断依据不是看某一条规则是否命中,而是比较同一资源在不同大小写形态下的HTTP状态与响应内容。如果状态码和内容一致,问题更偏向条件B;如果状态码或内容不同,问题属于条件A。这个区分决定了下一步是改服务器映射,还是改链接输出。
当服务器区分大小写时,常见误区是写多条大小写变体规则来“兜底”。这种做法只在变体数量有限时成立;一旦目录名、文件名、语言前缀或版本号参与进来,组合数量会迅速膨胀,规则维护成本高于收益。
更稳妥的动作是让服务器把非规范大小写路径301跳转到规范路径。例如假设站点约定全部小写,那么访问/Images/a.jpg时返回301到/images/a.jpg。执行后要验证跳转链是否只有一跳,以及最终URL是否与robots规则中写的路径完全一致。如果跳转链过长或最终URL仍带大写,robots匹配仍会落在错误形态上。
这一步的结果会直接影响下一步:只有最终URL稳定为规范形式,才值得在robots.txt中写对应规则;否则应先修跳转,而不是继续加规则。
如果服务器不区分大小写,问题通常来自输出层。此时应统一内部链接、站点地图、分页与筛选参数中的路径写法,让抓取入口只产生一种形态。动作上可以先抽取站点地图和主要导航中的URL,按路径段比对大小写,找出混用点,再统一改为规范形式。
需要明确边界:站点地图不保证收录,robots.txt的抓取限制也不等于可靠的索引移除。因此统一映射的目标是让规则可预测,而不是承诺某种抓取或收录结果。若某类URL同时出现在站点地图和广告落地页中,应分别核查,搜索引擎、平台推荐和广告渠道对路径的处理并不相同。
个别样本成立,不代表规模化后仍成立。常见例外有三类。
/ZH/与/zh/并存时,统一映射需要先确认业务上是否真的指向同一内容。验证方式是抽样覆盖不同层级、不同前缀和不同入口来源的URL,分别记录最终URL、状态码与robots匹配结果。若某一类样本出现例外,应把它视为独立条件处理,而不是直接推广到全站。
按这个顺序执行后,如果最终URL仍不稳定,说明问题在映射层而非规则层,应回到第一步继续收敛,而不是继续追加robots条目。