Карта сайта XML: как сделать и отправить в поисковики

Карта сайта XML: как сделать и отправить в поисковики

Вы выложили на сайт двадцать новых статей, а в поиске за месяц появились три. Робот просто не нашёл остальные: внутренних ссылок мало, страницы лежат глубоко, а подсказки, куда смотреть, вы ему не дали. XML-карта сайта и есть такая подсказка. Это файл со списком адресов, которые вы хотите видеть в индексе, плюс служебные пометки о том, когда страница менялась.

Карта не гарантирует попадание в выдачу. Она ускоряет обход и помогает поисковику ничего не пропустить, особенно на больших сайтах и там, где навигация запутанная. Для B2B-сайта с блогом, каталогом услуг и десятками посадочных это разница между «проиндексировалось за неделю» и «ждём полтора месяца».

Разберём по шагам: что внутри файла, как его собрать под разные движки, как проверить на ошибки и куда отправить, чтобы Яндекс и Google начали обход быстрее.

Зачем нужна XML-карта и кому она реально помогает

Поисковый робот находит страницы двумя путями: переходит по ссылкам внутри сайта и читает sitemap. Если на страницу не ведёт ни одной внутренней ссылки, по ссылкам её не достать. Карта решает эту проблему: вы прямо перечисляете адреса, которые надо обойти.

Сильнее всего эффект заметен в нескольких случаях:

  • Сайт большой, от нескольких сотен страниц, и часть из них глубоко в структуре.
  • Контент часто обновляется: блог, новости, каталог с меняющимися ценами.
  • Слабая перелинковка, на новые страницы почти не ведут ссылки.
  • Свежий домен без истории, роботу пока неоткуда брать сигналы.

Маленькому лендингу на пять страниц карта почти ничего не даст, робот и так обойдёт всё за один заход. Но даже там она не вредит, а заодно показывает в вебмастере, что именно вы считаете важным. Если хотите глубже разобраться с тем, как поисковики читают сайт, посмотрите отдельный разбор про техническое SEO.

Что внутри файла: структура sitemap.xml

Минимальная карта это XML-документ с одним корневым тегом и набором адресов. Выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.ru/blog/karta-sajta-xml</loc>
    <lastmod>2026-06-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>

Что означают теги:

  • loc это полный адрес страницы. Обязательный тег. Адрес должен быть с тем же протоколом и доменом, что и сам файл карты, иначе поисковик его проигнорирует.
  • lastmod дата последнего изменения. Самый полезный из необязательных тегов: по нему робот понимает, что страница поменялась, и приходит перечитать.
  • changefreq подсказка о частоте обновления (daily, weekly, monthly). Поисковики относятся к ней как к рекомендации, а не приказу.
  • priority относительная важность страницы от 0 до 1. Влияние спорное, Google официально его почти не учитывает.

На практике стоит вкладываться в loc и честный lastmod. Остальные два тега заполняйте, если они проставляются автоматически, вручную подгонять priority смысла мало.

Ограничения, о которые спотыкаются

У формата есть жёсткие лимиты. В одном файле не больше 50 000 адресов и не тяжелее 50 МБ в распакованном виде. Если страниц больше, карту делят на части и собирают индексный файл sitemap, который ссылается на остальные:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.ru/sitemap-blog.xml</loc>
    <lastmod>2026-06-10</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://example.ru/sitemap-uslugi.xml</loc>
  </sitemap>
</sitemapindex>

Разбивать карту по разделам удобно и для аналитики. В вебмастере вы увидите, что из блога в индексе 180 страниц из 200, а из каталога 40 из 45, и сразу понятно, где копать.

Какие страницы класть в карту, а какие нет

Главное правило: в sitemap идут только те адреса, которые вы хотите видеть в поиске. Каждый адрес должен отдавать код 200, быть открыт для индексации и быть каноническим. Звучит просто, но именно здесь рождается большинство ошибок.

Не должно попасть в карту:

  • Страницы с noindex или закрытые в robots.txt. Вы одновременно говорите «индексируй» и «не индексируй», робот путается.
  • Редиректы и битые адреса (301, 302, 404). Карта со ссылками на несуществующие страницы теряет доверие поисковика.
  • Неканонические дубли: версии с UTM-метками, сортировками, фильтрами, пагинацией. В карту кладём только канонический адрес.
  • Служебные страницы: корзина, личный кабинет, страницы поиска по сайту, технические разделы.

