mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-14 20:37:55 -05:00
89044b8f87
ec0abe052 Update index.md ed44339cd Update bio.md cef04eb95 Minor edits 4d45dcc8d Submitting Digital.gov to the Hugo Showcase d35126af7 Azure uses storage containers, not buckets; edited accordingly. (#1078) 9c249cc89 fix grammatical error 9728699a3 Release Hugo 0.69.2 cccabed0c Merge branch 'temp692' 3d0a740c4 releaser: Add release notes to /docs for release of 0.69.2 b760aceb1 HTTPS external links in docs 49e4631b0 Release 0.69.1 01f3da870 Merge branch 'temp691' 8280d85aa releaser: Add release notes to /docs for release of 0.69.1 40ea44d24 fix typo (#1088) 725f53643 Rebuild cache 80ee1efd9 Add KeyCDN Showcase f253e906e docs: Fix typo in Hugo's Security Model b3ffd1ad3 Mentioning a range is equivalent to foreach (#1086) 0c396911f Update jsonify function docs 376befc9a Fix typo (#1084) 4bdc9bc72 Mark .Page.UniqueID as deprecated and add .File.UniqueID 30a7b7bf2 Update hosting-on-github.md c5db4ba2b Update postprocess.md 1121f74a5 Update install guide with Scoop extended 8988aa6fa Merge branch 'postprocess' 225d3f9c7 Release Hugo 0.69.0 4caf7a89a releaser: Add release notes to /docs for release of 0.69.0 664b2a0fa Document resources.PostProcess and buildStats 9737b34e9 docs: Regen docs helper 0fab3ba24 Merge commit 'da3c3e5fbd0de65f956618cd2e35401460a3cd02' 96dad83b1 Update hosting-on-aws-amplify.md 57eb27897 Merge commit 'c494c37a4523fbf2db6274dc87e0877fd5bec24b' dcc7afef7 fix typo in getting started git-subtree-dir: docs git-subtree-split: ec0abe052bcfebc65c323df4ff14ad277bb405d8
106 lines
3.4 KiB
Markdown
106 lines
3.4 KiB
Markdown
---
|
||
title: Sitemap Template
|
||
# linktitle: Sitemap
|
||
description: Hugo ships with a built-in template file observing the v0.9 of the Sitemap Protocol, but you can override this template if needed.
|
||
date: 2017-02-01
|
||
publishdate: 2017-02-01
|
||
lastmod: 2017-02-01
|
||
categories: [templates]
|
||
keywords: [sitemap, xml, templates]
|
||
menu:
|
||
docs:
|
||
parent: "templates"
|
||
weight: 160
|
||
weight: 160
|
||
sections_weight: 160
|
||
draft: false
|
||
aliases: [/layout/sitemap/,/templates/sitemap/]
|
||
toc: false
|
||
---
|
||
|
||
A single Sitemap template is used to generate the `sitemap.xml` file.
|
||
Hugo automatically comes with this template file. *No work is needed on
|
||
the users' part unless they want to customize `sitemap.xml`.*
|
||
|
||
A sitemap is a `Page` and therefore has all the [page variables][pagevars] available to use in this template along with Sitemap-specific ones:
|
||
|
||
`.Sitemap.ChangeFreq`
|
||
: The page change frequency
|
||
|
||
`.Sitemap.Priority`
|
||
: The priority of the page
|
||
|
||
`.Sitemap.Filename`
|
||
: The sitemap filename
|
||
|
||
If provided, Hugo will use `/layouts/sitemap.xml` instead of the internal `sitemap.xml` template that ships with Hugo.
|
||
|
||
## Sitemap Templates
|
||
|
||
Hugo has built-on Sitemap templates, but you can provide your own if needed, in either `layouts/sitemap.xml` or `layouts/_default/sitemap.xml`.
|
||
|
||
For multilingual sites, we also create a Sitemap index. You can provide a custom layout for that in either `layouts/sitemapindex.xml` or `layouts/_default/sitemapindex.xml`.
|
||
|
||
## Hugo’s sitemap.xml
|
||
|
||
This template respects the version 0.9 of the [Sitemap Protocol](https://www.sitemaps.org/protocol.html).
|
||
|
||
```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 }}
|
||
<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's sitemapindex.xml
|
||
|
||
This is used to create a Sitemap index in multilingual mode:
|
||
|
||
```xml
|
||
{{ printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" | safeHTML }}
|
||
<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`
|
||
|
||
Defaults for `<changefreq>`, `<priority>` and `filename` values can be set in the site's config file, e.g.:
|
||
|
||
{{< code-toggle file="config" >}}
|
||
[sitemap]
|
||
changefreq = "monthly"
|
||
priority = 0.5
|
||
filename = "sitemap.xml"
|
||
{{</ code-toggle >}}
|
||
|
||
The same fields can be specified in an individual content file's front matter in order to override the value assigned to that piece of content at render time.
|
||
|
||
|
||
|
||
[pagevars]: /variables/page/
|