Главная Блог XML-карта сайта (Sitemap): как создать правильный sitemap для Яндекса и Google
SEO 16 апреля 2026 7 мин чтения 5

XML-карта сайта (Sitemap): как создать правильный sitemap для Яндекса и Google

Содержание

Что такое XML-карта сайта и зачем она нужна

XML Sitemap (карта сайта) — это файл в формате XML, который содержит список всех важных URL вашего сайта. Он помогает поисковым роботам быстрее обнаруживать, сканировать и индексировать страницы, особенно те, которые плохо связаны внутренними ссылками.

Sitemap — это не гарантия индексации, а рекомендация поисковику. Но правильно составленная карта сайта:

  • Ускоряет индексацию новых страниц в 2–5 раз
  • Помогает роботу обнаружить глубокие страницы
  • Сообщает о приоритетах и частоте обновлений
  • Позволяет сегментировать URL по типам (товары, статьи, категории)

В Pulse Digital мы создаём кастомные Sitemap для каждого проекта в рамках технического SEO аудита. Ниже — полное руководство.


Формат XML Sitemap: синтаксис и теги

Базовая структура

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2026-04-10T14:30:00+03:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/catalog/</loc>
    <lastmod>2026-04-09</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>

Описание тегов

Тег Обязательный Назначение Пример
<loc> Да Полный URL страницы https://example.com/page
<lastmod> Нет (но важен) Дата последнего изменения 2026-04-10 или ISO 8601
<changefreq> Нет Ожидаемая частота изменений daily, weekly, monthly
<priority> Нет Приоритет относительно других URL 0.01.0

Важные нюансы

  • <loc> — должен содержать полный абсолютный URL с протоколом (https://). Относительные пути не допускаются.
  • <lastmod> — должен отражать реальную дату изменения контента, а не текущую дату при генерации. Яндекс явно предупреждает: если lastmod всегда равен текущей дате — робот перестаёт ему доверять.
  • <changefreq> — носит рекомендательный характер. Яндекс и Google могут игнорировать этот тег и определять частоту обхода самостоятельно.
  • <priority> — относительный приоритет внутри сайта. Не влияет на сравнение с другими сайтами. По умолчанию — 0.5.

Индексный Sitemap (Sitemap Index)

Для сайтов с более чем 50 000 URL или файлом более 50 МБ необходим индексный Sitemap — файл, который ссылается на отдельные Sitemap-файлы:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/sitemap-pages.xml</loc>
    <lastmod>2026-04-10</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-products.xml</loc>
    <lastmod>2026-04-09</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-blog.xml</loc>
    <lastmod>2026-04-08</lastmod>
  </sitemap>
</sitemapindex>

Рекомендации по сегментации

Разбивайте Sitemap по типам контента:

Файл Содержание Примерный объём
sitemap-pages.xml Основные страницы (главная, о компании, контакты) 10–50 URL
sitemap-categories.xml Категории каталога 50–500 URL
sitemap-products.xml Товарные карточки 1 000–50 000 URL
sitemap-blog.xml Статьи блога 50–5 000 URL
sitemap-regions.xml Региональные страницы 50–500 URL

Преимущества сегментации:

  • Проще отслеживать индексацию по типам
  • При обновлении товаров не нужно перегенерировать весь Sitemap
  • В Вебмастере видна статистика по каждому файлу отдельно

Создание Sitemap для разных CMS

WordPress

Встроенный Sitemap (с версии 5.5): WordPress автоматически генерирует Sitemap по адресу https://example.com/wp-sitemap.xml. Но он базовый — без lastmod, без priority.

Рекомендованные плагины:

  • Yoast SEO — полноценный Sitemap с настройками исключения типов записей
  • Rank Math — аналогичный функционал с более гибкими настройками
  • XML Sitemap Generator for Google — минималистичный плагин

Настройка в Yoast SEO:

  1. SEO → Общие → Возможности → XML-карты сайтов: Вкл
  2. В разделах «Типы записей» и «Таксономии» отключите ненужные типы (метки, форматы)
  3. Sitemap доступен по: https://example.com/sitemap_index.xml

1С-Битрикс

Битрикс имеет встроенный генератор Sitemap:

  1. Маркетинг → Поисковая оптимизация → Настройка карты сайта
  2. Выберите информационные блоки для включения
  3. Настройте changefreq и priority для каждого типа
  4. Запустите генерацию

Проблема Битрикса: генератор часто включает служебные URL (print-версии, RSS). Проверяйте результат вручную.

Django

Встроенный django.contrib.sitemaps:

# sitemaps.py
from django.contrib.sitemaps import Sitemap
from .models import Product, BlogPost

class ProductSitemap(Sitemap):
    changefreq = "weekly"
    priority = 0.8

    def items(self):
        return Product.objects.filter(is_active=True)

    def lastmod(self, obj):
        return obj.updated_at

class BlogSitemap(Sitemap):
    changefreq = "monthly"
    priority = 0.6

    def items(self):
        return BlogPost.objects.filter(status='published')

    def lastmod(self, obj):
        return obj.updated_at

# urls.py
from django.contrib.sitemaps.views import sitemap
sitemaps = {
    'products': ProductSitemap,
    'blog': BlogSitemap,
}
urlpatterns = [
    path('sitemap.xml', sitemap, {'sitemaps': sitemaps}),
]

Кастомный PHP

Для сайтов на чистом PHP или кастомных фреймворках:

<?php
header('Content-Type: application/xml; charset=UTF-8');

$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'user', 'pass');

echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

// Статические страницы
$pages = [
    ['/', '1.0', 'daily'],
    ['/about', '0.6', 'monthly'],
    ['/contacts', '0.6', 'monthly'],
];

foreach ($pages as [$url, $priority, $freq]) {
    echo "<url><loc>https://example.com{$url}</loc>";
    echo "<priority>{$priority}</priority>";
    echo "<changefreq>{$freq}</changefreq></url>";
}

// Динамические страницы из БД
$stmt = $pdo->query('
    SELECT slug, updated_at
    FROM products WHERE status = "active"
');

while ($row = $stmt->fetch()) {
    $date = date('Y-m-d', strtotime($row['updated_at']));
    echo "<url><loc>https://example.com/product/{$row['slug']}</loc>";
    echo "<lastmod>{$date}</lastmod>";
    echo "<priority>0.8</priority></url>";
}

echo '</urlset>';

Правила включения и исключения URL

Что ВКЛЮЧАТЬ в Sitemap

  • Все каноничные страницы (указанные в rel="canonical")
  • Страницы со статусом 200
  • Страницы, открытые для индексации (без noindex)
  • Страницы, не закрытые в robots.txt

Что ИСКЛЮЧАТЬ из Sitemap

  • URL с 301-редиректом → указывайте конечный URL
  • Страницы с noindex → противоречивый сигнал
  • URL, закрытые в robots.txt
  • Страницы с параметрами (UTM, сортировки, фильтры)
  • Пагинация (спорный вопрос — зависит от стратегии)
  • Дубли (HTTP/HTTPS, www/без www, со слешем/без)
  • Страницы с тонким контентом или заглушки

Золотое правило

В Sitemap должны быть только те URL, которые вы хотите видеть в индексе Яндекса.

Каждый URL в Sitemap — это рекомендация роботу просканировать страницу. Не тратьте краулинговый бюджет на мусор.


Размещение и подключение Sitemap

Где разместить

Стандартное расположение: https://example.com/sitemap.xml

Допустимо другое имя и расположение, но тогда укажите путь явно.

Как подключить

Способ 1: robots.txt (рекомендуется)

Sitemap: https://example.com/sitemap.xml

Директива Sitemap может быть вне блока User-agent — она глобальная.

Способ 2: Яндекс.Вебмастер

  1. Индексирование → Файлы Sitemap
  2. Добавьте URL вашего Sitemap
  3. Яндекс начнёт обработку в течение нескольких часов

Способ 3: Google Search Console

  1. Sitemaps → Add a new sitemap
  2. Введите URL

Рекомендуется использовать все три способа одновременно.


Мониторинг и диагностика

Яндекс.Вебмастер

В разделе «Файлы Sitemap» отображается:

  • Дата обработки — когда Яндекс последний раз прочитал файл
  • Количество URL в Sitemap
  • Количество проиндексированных из Sitemap
  • Ошибки — невалидные URL, недоступные страницы

Если количество проиндексированных URL значительно меньше, чем в Sitemap — ищите проблемы:

  • Страницы возвращают ошибки
  • Контент низкого качества
  • Страницы дублируют другие URL
  • Страницы закрыты в robots.txt или через noindex

Валидация XML

Проверяйте синтаксис перед загрузкой:

xmllint --schema https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd sitemap.xml --noout

Или используйте онлайн-валидаторы: XML-Sitemaps.com, Screaming Frog.


Специальные виды Sitemap

Sitemap для изображений

<url>
  <loc>https://example.com/product/123</loc>
  <image:image>
    <image:loc>https://example.com/img/product-123.jpg</image:loc>
    <image:title>Название товара</image:title>
    <image:caption>Описание изображения</image:caption>
  </image:image>
</url>

Помогает индексировать изображения для Яндекс.Картинок — дополнительный источник трафика.

Sitemap для видео

<url>
  <loc>https://example.com/blog/video-guide</loc>
  <video:video>
    <video:thumbnail_loc>https://example.com/thumb.jpg</video:thumbnail_loc>
    <video:title>Видео-гайд по SEO</video:title>
    <video:description>Подробное руководство...</video:description>
    <video:content_loc>https://example.com/video.mp4</video:content_loc>
  </video:video>
</url>

Sitemap для новостей

Для сайтов, включённых в Яндекс.Новости:

<url>
  <loc>https://example.com/news/article-123</loc>
  <news:news>
    <news:publication>
      <news:name>Название издания</news:name>
      <news:language>ru</news:language>
    </news:publication>
    <news:publication_date>2026-04-14</news:publication_date>
    <news:title>Заголовок новости</news:title>
  </news:news>
</url>

Автоматизация обновления Sitemap

Cron-задача для PHP

# Обновление sitemap каждый час
0 * * * * php /var/www/example.com/generate-sitemap.php

Событийное обновление

Лучший подход — обновлять Sitemap при каждом изменении контента:

  1. При создании/обновлении/удалении страницы → перегенерируйте соответствующий сегмент
  2. Отправьте уведомление через IndexNow для изменённых URL
  3. Обновите lastmod только для реально изменённых страниц

Типичные ошибки

Ошибка 1: Sitemap содержит 404 и редиректы

Каждый такой URL — это потраченный краулинговый бюджет и сигнал о плохом качестве сайта.

Ошибка 2: Всегда текущая дата в lastmod

Яндекс быстро определяет подделку и перестаёт доверять lastmod. Указывайте реальную дату изменения.

Ошибка 3: Несоответствие canonical и Sitemap

Если в Sitemap указан URL A, а на странице rel="canonical" указывает на B — конфликтный сигнал.

Ошибка 4: Один огромный файл

Sitemap на 200 000 URL замедляет обработку. Разбивайте на сегменты по 10 000–30 000 URL.

Ошибка 5: Забытый Sitemap

Сайт развивается, появляются новые разделы, а Sitemap остаётся старым. Автоматизируйте генерацию.


FAQ

Обязателен ли Sitemap для SEO?

Формально — нет. Яндекс может обнаружить все страницы через внутренние ссылки. Но для сайтов с более чем 100 страниц Sitemap значительно ускоряет и улучшает индексацию.

Можно ли использовать сжатый Sitemap (gzip)?

Да, Яндекс и Google поддерживают sitemap.xml.gz. Для больших файлов это рекомендуется — уменьшает размер в 5–10 раз.

Влияет ли priority на ранжирование?

Нет, priority не влияет на позиции. Это только подсказка роботу о приоритете обхода внутри вашего сайта.

Сколько Sitemap-файлов можно указать в robots.txt?

Ограничений нет. Можно указать несколько директив Sitemap: — робот обработает все.

Нужен ли Sitemap для блога из 20 статей?

Для небольших сайтов Sitemap менее критичен, но не лишний. Особенно полезен для ускорения индексации новых публикаций.


Правильно составленный Sitemap — обязательный элемент технического SEO. Нужна помощь с генерацией и мониторингом? Pulse Digital настроит автоматическую генерацию Sitemap, подключит его к Вебмастеру и обеспечит регулярный мониторинг индексации.

Нужна помощь с этой темой?

Наши специалисты помогут разработать стратегию для вашего бизнеса

ПОЛУЧИТЬ КОНСУЛЬТАЦИЮ

Читайте также

Нам доверяют
ГАЛАМИКС ЛМК
ТПК Балтэкском
ГАЛАМИКС ЛМК
ТПК Балтэкском
ГАЛАМИКС ЛМК
ТПК Балтэкском
ГАЛАМИКС ЛМК
ТПК Балтэкском