识别配置互相冲突,核心方法是把影响抓取与收录的几条链路逐项列出,再检查它们对同一URL给出的指令是否一致。常见冲突发生在robots.txt、页面meta robots、canonical、站点地图和HTTP响应头之间。只要两处指令对“能否抓取”或“是否希望收录”给出相反结论,就应视为冲突,优先按更严格的一侧排查。
要判断冲突,先要知道哪些地方能对同一个URL下指令。至少检查以下位置:
robots.txt:控制抓取,不控制索引移除。<meta name="robots">:控制是否允许索引、是否跟随链接。X-Robots-Tag响应头:作用类似meta robots,常用于非HTML文件。<link rel="canonical">:指定首选版本。把这些位置对目标URL的实际值抄到一张表里,冲突会立刻显现。例如robots.txt写着Disallow: /page-a,而站点地图里又提交了/page-a,这就是抓取与发现之间的冲突。
逐项比对时,可以按下面四组关系判断:
noindex。这是有意隐藏收录,不算错误,但若与canonical指向自身同时出现,意图就矛盾。需要强调,robots.txt的抓取限制不等于可靠的索引移除。即使禁止抓取,URL仍可能因外部链接出现在结果中。站点地图也不保证收录,它只是发现渠道之一。
按下面顺序操作,可以定位大多数冲突:
X-Robots-Tag。noindex和canonical指向自身。假设一个页面A:robots.txt允许抓取,meta robots为index,follow,canonical指向页面B,同时站点地图提交了页面A。这里的冲突在于:页面A声明自己可索引,却把首选版本让给B,而站点地图又推荐A。处理方式是明确A与B的关系——若B是正版,站点地图应提交B;若A是正版,canonical应指向A。
修改后不要只看一处。验收应满足:同一URL在robots.txt、meta robots、canonical、站点地图中的意图一致;多版本URL的canonical全部指向同一个首选版本;HTTPS、主机名、结尾斜杠的跳转方向统一。HTTPS本身不保证安全无漏洞,也不保证排名,它只是配置一致性的一个环节。
不同搜索引擎对指令的支持情况须分别核查,不能假设一处生效即处处生效。修改后应通过抓取工具或日志确认搜索引擎实际取到的版本,而不是只确认本地源码。
下一步:选一个当前最想被收录的URL,按上面的四组对照做一次完整比对,把冲突项列成清单,再决定先改哪一处。