让Hugo模板404页面不显示rel="canonical"标签并向搜索引擎声明不要抓取404页面

🕘
⏱️
👁️ * 阅读

缘由

收到 Google Search Console 的报错, 404.html 「網頁未編入索引:轉址式 404」。

原则上 404 页面是应该屏蔽搜索引擎的并且不应作为某个页面的规范页面rel="canonical"

以下代码对于404页面会将404作为rel="canonical"的问题进行了优化。

hugo-theme-stack 主题404页面 canonical 标签优化

打开在主题模板目录中 head.html 文件,打开后找到<link rel="canonical" href="{{ .Permalink }}">并将其替换为以下内容。

hugo-theme-stack 主题所在的路径themes\hugo-theme-stack\layouts\partials\head\head.html,其他主题也差不多,如果找不到可以直接搜索 <link rel="canonical" href="{{ .Permalink }}">

1
2
3
4
5
{{- if eq .Kind "404" -}}
<meta name="robots" content="noindex, nofollow">
{{- else -}}
<link rel="canonical" href="{{ .Permalink }}">
{{- end -}}

代码逻辑解说

当前页面如果是 404 页面就插入 <meta name="robots" content="noindex, nofollow"> ,告诉搜索引擎不要抓取和索引该页面。

如果不是404页面就插入,声明当前页面为规范页面,或者为相似内容页面指定规范页面。

也可以移除<meta name="robots" content="noindex, nofollow">这一行,因为有时候可能因为配置失误导致一些URL出现了404

转载请注明转自:一极乐https://yijile.com/zh/hugo-template-404-page-remove-rel-canonical-tag/

CC BY-NC-SA 4.0 声明
本文采用 CC BY-NC-SA 4.0方式授权。
转载请注明出处和本文链接,说明是否进行修改,不得用于商业用途,使用相同方式共享。