canonical改版或迁移时应核对什么-先确认旧页到新页的指向链

📍 WDQWDWQD987AAAAA:216.73.216.141
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /aaf43df9ba76.html
📄

canonical改版或迁移时应核对什么-先确认旧页到新页的指向链

改版或迁移时,canonical 要核对的核心是:每个仍可访问的旧 URL 是否明确指向当前希望被索引的新 URL,并且新 URL 自身的 canonical 指向自己。若旧页返回 301,canonical 通常不是最优先问题;若旧页返回 200 且内容与新页重复,canonical 才成为主要控制手段。

下面用一个假设例子展开。假设某站点把 /old-guide 迁移到 /new-guide,旧页仍返回 200,页面模板却继续输出 <link rel="canonical" href="/old-guide">。这会让搜索引擎收到矛盾信号:页面内容已搬家,但页面自己声明规范版本仍是旧地址。核对时不能只看新页,必须同时看旧页、新页、跳转和站点地图。

先画清旧 URL 到新 URL 的四种状态

逐个抽样旧 URL,记录它当前返回的状态码、页面正文是否还在、canonical 指向哪里、是否出现在站点地图中。常见组合如下:

这里的关键判断是:canonical 是页面级提示,不是跳转指令。它适合处理重复内容归并,不适合替代 URL 迁移。若旧页已经不再需要,301 通常比让旧页 200 再 canonical 更直接。

核对 canonical 时必须同时检查的字段

打开页面源代码,搜索 canonical,逐项核对以下内容:

  1. 绝对地址还是相对地址:优先使用完整绝对地址,例如 https://example.com/new-guide,避免模板拼接出错。
  2. 协议与主机名:确认是 https 还是 http,是带 www 还是不带,是否与当前首选主机一致。
  3. 结尾斜杠:/new-guide 与 /new-guide/ 可能被视为不同 URL,迁移前后要保持一致。
  4. 参数与大小写:带跟踪参数的 URL 不应作为 canonical;路径大小写也要与服务器实际返回一致。
  5. 分页与筛选页:列表页第 2 页、排序参数页不要全部 canonical 到第一页,除非你确实希望它们不被单独索引。
  6. 多语言与多地区:canonical 应指向同一语言版本,不要把所有语言页都指向英文页。

一个可执行的检查方法是:抽取旧站和新站各 20 个代表性 URL,用表格记录旧 URL、状态码、canonical、新 URL、新 URL 的 canonical。若同一行出现“旧页 200、canonical 指向旧页、新页也存在”,就是需要修复的矛盾项。

常见错误:把 canonical 当成万能迁移工具

迁移时最容易出现的错误有:旧页全部 301 到首页;新页 canonical 仍指向旧域名;站点地图只提交新 URL,但旧 URL 仍可访问且未处理;模板把 canonical 写成相对路径,导致子目录页面指向错误位置。还有一种情况是旧页被 robots.txt 禁止抓取,同时又在页面里写 canonical。抓取被禁止后,搜索引擎可能无法读取该 canonical,robots.txt 的限制也不等于可靠的索引移除。

另一个常见错误是只看新页 canonical,忽略旧页。若旧页仍返回 200,且没有 canonical 或跳转,搜索引擎可能继续把旧页当作独立页面处理。此时应优先决定:旧页是保留、跳转还是移除。决定后再配置对应信号,而不是先批量加 canonical。

改版上线后的核对顺序

建议按以下顺序执行,每一步都留下可复查的记录:

如果旧页已经 301 到新页,而新页 canonical 指向自身,这通常就是清晰状态。如果旧页 200、内容重复、canonical 指向新页,也可以接受,但要确认新页没有被 noindex 或 robots.txt 阻止抓取。HTTPS 只说明传输层加密,不保证页面安全无漏洞,也不保证排名。

下一步:从旧站导出 URL 清单,按“保留、跳转、归并、移除”四类标记,再逐类核对状态码与 canonical。先处理返回 200 且内容重复的旧 URL,因为它们最容易与 canonical 配置冲突。

图1 图2

nginx