Sitemap generator¶
This document describes how to create XML sitemaps for your Wagtail website using the wagtail.contrib.wagtailsitemaps
module.
Basic configuration¶
You firstly need to add "wagtail.contrib.wagtailsitemaps"
to INSTALLED_APPS in your Django settings file:
INSTALLED_APPS = [ ... "wagtail.contrib.wagtailsitemaps", ]
Then, in urls.py
, you need to add a link to the wagtail.contrib.wagtailsitemaps.views.sitemap
view which generates the sitemap:
from wagtail.contrib.wagtailsitemaps.views import sitemap
urlpatterns = [
...
url('^sitemap\.xml$', sitemap),
]
You should now be able to browse to /sitemap.xml
and see the sitemap working. By default, all published pages in your website will be added to the site map.
Customising¶
URLs¶
The Page
class defines a get_sitemap_urls
method which you can override to customise sitemaps per Page
instance. This method must return a list of dictionaries, one dictionary per URL entry in the sitemap. You can exclude pages from the sitemap by returning an empty list.
Each dictionary can contain the following:
- location (required) - This is the full URL path to add into the sitemap.
- lastmod - A python date or datetime set to when the page was last modified.
- changefreq
- priority
You can add more but you will need to override the wagtailsitemaps/sitemap.xml
template in order for them to be displayed in the sitemap.
Cache¶
By default, sitemaps are cached for 100 minutes. You can change this by setting WAGTAILSITEMAPS_CACHE_TIMEOUT
in your Django settings to the number of seconds you would like the cache to last for.