识别主域名配置冲突,核心是找“同一件事被两处以上规则同时定义,且结论不一致”的地方。最常见的误解是:只要把首选域名写进某个设置项,冲突就自动消失。实际上,主域名选择涉及重定向、规范标签、站点地图、robots.txt、内链和服务器响应等多个层面,任何一层表达出不同的首选域名,都会形成冲突。下面按可执行的检查顺序说明。
不是所有异常都叫配置冲突。以下四类现象指向不同原因,需要分别对待:
注意:robots.txt 的限制只影响抓取,不等于可靠的索引移除;站点地图也不保证收录。判断冲突时,重点看信号是否指向同一个主机名,而不是看某个文件是否“生效”。
最直接的起点是检查服务器响应。用命令行工具分别请求各个候选域名,观察状态码和 Location 头:
curl -I http://example.com
curl -I https://example.com
curl -I https://www.example.com
把结果整理成表格,逐行记录:请求的协议与主机名、返回状态码、是否跳转、跳转到哪里、最终落地域名。判断规则如下:
适用条件:此方法适用于你能直接发起请求、且服务器未屏蔽命令行访问的情况。如果服务器对命令行返回 403,改用浏览器开发者工具的网络面板查看响应头,判断逻辑相同。
服务器层收敛后,还要检查页面自身发出的信号。打开几个代表性页面,查看源代码中的 canonical 标签、Open Graph 的 URL、以及页面内绝对链接使用的主机名。一个常见冲突是:canonical 写的是 https://www.example.com/page,但导航菜单里的链接全部指向 https://example.com/page。这会让抓取工具收到两套首选域名信号。
检查项清单:
判断结果:只要上述任意一项与首选域名不同,就属于需要修正的冲突。修正顺序建议先改服务器跳转,再改页面 canonical,最后统一内链和站点地图,因为服务器层决定了实际可访问的版本。
如果项目经历过域名迁移或协议升级,旧配置可能仍残留在 CDN、反向代理或应用配置文件中。这类冲突不能靠猜测“通常出现在某处”来定位,而应逐层核对当前实际生效的规则:查看 CDN 后台的重定向规则、Web 服务器的配置文件、应用框架的路由或中间件设置。任何一层如果仍把旧域名设为目标地址,就会与新的首选域名冲突。
对于无法确认当前是否仍生效的旧规则,处理方式是先记录其存在,再通过实际请求验证它是否被触发。例如,请求旧域名并观察是否跳转到新域名;如果跳转目标仍是旧域名自身,说明该规则需要更新或移除。
完成冲突识别和修正后,下一步是选定唯一首选域名,并对全站做一次回归检查:重新请求所有候选域名,确认只有首选域名返回 200,其余全部一跳跳转到首选域名;抽查页面 canonical 与内链主机名是否统一。把这次检查的结果记录下来,作为后续变更的对照基准。如果项目使用多个搜索引擎,需分别核查各搜索引擎对首选域名的处理情况,不同搜索引擎的支持和表现需要分开验证。