首页 >> Golang >> 内容页

使用go-sitemap-generator为网站添加sitemap

go-sitemap-generator是一个golang的生成sitemap的包,利用它可以快速生成sitemap文件,及可以ping是搜索引擎,通知收录。

sitemap的意义

xml文件的sitemap更多的用途是,加快搜索引擎对网站的认识,把想要被收录的url放到sitemap里面,搜索引擎就能按照这些url去检索对应的网页。
通过之前的做站经验,sitemap.xml的存在,是有能够加快搜索引擎对网站的爬取和索引的。而且像google search console等这样的搜索引擎官方的平台,都能通过提交sitemap的形式来提交网站的url。
所以在seo角度,sitemap文件的存在有一定的意义。

go-sitemap-generator的使用

安装

go get github.com/ikeikeikeike/go-sitemap-generator/v2/stm

新建sitemap,添加添加url

sm := stm.NewSitemap(0)

//设置public目录,指可以直接访问到文件的目录,我用beego setStaticPath设定了,所以不用默认的public目录
sm.SetPublicPath("store") 

// 网站base url 如:https://mokch.info
sm.SetDefaultHost(beego.AppConfig.String("baseurl")) 

// sitemap 存放的目录
sm.SetSitemapsPath("sitemaps") 
// 是否压缩,默认是true, sitemap文件为:  sitemap.xml.gz, 而不压缩就是 sitemap.xml
sm.SetCompress(false)

// Create必须在Add(添加url)前调用
sm.Create()

// 添加url
sm.Add(stm.URL{
    {"loc", beego.URLFor("Blog.Home")},
    {"lastmod", time.Now()},
    {"changefreq", changefreqDaily},
    {"priority", 1.0},
})

go-sitemap-generator github地址

sitemap文件一般不能无限大,大部分情况下最多10000条url左右一个, 因为如果太多,sitemap文件本身就大,搜索引擎就有可能拒绝处理大的文本,所以在以往我们都要分割sitemap,而go-ssitemap-generator 是可以自动分割文件的,十分方便。

一般sitemap的生成,我们可以定时生成,用golang可以使用cron包来做定时任务。