Jekyll plugin to silently generate a sitemaps.org compliant sitemap for your Jekyll site
- Add
gem 'jekyll-sitemap'
to your site's Gemfile and runbundle
- Add the following to your site's
_config.yml
:
gems:
- jekyll-sitemap
If all gem plugins have the same priority
, they will be executed in the
order they are required, generally. Thus, if you have other plugins which
generate content and store that content in site.pages
, site.posts
, or
site.collections
, be sure to require jekyll-sitemap
either after
those other gems if you want the sitemap to include the generated
content, or before those other gems if you don't want the sitemap to
include the generated content from the gems. (Programming is hard.)
Because the sitemap is added to site.pages
, you may have to modify any
templates that iterate through all pages (for example, to build a menu of
all of the site's content).
The <lastmod>
tag in the sitemap.xml
will reflect by priority:
- The modified date of the file as reported by the filesystem if you have
jekyll-last-modified-at
plugin installed (not compatible with Github Pages auto building) - A personnalised date if you add the variable
last_modified_at:
with a date in the Front Matter - The creation date of your post (correspondig to the
post.date
variable)
If you would like to exclude specific pages/posts from the sitemap set the
sitemap flag to false
in the front matter for the page/post.
sitemap: false
Use script/bootstrap
to bootstrap your local development environment.
Use script/console
to load a local IRB console with the Gem.
script/bootstrap
script/cibuild
- If the
sitemap.xml
doesn't generate in the_site
folder, ensure_config.yml
doesn't havesafe: true
. That prevents all plugins from working. - If the
sitemap.xml
doesn't generate in the_site
folder, ensure that you don't have a sitemap generator plugin in your_plugin
folder.
- Fork the project
- Create a descriptively named feature branch
- Add your feature
- Submit a pull request