在折腾博客的过程中,我们经常会将同一个博客部署到多个平台(比如主站用 EdgeOne,备用站用 Vercel、Cloudflare 或 Netlify)。这样做看着就(具备极强的容灾能力)很高级的样子,但如果配置不当,可能会给 SEO 带来严重的挑战。
由于搜索引擎(谷歌、必应等)非常讨厌“重复内容”,如果你在多个域名下部署了完全一样的博客:
- 权重分裂:搜索引擎会认为这是几个不同的站点,导致你的搜索排名被分散。
- 收录混乱:搜索引擎可能会收录你的备用站点(如
xxx.vercel.app),而不是你的主域名。
本文将分享如何通过合理配置 baseURL、环境变量,来实现“多端部署,权重归一”的完美 SEO 方案。本文以 极简(hugo-jijian)
主题为例,讲解如何在多平台部署中优化 SEO 表现。不保证其他主题的配置方法类似,可自行参考。
步骤一:固定 baseURL
1. 修改 hugo.yaml
将 baseURL 固定为你的主域名:
|
|
2. 为什么不再推荐分平台修改 HUGO_BASEURL环境变量?
过去有些教程建议在每个平台上设置对应的 HUGO_BASEURL 环境变量,但这会导致生成的 canonical(权威链接)指向备用域名。
固定 baseURL 的好处:无论用户从哪个镜像站访问,HTML 源码里的 canonical 始终指向 ihcll.cn。这告诉搜索引擎:“这些镜像站只是我的化身,请把权重都给主站。”
步骤二:环境变量的妙用
虽然 baseURL 建议全局固定,但某些第三方验证码和爬虫规则则建议按需配置。
1. 必应 (Bing) 站点验证
通常你只需要在主站验证。如果你在 hugo.yaml 里硬编码了 SiteVerificationTag,它会出现在所有镜像站。
推荐做法:
- 在
hugo.yaml中将该项留空或者干脆不写。 - 然后仅在 你主域名网站 的部署面板中,添加环境变量:
HUGO_PARAMS_ANALYTICS_BING_SITEVERIFICATIONTAG = "你的验证码",这样就达到了备用站点没有这个验证码,但是你的主站有验证码。
2. 禁止备用站点被收录
我们只需要主域名被收录,不希望 Vercel、Cloudflare 等的域名被搜到?
推荐做法:
- 在备用平台(Vercel/Cloudflare)添加环境变量:
HUGO_PARAMS_ROBOTSNOINDEX = true,主站不要添加这个,因为主站由hugo.yaml中enableRobotsTXT: true的配置决定了。
该操作需要确保你的主题
head.html支持该参数:
|
|
上述操作,在极简(hugo-jijian)主题中已经完成了。
步骤三:主题链接相对化
为了防止在 Vercel 预览站上点击菜单时突然跳回主站,我们需要将主题中的内部链接改为相对路径。
修改建议:
- 将导航菜单中的
absLangURL改为relLangURL。 - 将文章链接从
.Permalink改为.RelPermalink。 - 将 Favicon 等资源链接从
absURL改为relURL。
这样做的好处:
- 用户体验:不管在哪个域名下访问,点击链接都会留在当前域名。
- SEO 依旧完美:因为
head.html里的canonical依然是绝对路径指向主站。
极简(hugo-jijian)主题已经完成了
链接相对化的修改。
总结
| 配置项 | 单站点建议 | 多站点 (SEO 优化型) |
|---|---|---|
baseURL |
设置为主域名 | 固定为主域名,不随平台变动 |
enableRobotsTXT |
true | 主站允许,备用站环境变量禁止 |
Bing 验证 |
直接写在 hugo.yaml | 仅在主站设置环境变量 |
| 主题链接 | 绝对或相对均可 | 强烈建议使用相对路径 |
通过以上配置,你的博客将具备极强的容灾能力,同时在搜索排名上保持绝对的权威性。
加载评论中...
哎呀!Giscus评论模块加载失败啦~
Giscus是基于Github Discussions的,或许当前网络无法访问Github哦!