Полезный приём: карта должна согласовываться с robots.txt и каноническими тегами. Если эти три источника говорят роботу разное, он выбирает сам, и не всегда в вашу пользу. О том, как правильно настроить запреты, есть отдельный материал про robots.txt.

Что включать в XML-карту (условный чеклист)
Тип страницыВ карту?Почему
Статьи блогаДаЦелевые для трафика, часто обновляются
Услуги и посадочныеДаПриводят заявки, важны для бизнеса
Страница с UTM-меткойНетДубль, канонична версия без метки
Страница 404НетНе отдаёт код 200
Личный кабинетНетЗакрыт от индексации

Как сделать карту сайта: три способа

Если сайт на CMS

Самый частый случай. У большинства движков генерация карты встроена или решается плагином, и файл обновляется сам при добавлении страниц.

  • WordPress: подойдёт Yoast SEO, All in One SEO или Rank Math. Сам WordPress с версии 5.5 отдаёт базовую карту по адресу /wp-sitemap.xml, но плагин даёт больше контроля над тем, что включать.
  • Tilda: карта генерируется автоматически, адрес обычно /sitemap.xml, отдельно настраивать почти ничего не нужно.
  • Bitrix, Shop-Script, MODX: есть штатные модули генерации, их надо включить и задать расписание обновления.

После установки откройте файл в браузере и убедитесь, что в нём свежие страницы, а мусора нет.

Если сайт самописный или CMS без генератора

Тут два пути. Первый, разовый: онлайн-генераторы и десктопные краулеры вроде Screaming Frog обходят сайт и собирают список адресов в готовый XML. Годится, если структура меняется редко и вы готовы пересобирать карту руками.

Второй, правильный для живого сайта: написать генерацию на стороне сервера, чтобы карта собиралась из базы динамически. Тогда новая статья или услуга попадает в sitemap автоматически в момент публикации. Для проекта, где контент выходит регулярно, ручная пересборка быстро превращается в забытую задачу, и карта устаревает.

Динамическая карта для растущего сайта

Если вы публикуете по несколько материалов в неделю, динамическая генерация почти обязательна. Логика простая: при запросе к /sitemap.xml скрипт берёт из базы все опубликованные и открытые для индексации страницы, подставляет реальную дату изменения в lastmod и отдаёт XML. Никто не забывает обновить файл, потому что обновлять нечего, он собирается на лету.

Как проверить карту перед отправкой

Сломанная карта хуже, чем её отсутствие: робот тратит обход на ошибки. Перед отправкой пройдите короткий чеклист.

  1. Файл открывается в браузере и отдаёт код 200, тип содержимого application/xml или text/xml.
  2. XML валиден: нет незакрытых тегов, кодировка UTF-8, спецсимволы в адресах экранированы (& записан как &amp;).
  3. Все адреса с одного домена и протокола, на котором лежит сама карта.
  4. Выборочно проверьте десяток адресов: открываются, отдают 200, не закрыты noindex.
  5. Размер и количество в пределах лимитов, иначе индексный файл.

Базовую валидацию делают Яндекс Вебмастер и Google Search Console в разделе с картами, плюс есть онлайн-валидаторы XML. Для большого сайта удобнее прогнать карту через краулер: он покажет, сколько адресов отдают редиректы или 404. Это часть общей гигиены, ближе познакомиться с ней помогает разбор про внутреннюю оптимизацию сайта.

Как отправить карту в поисковики

Сделать карту это половина дела. Дальше её надо показать поисковикам, причём двумя способами сразу.

Способ первый: через robots.txt

В файл robots.txt добавьте строку с полным адресом карты. Её читают все поисковые роботы, и это самый универсальный путь:

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

Если карт несколько, указывайте индексный файл или перечислите все строками Sitemap:. Строка работает независимо от блоков User-agent и может стоять в любом месте файла.

Способ второй: через панели вебмастеров

Этот путь даёт обратную связь, какой robots.txt не даёт. Вы видите, сколько адресов поисковик нашёл, сколько проиндексировал и какие ошибки заметил.

  • Яндекс Вебмастер: раздел «Индексирование», подраздел «Файлы Sitemap». Добавляете адрес карты, через какое-то время там появляется статус обработки и счётчик страниц.
  • Google Search Console: раздел «Файлы Sitemap». Вставляете адрес, видите статус «Успешно», количество обнаруженных URL и дату последнего чтения.

