识别配置互相冲突,核心方法是把影响百度抓取和收录的几类设置逐项列出,再检查它们对同一个URL给出的指令是否一致。只要出现“一个地方允许抓取、另一个地方阻止抓取”或“一个地方提交收录、另一个地方要求移除”,就属于冲突。下面用一个假设例子说明排查步骤。
假设某站点有一条商品页 https://example.com/item/1001,同时存在以下配置:
Disallow: /item/,禁止抓取整个目录;<meta name="robots" content="noindex">;这三项配置对百度给出的信号是矛盾的:robots.txt 阻止抓取,meta noindex 要求不索引,sitemap 又主动提交希望收录。此时百度无法按预期快速收录该页,因为抓取入口和索引指令不一致。这类情况就是典型的配置冲突。
很多冲突来自把两个层级混为一谈。robots.txt 控制的是爬虫能否抓取URL,它不等于可靠的索引移除手段。即使robots.txt禁止抓取,页面仍可能因为外部链接等因素出现在索引中,只是百度无法读取页面内容来判断。而 <meta name="robots" content="noindex"> 是页面级索引指令,需要爬虫能够抓取到该页面才能生效。如果robots.txt已经禁止抓取,noindex 往往读不到,二者叠加反而让状态更混乱。
判断方法:先确认百度是否能抓取该URL。若不能抓取,优先解决抓取问题;若能抓取,再检查页面级索引指令是否与提交行为一致。
可以按下面的检查项逐条核对,每项都问“它想让百度做什么”:
检查结果分三种:全部允许抓取且允许索引,属于一致;任一环节阻止抓取或索引,而其他环节又要求收录,属于冲突;全部阻止,属于一致地不收录。只有第一种才符合“希望被快速收录”的目标。
方案一:保留收录目标,解除阻止项。 适用于该页面确实需要被百度收录的情况。做法是修改robots.txt允许抓取、移除noindex、确认canonical指向自身、保留sitemap提交。修改后需要等百度重新抓取,不能保证立刻生效。
方案二:放弃收录,统一为阻止。 适用于页面涉及隐私、重复内容或已下线的情况。做法是保留robots.txt禁止抓取或保留noindex,同时从sitemap中移除该URL,并停止提交。注意robots.txt的抓取限制不等于可靠的索引移除;如果页面已被收录,仅靠robots.txt不一定能让它从索引中消失。
选择依据只有一条:这个URL最终要不要出现在百度搜索结果里。要,就统一为允许;不要,就统一为阻止。最忌讳的是“一边提交、一边阻止”。
调整配置后,按以下顺序复查,避免引入新冲突:先看robots.txt是否还拦截目标路径;再看页面meta是否残留noindex;然后确认canonical没有指向其他URL;最后检查sitemap是否仍包含该URL且与当前目标一致。四项都指向同一方向,才算冲突已解除。HTTPS、页面速度等因素不在此冲突判断范围内,不要把它们和抓取索引指令混在一起判断。
下一步:挑出你站点里最想被百度收录的一条URL,把它的robots.txt状态、页面meta、canonical和sitemap记录四项写在同一行里对比,先找出方向不一致的那一项再动手修改。