我们知道网站地图对 SEO 有很重要的作用,便于主动告诉搜索引擎网站内容,以及应该爬取哪些信息。
Hugo 原生支持 sitemap.xml 网站地图,不过在某些情况下(例如部署在 Netlify)网站地图上的链接都是相对路径,导致提交网站地图到搜索引擎的 站长平台 时出现报错。
放心,我们可以自定义 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
现在再把网站地图提交到搜索引擎就能够正常识别网址了。