Отправили один раз, дальше поисковик сам перечитывает карту по расписанию. Принудительно дёргать её повторно при каждой новой статье не нужно, особенно если стоит честный lastmod.

Сколько ждать результата

Реалистичные ориентиры, цифры условные и зависят от размера сайта и его авторитетности. Первое чтение карты Яндексом и Google занимает от нескольких часов до нескольких суток. Появление новых страниц в индексе после этого ещё от пары дней до двух-трёх недель. Молодой сайт без истории индексируется медленнее, старому с регулярным контентом роботы доверяют больше и приходят чаще.

Если через две недели после отправки страницы из карты так и не в индексе, проблема обычно не в самой карте, а в качестве страниц, дублях или запретах. Тогда стоит провести технический аудит и смотреть на структуру и индексацию целиком.

Частые ошибки и как их избежать

  • В карте есть страницы с noindex или закрытые в robots.txt. Робот получает противоречивый сигнал. Чистите карту от всего, что не должно индексироваться.
  • Адреса с редиректами и 404. Карта со старыми адресами после переезда сайта тянет вниз доверие. После смены структуры пересоберите её под новые адреса.
  • Несовпадение протокола: карта на https, а внутри адреса на http или с www, когда основное зеркало без www. Поисковик считает их чужими.
  • Карта не обновляется. Сгенерировали один раз руками и забыли, новые страницы туда не попадают. Лечится автоматической генерацией.
  • Забыли указать карту в robots.txt и в вебмастере. Файл лежит на сервере, но роботы про него не знают.
  • Один гигантский файл сверх лимита в 50 000 адресов. Разбивайте на части с индексным sitemap.

Частые вопросы

Обязательно ли иметь XML-карту сайта? Формально нет, поисковики умеют обходить сайт по ссылкам. Но на сайте крупнее пары десятков страниц карта заметно ускоряет и стабилизирует индексацию. Для блога или каталога это рабочий инструмент, который стоит настроить один раз.

Чем отличается XML-карта от HTML-карты? XML-карта это файл для поисковых роботов, человек её обычно не видит. HTML-карта это страница со ссылками для посетителей, помогает навигации и перелинковке. Это разные вещи, и одна не заменяет другую, хотя польза от обеих есть.

Как часто обновлять карту сайта? Если генерация автоматическая, карта обновляется сама при каждом изменении контента, и думать об этом не нужно. При ручной сборке обновляйте после каждой партии новых или удалённых страниц. Поисковик сам перечитывает файл по расписанию, отдельно пинговать его не обязательно.

Нужно ли указывать lastmod и priority? lastmod указывать стоит, по нему робот понимает, что страница изменилась, и приходит перечитать. Но дата должна быть честной, иначе поисковик перестанет ей верить. priority и changefreq влияют слабо, Google их почти не учитывает, заполняйте по возможности, но не тратьте на ручную подгонку время.

Можно ли добавить в карту страницы с другого домена? Нет. Все адреса в карте должны быть с того же домена и протокола, на котором лежит сам файл. Адреса с чужого домена поисковик проигнорирует. Для поддоменов делают отдельные карты на каждом.

Карта отправлена, а страницы не индексируются, что делать? Сначала проверьте сами страницы: открыты ли для индексации, нет ли noindex, не дубли ли это, есть ли на них уникальный полезный контент. Карта только показывает адреса, она не заставляет поисковик их брать. Если со страницами порядок, посмотрите отчёты в вебмастере, там обычно видна причина отказа.

Коротко: чеклист

  • Собрали карту: только канонические адреса с кодом 200, открытые для индексации.
  • Убрали из неё noindex, редиректы, 404, дубли с метками и фильтрами.
  • Проставили честный lastmod, по возможности через автоматическую генерацию.
  • Проверили валидность XML, кодировку, совпадение протокола и домена.
  • Уложились в лимиты, при необходимости сделали индексный sitemap.
  • Указали карту в robots.txt строкой Sitemap:.
  • Добавили её в Яндекс Вебмастер и Google Search Console, следим за статусом.

Карта сайта это не разовая галочка, а часть технической гигиены, которая работает в связке с robots.txt, каноническими тегами и структурой сайта. Если хочется, чтобы сайт индексировался быстро и стабильно приводил заявки, а не просто существовал в поиске, начните с порядка в технике. Нужна пара свежих глаз на ваш сайт, оставьте заявку, разберём индексацию и точки роста вместе.