2019-10-21 04:22:28 -04:00
---
2023-07-29 05:15:54 -04:00
title: RSS templates
2019-10-21 04:22:28 -04:00
description: Hugo ships with its own RSS 2.0 template that requires almost no configuration, or you can create your own RSS templates.
keywords: [rss, xml, templates]
categories: [templates]
menu:
docs:
2023-05-22 10:43:12 -04:00
parent: templates
2023-07-29 05:15:54 -04:00
weight: 160
weight: 160
2019-10-21 04:22:28 -04:00
toc: true
---
2023-07-29 05:15:54 -04:00
## RSS template lookup order
2019-10-21 04:22:28 -04:00
See [Template Lookup Order ](/templates/lookup-order/ ) for the complete reference.
2023-05-22 10:43:12 -04:00
{{% note %}}
2023-07-29 05:15:54 -04:00
Hugo ships with its own [RSS 2.0 template ](#the-embedded-rssxml-template ). The embedded template will be sufficient for most use cases.
2019-10-21 04:22:28 -04:00
{{% /note %}}
RSS pages are of the type `Page` and have all the [page variables ](/variables/page/ ) available to use in the templates.
### Section RSS
2020-05-31 06:43:23 -04:00
A [section’ s][section] RSS will be rendered at `/<SECTION>/index.xml` (e.g., [https://spf13.com/project/index.xml ](https://spf13.com/project/index.xml )).
2019-10-21 04:22:28 -04:00
Hugo provides the ability for you to define any RSS type you wish and can have different RSS files for each section and taxonomy.
2023-07-29 05:15:54 -04:00
## Lookup order for RSS templates
2019-10-21 04:22:28 -04:00
The table below shows the RSS template lookup order for the different page kinds. The first listing shows the lookup order when running with a theme (`demoTheme`).
{{< datatable-filtered " output " " layouts " " OutputFormat = = RSS " " Example " " OutputFormat " " Suffix " " Template Lookup Order " > }}
## Configure RSS
2023-05-27 10:59:59 -04:00
By default, Hugo will create an unlimited number of RSS entries. You can limit the number of articles included in the built-in RSS templates by assigning a numeric value to `rssLimit:` field in your project's configuration file.
2019-10-21 04:22:28 -04:00
2021-04-20 14:21:45 -04:00
The following values will also be included in the RSS output if specified:
2019-10-21 04:22:28 -04:00
2023-05-27 10:59:59 -04:00
{{< code-toggle file = "hugo" > }}
2019-10-21 04:22:28 -04:00
languageCode = "en-us"
copyright = "This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License."
[author]
name = "My Name Here"
2021-04-20 14:21:45 -04:00
{{< / code-toggle > }}
2019-10-21 04:22:28 -04:00
2023-07-29 05:15:54 -04:00
## The embedded rss.xml template
2019-10-21 04:22:28 -04:00
2020-02-06 07:02:49 -05:00
This is the default RSS template that ships with Hugo:
2022-11-17 10:14:29 -05:00
< https: / / github . com / gohugoio / hugo / blob / master / tpl / tplimpl / embedded / templates / _default / rss . xml >
2019-10-21 04:22:28 -04:00
2023-07-29 05:15:54 -04:00
## Reference your RSS feed in `<head>`
2019-10-21 04:22:28 -04:00
In your `header.html` template, you can specify your RSS feed in your `<head></head>` tag using Hugo's [Output Formats][Output Formats] like this:
```go-html-template
{{ range .AlternativeOutputFormats -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end -}}
```
If you only want the RSS link, you can query the formats:
```go-html-template
{{ with .OutputFormats.Get "rss" -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end -}}
```
Either of the two snippets above will generate the below `link` tag on the site homepage for RSS output:
```html
< link rel = "alternate" type = "application/rss+xml" href = "https://example.com/index.xml" title = "Site Title" >
```
_We are assuming `BaseURL` to be `https://example.com/` and `$.Site.Title` to be `"Site Title"` in this example._
[embedded]: #the -embedded-rss-xml
[RSS 2.0]: https://cyber.harvard.edu/rss/rss.html "RSS 2.0 Specification"
[section]: /content-management/sections/
[Output Formats]: /templates/output-formats/#link-to-output-formats