Skip to content

Generates sitemaps and index files based on the sitemaps.org protocol

License

Notifications You must be signed in to change notification settings

StudioSol/sitemap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sitemap GoDoc

Generates sitemaps and index files based on the sitemaps.org protocol.

sitemap.NewSitemapGroup(dir string,name string)

Creates a new group of sitemaps that used a common name.

group := sitemap.NewSitemapGroup("/var/www/blog/public/sitemaps/","blog")

If the sitemap exceed the limit of 50k urls, new sitemaps will have a numeric suffix to the name. Example:

  • blog_1.xml.gz
  • blog_2.xml.gz

group.Add(url sitemap.URL)

Add sitemap.URL to group

now := time.Now()
group.Add(sitemap.URL{
    Loc: "http://example.com/blog/1/",
    ChangeFreq: sitemap.Hourly,
    LastMod: &now,
    Priority: 0.9
    })

group.Close()

Handle the rest of the url that has not been added to any sitemap and add, in addition to clean variables and close the channel group

sitemap.CloseGroups(groups ...*SitemapGroup) (done <-chan bool)

if you use several groups of sitemap is safer use this function to close all groups for you before creating the index. Returns a channel with the done signal.

	//release after close all groups
	<-sitemap.CloseGroups(group, group2)

	//generate index - by last execution paths
	savedSitemaps := group.GetSavedSitemaps()
	sitemapsgroup2 := group.GetSavedSitemaps()
	savedSitemaps = append(savedSitemaps, sitemapsgroup2...)

Creating the index file

Currently we have 2 ways to create the index, searching for files in the directory or passing a slice of urls to sitemaps. To generate the slice of sitemaps generated in the last run we GetSavedSitemaps function.

group.GetSavedSitemaps() []string

Returns an array of urls in the sitemaps created script execution

savedSitemaps := group.GetSavedSitemaps()

sitemap.CreateIndexBySlice(savedSitemaps, path) sitemap.Index

index := sitemap.CreateIndexBySlice(savedSitemaps, "http://example.com.br/sitemaps/")

#####OR

sitemap.CreateIndexByScanDir(sitemaps_dir,index_path, path) sitemap.Index

Search all the xml.gz sitemaps_dir directory, uses the modified date of the file as lastModified

path_index is included for the function does not include the url of the index in your own content, if it is present in the same directory.

index := sitemap.CreateIndexByScanDir("/var/www/blog/public/sitemaps/", "/var/www/blog/public/index.xml.gz", "http://example.com.br/sitemaps/")

Warning: this release do not control old sitemaps, when using this method the index can be created with sitemaps that are no longer used. In case you need to delete manually.

sitemap.CreateSitemapIndex(path, sitemap.Index)

creates and gzip the xml index

sitemap.CreateSitemapIndex("/var/www/blog/public/index.xml.gz", index)

sitemap.PingSearchEngines(public_index_path)

Sends a ping to search engines indicating that the index has been updated.

Currently supports Google and Bing.

sitemap.PingSearchEngines("http://exemple.com/index.xml.gz")

Example

There is a very simple example of using the example folder.

About

Generates sitemaps and index files based on the sitemaps.org protocol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages