为什么我的网站有这么多“重复页面”?Semrush 提示“缺少 canonical”,该怎么办?你可能在用 Semrush 或 Ahrefs 分析网站时看到这样的提示:
“89% of your pages have no canonical links.”
或 “Duplicate pages without canonical tag.”
看起来很吓人吧?其实这是个非常常见的问题,尤其是使用 WordPress 构建的网站。
🧩 什么是 Canonical?
“Canonical 链接”(规范链接)告诉搜索引擎:
“在多个相似页面中,这个 URL 才是主要版本,请重点收录这个。”
举个例子:
https://yourwebsite.com/?p=123https://yourwebsite.com/sample-page/
这两个页面内容一样,但没有 canonical 时,Google 可能认为是重复内容,导致权重被分散、页面排名下降。
如果页面中有:
<link rel="canonical" href="https://yourwebsite.com/sample-page/" />
那就能明确告诉搜索引擎“以这个为准”。
🚨 为什么 WordPress 也会出现“没有 canonical”?
按理说 WordPress 会自动生成 canonical 标签,但有几个常见的坑:
- 主题文件中没有调用
wp_head(); - 使用了简化主题、Landing Page 模板,开发者删掉了 head;
- 使用缓存插件或自定义 SEO 插件,覆盖了系统 canonical;
- 主题的某些模板(比如 category、archive、404)没包含它。
结果就是——Semrush 一扫描,提示你几乎全站都没有 canonical。
💡 如果不想装插件,该怎么解决?
没错,你完全可以手动添加 canonical 标签,不需要安装任何“SEO 全家桶”插件,也不用忍受各种升级提示、付费功能。
步骤如下:
- 登录 WordPress 后台
- 在左侧菜单点击
外观 → 主题文件编辑器(Theme File Editor) - 打开文件 header.php(一般在“主题头部”部分)
- 在
<head>标签内加入下面这段代码:
<?php if (function_exists('get_permalink')): ?>
<link rel="canonical" href="<?php echo esc_url( get_permalink() ); ?>" />
<?php endif; ?>
- 点击“更新文件”保存即可。
✅ 如何验证是否生效?
非常简单:
- 打开你网站的任意一个页面(例如一篇博客文章);
- 右键 → “查看页面源代码”;
- 使用浏览器的搜索功能(Ctrl + F / Command + F);
- 输入
canonical;
如果能看到类似以下内容,就说明添加成功:
<link rel="canonical" href="https://yourwebsite.com/你的页面URL/" />
🧠 进阶建议
- 每个页面的 canonical 应该自指向(self-referencing),也就是指向自己;
- 分类页、分页页同样要有 canonical;
- 如果有多语言版本或 AMP 页面,canonical 更是必不可少;
- 千万别误写成 404 或跳转页,否则反而会让搜索引擎更困惑。
⚙️ 如果想进一步优化
如果你的网站结构复杂,或者经常自动生成新页面(例如商品页、标签页),那可以考虑安装轻量级 SEO 插件:
- Rank Math SEO
- Yoast SEO
- All in One SEO Pack
这些插件会自动帮你生成 canonical 标签,并允许自定义特殊页面的规范 URL。
Semrush 提示的“没有 canonical 链接”其实很好解决。
如果你不想被插件各种弹窗、升级诱导搞得心烦,只要在 WordPress 的 header.php 文件中手动加一行代码,就能让全站的页面规范化。
简单一句话:
一行 PHP 代码,解决 89% 的重复页面问题。
参考链接:
- Google 官方文档:Use canonical URLs
- 站内参考:如何优化 WordPress 网站结构以提升 SEO
