Я не люблю использовать плагины, если это не является обязательным, поэтому я был счастлив найти простой способ создания файла Sitemap на Jekyll без использования плагинов.
1. Создайте в корне сайта файл sitemap.xml
со следующим наполнением:
---
layout: null
sitemap:
exclude: 'yes'
---
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{% for post in site.posts %}
{% unless post.published == false %}
<url>
<loc>{{ site.url }}{{ post.url }}</loc>
{% if post.sitemap.lastmod %}
<lastmod>{{ post.sitemap.lastmod | date: "%Y-%m-%d" }}</lastmod>
{% elsif post.date %}
<lastmod>{{ post.date | date_to_xmlschema }}</lastmod>
{% else %}
<lastmod>{{ site.time | date_to_xmlschema }}</lastmod>
{% endif %}
{% if post.sitemap.changefreq %}
<changefreq>{{ post.sitemap.changefreq }}</changefreq>
{% else %}
<changefreq>monthly</changefreq>
{% endif %}
{% if post.sitemap.priority %}
<priority>{{ post.sitemap.priority }}</priority>
{% else %}
<priority>0.5</priority>
{% endif %}
</url>
{% endunless %}
{% endfor %}
{% for page in site.pages %}
{% unless page.sitemap.exclude == "yes" %}
<url>
<loc>{{ site.url }}{{ page.url | remove: "index.html" }}</loc>
{% if page.sitemap.lastmod %}
<lastmod>{{ page.sitemap.lastmod | date: "%Y-%m-%d" }}</lastmod>
{% elsif page.date %}
<lastmod>{{ page.date | date_to_xmlschema }}</lastmod>
{% else %}
<lastmod>{{ site.time | date_to_xmlschema }}</lastmod>
{% endif %}
{% if page.sitemap.changefreq %}
<changefreq>{{ page.sitemap.changefreq }}</changefreq>
{% else %}
<changefreq>monthly</changefreq>
{% endif %}
{% if page.sitemap.priority %}
<priority>{{ page.sitemap.priority }}</priority>
{% else %}
<priority>0.3</priority>
{% endif %}
</url>
{% endunless %}
{% endfor %}
</urlset>
2. Добавьте следующие настраиваемые параметры в свои шаблоны:
sitemap:
lastmod:
priority: 0.5
changefreq: monthly
exclude: 'no'
Более подробную информацию о настройках можно найти на сайте sitemaps.org, я же опишу основные из них:
- lastmod - показывает последний раз, когда была изменена страница/пост
- priority - сообщает поисковым роботам, как вы расставляете приоритеты для страницы/поста в диапазоне от 0.0 до 1.0. По умолчанию используется значение 0.5.
- changefreq - руководство для веб-сканера о том, как часто проверять изменения страницы/поста. Принимаемые значения: always, hourly, daily, weekly, monthly, yearly, never
- exclude - принимаемые значения ‘yes’/’no’, если вы хотите, чтобы страница/пост были включены/исключены в карте сайта.
Также помните, что веб-сканеры используют эти данные как подсказки, а не как команды, поэтому имейте это в виду.