识别配置互相冲突,关键不是把 robots.txt、站点地图、canonical、noindex 挨个检查一遍,而是判断同一批 URL 上是否存在“一个配置允许抓取、另一个配置拒绝收录”的矛盾信号。百度不收录时,配置冲突的典型表现是:抓取正常但索引不增长,或者同一页面在站点地图里被提交、在 HTML 里却被 noindex 标记,又或者 robots.txt 屏蔽了某个目录、内链却大量指向该目录。判断顺序应当先确认百度是否真的抓取了目标 URL,再确认抓取到的版本上叠加了哪些限制,最后才动手改配置。
很多站点把 robots.txt 当成收录开关,认为只要没有 Disallow,百度就应该收录。实际上 robots.txt 管的是抓取,不是索引。一个 URL 可以被百度蜘蛛正常抓取,但页面里的 <meta name="robots" content="noindex"> 会明确要求不索引;反过来,robots.txt 屏蔽了抓取,百度无法读取页面内容,也就无法确认 noindex,已收录的页面可能长期保留旧快照。这两种情况方向相反,混在一起配置就会互相冲突。
还有一种更隐蔽的冲突:robots.txt 屏蔽了带参数的 URL,canonical 却指向这个被屏蔽的 URL。此时百度无法抓取 canonical 目标,也就无法把权重和索引归并过去,页面可能表现为“时有时无”或长期不收录。识别这类问题需要把规则和实际 URL 一一对应,而不是只看规则文件本身是否“写对了”。
先收集证据,再判断冲突。可以按下面顺序核对:
site: 查询目标 URL 或目录,看是否已有索引;没有索引不等于没抓取,有索引也不代表当前配置没冲突。如果日志显示百度蜘蛛抓取的是 A 版本,而 canonical 指向 B 版本,且 B 版本被 robots.txt 屏蔽,这就是已经定位的冲突;如果日志显示百度蜘蛛从未抓取目标 URL,那更可能是入口问题或抓取预算问题,不能直接归因为配置冲突。
下面这些组合在实际排查中出现频率较高,可以当作检查项:
需要强调,HTTPS 不保证安全无漏洞,也不保证排名;它只是排查配置冲突时的一个版本变量,不是收录的充分条件。
确认冲突后,不要同时改动多项规则,否则无法判断哪一项起了作用。可以按以下步骤执行:
如果目标 URL 曾经被 noindex 或 robots.txt 屏蔽过,解除限制后索引恢复需要时间,且不保证一定恢复。此时应继续用日志和抓取状态核对,而不是反复修改规则。不同搜索引擎对 robots.txt、noindex、canonical 的支持细节须分别核查,百度语境下的结论不要直接套用到其他引擎。
挑出三到五个当前不收录的代表性 URL,把每个 URL 的 robots.txt 状态、HTTP 状态码、meta robots、X-Robots-Tag、canonical 目标、站点地图是否提交、最近一次百度抓取时间填进同一张表。哪一列出现“允许抓取”与“拒绝索引”并存,那一行就是优先处理的冲突点。改完后保留修改前后的对照记录,方便下一次用同样的方法复核。