识别配置互相冲突,核心不是看某一条规则本身对不对,而是看同一批URL在不同配置源里是否得到矛盾指令。搜索引擎收录统计通常以已收录、未收录、抓取异常等分组呈现;如果同一URL在robots.txt、页面meta、HTTP响应头、站点地图、canonical中分别收到“允许抓取”“禁止抓取”“可收录”“不要收录”等不同信号,统计结果就会抖动或长期偏离预期。判断冲突要靠逐URL对照,而不是只看汇总数字。
多人协作中最容易出现的误判,是看到站点地图里列了某批URL,就认为搜索引擎收录统计里应该出现它们。站点地图只是提交线索,不保证收录;它和robots.txt、页面级noindex之间完全可能互相矛盾。例如站点地图包含/product/1001,但该页返回的HTML里有<meta name="robots" content="noindex">,同时robots.txt又允许抓取。此时统计里可能看到“已发现但未收录”,也可能短暂出现后消失,不能据此断定是统计出错。
另一类误解是把robots.txt的Disallow当成移除收录的手段。robots.txt限制的是抓取,不是索引移除;如果页面已被收录,再禁止抓取,搜索引擎无法读取页面上可能存在的noindex,反而可能继续保留旧索引。要移除收录,应优先让页面可抓取并返回明确的noindex或删除后返回410,而不是只加Disallow。
先选10到30个代表性URL,覆盖已收录、未收录、抓取异常三类。对每个URL记录以下字段,字段值必须来自实际响应,不能凭记忆填写:
<meta name="robots">,内容是noindex还是index。X-Robots-Tag,内容是否与meta一致。把结果并排看,冲突会直接暴露。比如某URL在站点地图中、canonical指向自己,但响应头写了X-Robots-Tag: noindex,而HTML meta写的是index,这就是同一页面内两处指令矛盾。再比如canonical指向A,但A被robots.txt禁止抓取,搜索引擎无法确认A的内容,收录统计就会把B和A的关系处理得不可预测。
不同配置源的约束力并不相同,但不存在一套对所有搜索引擎都完全一致的固定优先级。可以按以下顺序做初步判断,再分别到目标搜索引擎的官方文档核对:
判断结果要写进交付文档:哪个URL、哪两个配置冲突、以哪个为准、由谁改、改完如何验证。不要只写“已优化收录”,否则下一次统计波动时无法复盘。
如果冲突来自robots.txt误封,修改后需要等搜索引擎重新抓取,时间不受控制,不能承诺固定天数。如果冲突来自noindex与canonical并用,先确定该URL到底要收录还是不要收录:要收录就移除noindex并让canonical自指;不要收录就保留noindex,同时把它从站点地图移除,避免提交与指令矛盾。
验证时,用同一批URL在修改前后各拉一次收录统计,按分组对比变化,而不是只看总数。若某URL状态从“已发现未收录”变为“已收录”,还要确认它的canonical是否指向预期地址。若状态持续不变,先检查抓取是否仍被限制,再检查响应头与meta是否还有残留矛盾。
下一步:建立一份URL配置对照表模板,把robots.txt、状态码、meta、X-Robots-Tag、canonical、站点地图六列固定下来,每次发布或改版后抽检一批URL,冲突在交付前就能被发现。