Зачем sitemap.xml вообще
Sitemap.xml — это список URL вашего сайта для поисковиков. Он:
- Подсказывает, какие страницы существуют (особенно полезно для глубоко вложенных)
- Указывает приоритеты — что важнее
- Сообщает дату последнего изменения — стимулирует переиндексацию обновлённых
- Помогает с crawl budget — поисковик не тратит время на обход через ссылки
Для каталога с 1000+ URL обязателен.
Структура для агрегатора
Плоский sitemap НЕ подходит
Один файл с 30 000 URL — это:
- Тяжёлый для загрузки и парсинга
- Не позволяет приоритизировать сегменты
- Сложно отслеживать изменения
Правильно: sitemap-index + отдельные файлы по типам
<!-- /sitemap.xml -->
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-main.xml</loc>
<lastmod>2026-05-15</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-categories.xml</loc>
<lastmod>2026-05-15</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-cards.xml</loc>
<lastmod>2026-05-15</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-blog.xml</loc>
<lastmod>2026-05-15</lastmod>
</sitemap>
</sitemapindex>И в каждом из отдельных файлов — URL соответствующего типа.
Приоритеты по типам
Приоритеты задаются через тег <priority> в значении 0.0–1.0.
| Тип страницы | Приоритет |
|---|---|
| Главная | 1.0 |
| Hub-страницы (high-volume) | 0.9 |
| Категории каталога | 0.8 |
| Карточки | 0.7-0.8 |
| Блог-статьи | 0.6 |
| Тег-страницы, фильтры | 0.5 |
| Служебные (О нас, Контакты) | 0.4 |
Поисковики не обязаны следовать этим приоритетам, но это сигнал внимания.
ChangeFreq — частота обновления
Тег <changefreq> указывает, как часто страница обновляется:
| Значение | Когда |
|---|---|
| always | Главная сайта новостей |
| hourly | Главная активного агрегатора |
| daily | Hub-страницы, главная каталога |
| weekly | Категории, обновляющиеся карточки |
| monthly | Стабильные карточки, блог-статьи |
| yearly | Юридические разделы, контакты |
| never | Архивные материалы |
Правда: Google в 2024 объявил, что больше не использует changefreq и priority. Яндекс использует. Поэтому указываем — для Яндекса работает.
Lastmod — дата последнего изменения
Самый важный тег. Поисковики смотрят на lastmod для решения о переобходе.
<url>
<loc>https://example.com/cards/kaspi-gold</loc>
<lastmod>2026-05-15T12:34:00+03:00</lastmod>
<priority>0.7</priority>
</url>Правила:
lastmodдолжен меняться только при существенных изменениях контента- Не «обновляйте» все URL каждый деплой — поисковик начнёт игнорировать (это спам-сигнал)
- Формат ISO 8601 с тайм-зоной
Размер файлов sitemap
Ограничения формата:
- Один файл sitemap: до 50 000 URL и до 50 МБ в распакованном виде
- Sitemap-index: до 50 000 sitemap-файлов
Если у вас 100 000 карточек — нужно 2 файла sitemap-cards-1.xml и sitemap-cards-2.xml.
Сжатие GZIP
Sitemap можно отдавать сжатым:
/sitemap.xml.gz— gzip-версия- Google и Яндекс принимают gzip-сжатие
- Размер уменьшается в 5-10 раз
Это полезно для агрегаторов с большими файлами.
Регистрация sitemap
После создания нужно сообщить поисковикам:
- Через robots.txt (главное):
Sitemap: https://example.com/sitemap.xmlЭто первое, что проверяют боты при заходе.
- Через Google Search Console — раздел «Файлы Sitemap»
- Через Я.Вебмастер — «Индексирование → Файлы Sitemap»
- Через IndexNow API (Yandex, Bing) — каждое обновление автоматически уведомляет
Что НЕ должно быть в sitemap
- ❌ URL с
noindex - ❌ URL с
canonicalне на самих себя - ❌ Redirect-страницы (3xx)
- ❌ Битые ссылки (404)
- ❌ Серверные ошибки (5xx)
- ❌ Параметрические URL без необходимости
- ❌ Закрытые в robots.txt
Любая из этих ошибок → поисковик считает sitemap низкокачественным и доверяет ему меньше.
Автогенерация sitemap
Для агрегатора sitemap обязательно автогенерируется при изменении данных или по cron.
В Next.js:
// src/app/sitemap.ts
export default function sitemap(): MetadataRoute.Sitemap {
return cards.map(card => ({
url: `https://example.com/cards/${card.slug}`,
lastModified: card.updatedAt,
changeFrequency: 'weekly',
priority: 0.7,
}));
}В статических билдерах — генерация при сборке.
Мониторинг sitemap
В Search Console / Я.Вебмастер регулярно проверяем:
- Сколько URL в sitemap → сколько проиндексировано
- Ошибки обработки sitemap
- Покрытие по сегментам
Норма: 80-95% URL из sitemap должны быть в индексе. Меньше — есть проблемы (тонкий контент, дубли, технические).
Чек-лист
- [ ] Sitemap-index + отдельные файлы по типам
- [ ] Приоритеты установлены по сегментам
- [ ] Lastmod актуальный
- [ ] Регистрация в robots.txt + GSC + Я.Вебмастер
- [ ] Не больше 50 000 URL на файл
- [ ] GZIP-сжатие для больших каталогов
- [ ] Автогенерация по cron / при изменении
- [ ] Только индексируемые URL внутри
- [ ] Мониторинг покрытия раз в месяц
Итог
Sitemap.xml для агрегатора — это не формальность, а инструмент управления crawl budget и приоритетами индексации. Грамотно настроенный, он ускоряет индексацию новых карточек в 2-3 раза.