Sitemap Template

Hugo wird mit einer integrierten Vorlagendatei ausgeliefert, die v0.9 des Sitemap-Protokolls berücksichtigt, aber diese Vorlage kann bei Bedarf überschrieben werden.

Eine einzige Sitemap-Vorlage wird verwendet, um die Datei sitemap.xml zu generieren. Hugo wird automatisch mit dieser Vorlagendatei geliefert. Es ist keine Arbeit auf Seiten der Benutzer erforderlich, es sei denn, die sitemap.xml soll angepasst werden.

A sitemap ist eine Page und verfügt daher über alle page variables, die in dieser Vorlage vorhanden sind und sitemap-spezifische:

.Sitemap.ChangeFreq
 Die Häufigkeit der Seitenwechsel

.Sitemap.Priority
Die Priorität der Seite

.Sitemap.Filename
Der Dateiname der Sitemapdatei

Wenn angegeben, verwendet Hugo /layouts/sitemap.xml anstatt der internen sitemap.xml Vorlage, die mit Hugo ausgeliefert wird.

Sitemap-Vorlagen

Hugo hat eingebaute Sitemap-Vorlagen, aber bei Bedarf können eigenen Vorlagen erstellt werden, entweder in layouts/sitemap.xml oder layouts/_default/sitemap.xml.

Photo by Hannes Wolf on Unsplash

Hugo’s sitemap.xml

Diese Vorlage entspricht der Version 0.9 des Sitemap Protocol.

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  {{ range .Data.Pages }}
  <url>
    <loc>{{ .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="{{ .Lang }}"
                href="{{ .Permalink }}"
                />{{ end }}
    <xhtml:link
                rel="alternate"
                hreflang="{{ .Lang }}"
                href="{{ .Permalink }}"
                />{{ end }}
  </url>
  {{ end }}
</urlset>

Hugo fügt dieser Datei beim Rendern automatisch die folgende Kopfzeile hinzu. Bitte nicht in die Vorlage einfügen, da es kein gültiges HTML ist.

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

Nach dem Rendern steht in /public folgende sitemap.xml beim Template hello-friend-ng.

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
   	<loc>/en/sitemap.xml</loc>	
   	<lastmod>2019-04-23T07:44:32+02:00</lastmod>	
</sitemap>
<sitemap>
   	<loc>/fr/sitemap.xml</loc>	
   	<lastmod>2014-09-28T00:00:00+00:00</lastmod>	
</sitemap>	
</sitemapindex>

Hugo’s sitemapindex.xml

Dies wird verwendet, um einen Sitemap-Index im mehrsprachigen Modus zu erstellen:

<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	{{ range . }}
	<sitemap>
	   	<loc>{{ .SitemapAbsURL }}</loc>
		{{ if not .LastChange.IsZero }}
	   	<lastmod>{{ .LastChange.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</lastmod>
		{{ end }}
	</sitemap>
	{{ end }}
</sitemapindex>

Configure sitemap.xml

Standardwerte für <changefreq>, <priority> and filename können in der Konfigurationsdatei der Seite festgelegt werden, z.B:

[sitemap]
  changefreq = "monthly"
  filename = "sitemap.xml"
  priority = 0.5

Die gleichen Felder können in front matter einer einzelnen Inhaltsdatei angegeben werden, um den Wert zu überschreiben, der diesem Inhaltselement beim Rendern zugewiesen wird.