sitemap.xml: генерация и отправка
Карта сайта помогает боту найти все важные страницы — особенно на больших и слабо связанных ссылками сайтах.
sitemap.xml — XML-файл со списком URL сайта, которые вы хотите видеть в индексе. Это «оглавление» для поисковика, дополняющее обход по ссылкам.
Зачем нужен sitemap
Бот и так ходит по ссылкам, но sitemap страхует: он подсказывает URL, до которых ссылки ведут плохо (глубоко вложенные, новые, слабо связанные), и помогает обнаружить страницы быстрее. На больших сайтах это критично. У codechick.io sitemap включает ~1100 URL и кешируется на сутки.
Чего sitemap НЕ делает: он не гарантирует индексацию и не «заставляет» бота. Это рекомендация, а не команда.
Sitemap не заменяет внутренние ссылки
Распространённое заблуждение — считать sitemap волшебной кнопкой «проиндексируй всё». Это не так: sitemap помогает обнаружить URL, но вес и важность страницы поисковик оценивает прежде всего по внутренним ссылкам. Страница, на которую ведёт только запись в sitemap и ни одной ссылки с сайта, выглядит для бота как второстепенная — её могут краулить редко или не индексировать вовсе. Поэтому sitemap и грамотная перелинковка работают в паре: ссылки передают важность, sitemap страхует обнаружение. Если важная страница есть только в sitemap — это сигнал, что с навигацией сайта что-то не так.
Формат файла
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://codechick.io/tutorials/seo/canonical</loc>
<lastmod>2026-06-20</lastmod>
</url>
<url>
<loc>https://codechick.io/journal/kak-rabotaet-https</loc>
<lastmod>2026-06-18</lastmod>
</url>
</urlset>
Тег <loc> обязателен — это абсолютный URL. <lastmod> (дата изменения) полезен: помогает боту понять, что обновилось. Теги <changefreq> и <priority> поисковики почти игнорируют — не тратьте на них силы.
Ограничения и индексные sitemap
Один файл — максимум 50 000 URL или 50 МБ. Для крупных сайтов файлы дробят и связывают через индексный sitemap (sitemap of sitemaps):
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap><loc>https://codechick.io/sitemap-tutorials.xml</loc></sitemap>
<sitemap><loc>https://codechick.io/sitemap-journal.xml</loc></sitemap>
</sitemapindex>
Как работает под капотом: генерация на сервере
В реальном проекте sitemap генерируется кодом из списка опубликованных страниц. Соберём минимальный валидный XML на Python:
pages = [
{"loc": "https://codechick.io/tutorials/seo", "lastmod": "2026-06-20"},
{"loc": "https://codechick.io/journal/https", "lastmod": "2026-06-18"},
]
def build_sitemap(pages):
lines = ['<?xml version="1.0" encoding="UTF-8"?>']
lines.append('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">')
for p in pages:
lines.append(" <url>")
lines.append(f" <loc>{p['loc']}</loc>")
if p.get("lastmod"):
lines.append(f" <lastmod>{p['lastmod']}</lastmod>")
lines.append(" </url>")
lines.append("</urlset>")
return "\n".join(lines)
print(build_sitemap(pages))
Вывод:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://codechick.io/tutorials/seo</loc>
<lastmod>2026-06-20</lastmod>
</url>
<url>
<loc>https://codechick.io/journal/https</loc>
<lastmod>2026-06-18</lastmod>
</url>
</urlset>
Отправка поисковику
- Укажите путь в
robots.txt: строкаSitemap: https://codechick.io/sitemap.xml. - Добавьте sitemap в Google Search Console и Яндекс.Вебмастер — там же видно ошибки обработки.
Частые ошибки
- URL с 404/301/noindex в sitemap — кладите только живые, индексируемые страницы (код 200, canonical на себя).
- Относительные URL вместо абсолютных — невалидно.
- Устаревший статический sitemap — генерируйте динамически, чтобы новые страницы попадали автоматически.
- Превышение лимита 50k URL в одном файле без разбивки на индексный sitemap.
Итог
- sitemap.xml — оглавление сайта для бота; помогает находить слабо связанные и новые страницы.
- Кладите только живые индексируемые URL (200, self-canonical); указывайте
lastmod. - Лимит 50k URL/50 МБ на файл; для крупных сайтов используйте индексный sitemap и отправляйте его в Search Console.