检查移动端与桌面端的域名规范化差异,核心是确认两个版本在 canonical、重定向、内链和 robots 指令上是否指向同一个首选域名。如果移动端页面把规范地址指向 m.example.com,而桌面端指向 www.example.com,搜索引擎会收到互相矛盾的信号。适用前提是:你已确定一个首选域名,并且移动端与桌面端提供相同或等价内容。验收信号是:同一路径在两个端上返回的规范地址完全一致,且不存在规范地址又跳转到另一个规范地址的链条。
移动端与桌面端的差异检查,第一步不是打开页面看排版,而是确认站点属于哪种形态。
www.example.com,移动用 m.example.com。这种情况下两端各有独立 URL,必须逐项核对规范信号是否互指一致。判断方法很简单:用桌面浏览器和手机浏览器分别打开同一路径,查看地址栏域名是否相同。如果域名不同,就按独立移动站处理;如果域名相同但 HTML 不同,就按动态分发处理。
多人协作时,建议把检查命令写进交付清单,避免每个人凭印象判断。以下命令可在本地终端执行,把示例域名替换为实际域名。
检查桌面端返回的 canonical:
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" -s https://www.example.com/page | grep -i canonical
检查移动端返回的 canonical:
curl -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)" -s https://www.example.com/page | grep -i canonical
如果两端域名不同,再分别请求移动子域:
curl -sI https://m.example.com/page | grep -i -E "location|HTTP"
判断结果时注意三点:第一,两端 canonical 必须指向同一个首选域名下的同一路径;第二,canonical 指向的地址不应再返回 301 或 302 到第三个地址;第三,如果移动端页面 canonical 指向桌面版,桌面版又 canonical 回移动版,就形成了循环,必须打破。
域名规范化不只是 canonical 标签的事。移动端和桌面端的重定向规则、站内链接、站点地图如果各说各话,同样会造成规范化混乱。
http://example.com/page,观察是否都最终到达 https://www.example.com/page。如果移动端多跳一次到 m.example.com 再跳回,就应简化。m. 和非 www 版本。内链是爬虫发现 URL 的主要途径,混用会稀释规范化信号。完成修改后,不要只看某一端页面是否正常打开。按以下清单逐项验收,每项都要有桌面端和移动端的对比记录。
m. 或非 www 版本。如果以上任何一项在两端结果不同,就先修复差异再交付。多人协作时,建议把这份清单作为合并请求的检查项,由另一人复核后再上线。
把“桌面 UA 请求 → 移动 UA 请求 → 对比 canonical → 检查重定向 → 检查内链与站点地图”作为固定顺序,每次改版或新增页面后重复执行。记录中至少保留请求的 URL、使用的 User-Agent、返回的 canonical 和状态码,这样出现返工时可以直接定位是哪一端、哪一步出现了分歧。