自定义 Hugo 网站地图 sitemap.xml,将相对路径改为绝对路径

我们知道网站地图对 SEO 有很重要的作用,便于主动告诉搜索引擎网站内容,以及应该爬取哪些信息。

Hugo 原生支持 sitemap.xml 网站地图,不过在某些情况下(例如部署在 Netlify)网站地图上的链接都是相对路径,导致提交网站地图到搜索引擎的 站长平台 时出现报错。

放心,我们可以自定义 sitemap.xml 解决这个问题。

Hugo 网站地图 sitemap.xml

首先,检查主题 /layouts/_defaults 路径下是否有 sitemap.xml 这个文件,如果没有的话就新建一个,建好的文件路径为:/layouts/_defaults/sitemap.xml

接着修改 sitemap.xml 的内容:

{{ printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  {{ range .Data.Pages }}{{ if ne .Params.sitemap_exclude true }}
    <url>
      <loc>https://thewindows10.com{{ .Permalink }}</loc>{{ if not .Lastmod.IsZero }}
      <lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ end }}{{ with .Sitemap.ChangeFreq }}
      <changefreq>{{ . }}</changefreq>{{ end }}{{ if ge .Sitemap.Priority 0.0 }}
      <priority>{{ .Sitemap.Priority }}</priority>{{ end }}{{ if .IsTranslated }}{{ range .Translations }}
      <xhtml:link
                  rel="alternate"
                  hreflang="{{ .Language.Lang }}"
                  href="{{ .Permalink }}"
                  />{{ end }}
      <xhtml:link
                  rel="alternate"
                  hreflang="{{ .Language.Lang }}"
                  href="{{ .Permalink }}"
                  />{{ end }}
    </url>
  {{ end }}{{ end }}
</urlset>

将上面代码中的 https://thewindows10.com 修改成你的站点域名,例如:https://www.idcbuy.net

最后重新部署,可以看到 sitemap.xml 中的网址已经是绝对路径了,实例可参考:https://thewindows10.com/sitemap.xml

现在再把网站地图提交到搜索引擎就能够正常识别网址了。

Google Search Console 提交网站地图

参考资料:How to customize your sitemap in Hugo

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注