
Сделать карту сайта sitemap.xml на WordPress можно за две минуты, а на статичном сайте из двадцати страниц — за полчаса руками в блокноте. Сложность не в создании файла, а в том, что три четверти карт, которые я вижу на сайтах клиентов, содержат адреса с редиректами, закрытые от индексации страницы и дату обновления «сегодня» у всех записей разом. Такая карта не помогает роботу, а сбивает его с толку. Ниже — требования к файлу по справке Яндекса с точными цифрами, три способа получить карту, что писать в дате изменения и как сообщить о карте поисковику.
Отдельно разберём встроенный механизм WordPress, о котором многие владельцы сайтов не знают и потому ставят третий плагин поверх двух работающих. Если техническая часть сайта в целом запущена, есть продвижение сайта в Яндексе с наведением порядка в индексации, но карту вы сделаете и сами.
Что карта делает и чего она не делает
Карта сайта — это файл со списком адресов, который вы отдаёте поисковому роботу, чтобы он узнал о страницах быстрее, чем обойдёт их по ссылкам. Больше она не делает ничего.
Формулировка справки тут важна: наличие адреса в карте не гарантирует, что страница попадёт в результаты поиска. Карта — один из сигналов, а не команда. Если страница закрыта метатегом, отдаёт ошибку или признана дублем, присутствие в карте её не спасёт.
Зато карта решает три реальные задачи. Первая — робот узнаёт о новых страницах, на которые внутри сайта ещё не стоят ссылки. Вторая — робот видит дату последнего изменения и понимает, к чему возвращаться. Третья, самая недооценённая: по карте панель вебмастера строит отчёты, и вы получаете сравнение «страниц в карте столько-то, в поиске столько-то» — разница и есть ваш список проблем.
Обычно в карту принято включать все значимые страницы сайта. Значимые — это те, которые вы хотите видеть в поиске. Служебные адреса, корзина, страницы авторизации, результаты внутреннего поиска в карту не попадают.
Требования к файлу: точные цифры
Требования из справки Яндекса по файлам Sitemap короткие, но нарушают их постоянно.
| Параметр | Требование | Что будет при нарушении |
|---|---|---|
| Количество адресов в одном файле | Не более 50 000 | Файл не обрабатывается, часть адресов теряется |
| Размер файла в несжатом виде | Не более 50 МБ | То же: карта не принимается |
| Формат | XML или TXT | Другие форматы робот не читает |
| Кодировка | UTF-8 | Кракозябры в адресах, ошибки разбора |
| Домен | Только адреса того домена, где лежит файл | Чужие адреса игнорируются |
| Код ответа при обращении к файлу | 200 OK | Файл не будет обработан вообще |
| Длина одного адреса | До 2048 символов, из них до 1024 на доменное имя | Слишком длинный адрес отбрасывается |
| Содержимое | Только доступные страницы своего сайта | Робот тратит обход на мусор, растёт число исключённых |
Если сайт больше 50 000 страниц, карта разбивается на несколько файлов, а они перечисляются в индексном файле карты. Робот обрабатывает такие файлы по отдельности, и это занимает больше времени, чем обработка одной карты.
Про сроки: по справке, обработка добавленного файла роботом занимает примерно две недели. Так что если вы добавили карту вчера и сегодня ничего не изменилось — это нормально, а не поломка.
Карта на WordPress: встроенная, плагин и конфликт между ними
Здесь у WordPress есть важная особенность, про которую забывают.
Встроенная карта ядра
Начиная с версии 5.5 XML-карта встроена в сам движок. Никаких плагинов для неё не нужно: откройте в браузере адрес вида https://вашсайт.ру/wp-sitemap.xml — это индекс карты, в котором перечислены отдельные файлы. По умолчанию карты создаются для всех публичных типов записей и таксономий, а также для архивов авторов и главной страницы. В одном файле карты по умолчанию до 2000 записей, дальше движок создаёт следующий.
Два предупреждения. Первое: если в настройках чтения включена опция «Попросить поисковые системы не индексировать сайт», встроенные карты автоматически отключаются — откройте адрес и убедитесь, что файл отдаётся. Второе: встроенная карта содержит только адреса страниц, без даты изменения, частоты и приоритета. Для большинства сайтов этого достаточно.
Плагин
Плагины оптимизации строят свою карту, обычно по адресу /sitemap.xml или /sitemap_index.xml, и дают то, чего нет у ядра: выбор, какие типы записей включать, исключение отдельных страниц, дату изменения. Если вы уже пользуетесь таким плагином, отдельная карта ядра вам не нужна.
Что делать с двумя картами сразу
Типичная ситуация: работает плагин и одновременно отдаётся карта ядра. Формально это не ошибка — робот разберётся. Но на практике вы получаете два списка адресов, которые расходятся между собой, и невозможность понять, какой из них видит поисковик. Решение простое: оставьте один источник. Если ведёте карту плагином, встроенную отключают фильтром в файле functions.php дочерней темы — перед правкой обязательно сделайте резервную копию сайта.
add_filter( 'wp_sitemaps_enabled', '__return_false' );
Подробный разбор того, чем именно это оборачивается на живых сайтах, есть в материале про конфликт карты плагина с картой ядра.
Как собрать карту вручную
Для сайта на 10–50 страниц, сделанного без движка, карта пишется руками. Это обычный текстовый файл с расширением .xml. Структура такая:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://вашсайт.ру/</loc>
<lastmod>2026-09-14</lastmod>
</url>
<url>
<loc>https://вашсайт.ру/uslugi/</loc>
<lastmod>2026-08-30</lastmod>
</url>
</urlset>
Блок <url> повторяется для каждой страницы. Обязателен только <loc> — полный адрес с протоколом. Файл сохраняется в кодировке UTF-8 и кладётся в корень сайта рядом с главной страницей.
Есть и упрощённый вариант: Яндекс принимает карту в формате TXT — это просто список полных адресов, по одному в строке, без единого тега. Для сайта-визитки такой файл делается за пять минут и работает.
Чего в ручной карте делать не надо: перечислять картинки как отдельные страницы, вставлять адреса с параметрами, добавлять страницы, закрытые метатегом, и дублировать один адрес в разных написаниях — со слешем и без, с www и без.
Что писать в lastmod и почему приоритет можно не трогать
Тег <lastmod> — дата последнего изменения страницы. Пишется в формате «год-месяц-день». Смысл в нём только один: показать роботу, что страница действительно изменилась и её стоит перечитать.
Отсюда главное правило: дата должна быть правдой. Самая распространённая порча карты — когда плагин или самописный скрипт проставляет сегодняшнюю дату всем адресам при каждой генерации. Робот получает карту, в которой «вчера изменились» все 800 страниц сайта, и перестаёт доверять этому полю. Если ваша карта каждое утро показывает свежую дату у страницы «О компании», которую не трогали три года, — это не оптимизация, а шум.
Про теги <changefreq> и <priority>. Это подсказки, а не команды: робот сам решает, когда и в каком порядке обходить страницы. Проставленный всем страницам приоритет 0.8 не даёт ничего, и встроенная карта WordPress их вообще не выводит. Не тратьте на них время.
Как сообщить поисковику о карте
Способа два, и они не взаимоисключающие — делайте оба.
Строка в robots.txt. Директива Sitemap межсекционная, её читают все роботы. Адрес пишется полностью, с протоколом и доменом:
Sitemap: https://вашсайт.ру/sitemap.xml
Относительный путь вида /sitemap.xml — ошибка, такую строку робот не поймёт. Если карта разбита на несколько файлов, в robots.txt указывают адрес индексного файла.
Добавление в панели вебмастера. В Яндекс Вебмастере есть раздел с файлами Sitemap, куда карта добавляется вручную. Плюс этого способа в том, что вы сразу видите статус обработки и ошибки. Там же работает анализатор файлов Sitemap — он проверяет корректность формата, структуры и доступности файла. Если при обращении возвращается не 200, файл обработан не будет, и анализатор это покажет.
Типичные ошибки в карте и как их чинить
| Ошибка | Чем грозит | Как исправить |
|---|---|---|
| Адреса с 301-редиректом | Робот тратит обход на лишний шаг, дата изменения бессмысленна | Перегенерировать карту после смены адресов, вставлять конечные адреса |
| Адреса, отдающие 404 | Растёт доля ошибок, падает доверие к карте | Удалить из карты, проверить внутренние ссылки на эти адреса |
| Страницы, закрытые метатегом noindex | Противоречие: в карте зовёте, в коде запрещаете | Определиться: либо убрать из карты, либо снять запрет |
| Одинаковая свежая дата у всех адресов | Поле перестаёт нести информацию | Настроить вывод реальной даты изменения записи |
| Адреса с www при основном без www | Робот получает список зеркал вместо страниц | Привести все адреса к основной версии |
| Карта отдаёт 404 или 500 | Файл не обрабатывается совсем | Проверить адрес в robots.txt и работу плагина |
| Карта не обновляется при добавлении страниц | Новые страницы робот находит только по ссылкам | Проверить кэширование и настройки плагина |
| Больше 50 000 адресов в одном файле | Файл не принимается | Разбить на части и сделать индексный файл |
| В карте страницы пагинации и фильтров | Обход уходит на технические адреса | Исключить их в настройках плагина |
Проверка карты — отдельная тема со своим порядком действий, по ней есть подробный разбор: ошибки sitemap, из-за которых страницы не попадают в индекс. Здесь мы говорим про создание, там — про диагностику готового файла.
Когда карта не решит задачу
Карта — это список адресов. Она не чинит структуру сайта и не заменяет внутренние ссылки.
Страницы в карте есть, а в поиске их нет. Значит, дело не в карте: проверьте robots.txt, метатег на странице, канонический адрес, код ответа сервера и то, насколько страница вообще отличается от соседних.
Карта есть, а робот доходит только до верхних уровней. Классическая проблема глубокой вложенности: страницы лежат на пятом-шестом уровне от главной, и робот обходит их редко. Карта тут помогает мало, чинить нужно структуру и перелинковку. Сюда же относится и навигация: хлебные крошки работают как карта сайта для робота и часто дают больше, чем XML-файл.
Нужна карта для посетителей, а не для робота. Это другой файл и другая задача — обычная страница со списком разделов, про неё есть отдельный материал: HTML-карта сайта.
Сайт на конструкторе. Карта там обычно создаётся автоматически и не настраивается. Если платформа кладёт в неё служебные адреса, убрать их вы не сможете — остаётся работать с тем, что есть, или менять платформу. Когда непонятно, что именно чинить в первую очередь, помогает доработка сайта по техническому списку: карта там идёт одним из пунктов, а не единственной задачей.
Частые вопросы
Сколько карт сайта нужно
Одна, если страниц меньше 50 000. Больше — разбиваете на файлы и делаете индексный. Две карты одновременно (от плагина и от ядра) не запрещены, но создают путаницу.
Нужно ли сжимать карту в gzip
Для небольшого сайта нет смысла. Ограничение в 50 МБ считается по несжатому размеру, так что сжатие спасает только от проблем с передачей очень больших файлов.
Надо ли добавлять карту в панель, если она указана в robots.txt
Строки в robots.txt достаточно, чтобы робот нашёл файл. Но добавление в панели даёт отчёт об ошибках и статус обработки, а это единственный способ увидеть, что именно поисковик считает проблемой. Делайте и то и другое.
Сколько ждать после добавления карты
Обработка файла занимает примерно две недели, а при использовании индексного файла с несколькими картами — дольше. Ежедневно проверять статус бессмысленно.
Что делать, если в карте 200 адресов, а в поиске 60
Это нормальный рабочий сигнал, а не поломка. Откройте раздел с исключёнными страницами в панели и посмотрите статусы: там будет видно, что именно не пустило страницы в поиск — запрет, дубль, ошибка ответа или низкая ценность страницы.
Коротко
Карта сайта ускоряет обнаружение страниц, но не гарантирует попадание в поиск. Это сигнал роботу, а не команда, и работает он только вместе с нормальной доступностью страниц.
Требования по справке Яндекса: до 50 000 адресов и до 50 МБ в несжатом виде на файл, форматы XML и TXT, кодировка UTF-8, только адреса своего домена, код ответа 200 при обращении к файлу. Больше страниц — разбиваете на части и делаете индексный файл.
На WordPress карта уже есть в движке начиная с версии 5.5 и лежит по адресу wp-sitemap.xml. Если вы используете плагин, оставьте один источник, а встроенную отключите фильтром — иначе получите два расходящихся списка адресов.
В lastmod пишется реальная дата изменения страницы. Одинаковая сегодняшняя дата у всех адресов обесценивает это поле. Теги частоты и приоритета можно не заполнять вообще.
Сообщите о карте двумя способами сразу: строкой Sitemap с полным адресом в robots.txt и добавлением в разделе файлов Sitemap в панели вебмастера, где видно ошибки и статус обработки.
Карта наводит порядок в том, как робот узнаёт о ваших страницах, но приводить людей будут сами страницы. Реклама даёт переходы, пока списываются деньги; позиции в поиске остаются активом и продолжают работать при выключенном кабинете. Здравая стратегия — держать оба канала и постепенно наращивать долю бесплатного. Если после настройки карты половина страниц всё равно не попадает в поиск, разберём причины на консультации по продвижению — на выходе будет список конкретных правок, а не общие советы.
Увеличьте позиции и продажи вашего сайта
Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:
Остались вопросы по продвижению?
Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.
Связаться со мной →
Комментарии
Артём
Оказывается, у меня работают обе карты — и плагина, и та, что в ядре. Причём в них разное количество страниц. Какую указывать в robots.txt и что делать со второй?
Анатолий Кузнецов автор
Сначала откройте обе и посмотрите, какая точнее отражает реальность: обычно у плагина больше настроек и меньше мусора, потому что в ней исключены архивы и вложения. Её и оставляйте. Вторую выключите фильтром wp_sitemaps_enabled в functions.php дочерней темы, предварительно сделав копию сайта. В robots.txt должна остаться одна строка Sitemap с полным адресом выбранной карты. После этого зайдите в панель вебмастера, удалите оттуда старую карту и добавьте актуальную, иначе отчёт об ошибках будет строиться по файлу, которого уже нет.
Клавдия
Спасибо за таблицу с требованиями, не знала про 50 000. У нас интернет-магазин, товаров около 80 тысяч. Правильно понимаю, что нужен индексный файл?
Анатолий Кузнецов автор
Да, но с оговоркой. Технически всё просто: карта разбивается на файлы по 50 000 адресов и меньше, они перечисляются в индексном файле, его адрес вы указываете в robots.txt и в панели. Обрабатываются такие файлы по отдельности, и это занимает больше времени, чем одна карта. Оговорка в другом: 80 тысяч карточек — это почти всегда история про обход. Прежде чем строить многотомную карту, посмотрите, сколько страниц робот реально скачивает в сутки. Если он успевает обойти три тысячи, карта на восемьдесят не ускорит ничего — сначала нужно разбираться со скоростью ответа сервера и с мусорными адресами.
Леонид
Не согласен насчёт priority. Я расставил приоритеты по важности разделов, и через два месяца главные страницы стали обходиться заметно чаще. Так что работает.
Анатолий Кузнецов автор
Тут стоит развести два события. Вы расставляли приоритеты — значит, карта была перегенерирована, а вместе с ней, скорее всего, обновились и даты изменения, и сам файл отправился роботу заново. Любая из этих причин объясняет рост частоты обхода не хуже, чем приоритеты. Проверяется это только раздельным экспериментом: перегенерировать карту без изменения приоритетов и посмотреть, повторится ли эффект. Я не утверждаю, что поле игнорируется полностью, — я говорю, что это подсказка, а решение об очерёдности обхода робот принимает сам. И что встроенная карта WordPress его вообще не выводит, а сайты на ней обходятся нормально.
Елена
А правда, что если страница есть в карте, она обязательно попадёт в поиск? Мне так подрядчик объяснял.
Виталий
Елена, нет. В справке прямо написано, что попадание всех указанных адресов в результаты поиска не гарантируется. У меня в карте 1200 страниц, в поиске 900, и причины у каждой сотни свои — от дублей до откровенно слабых текстов.
Жанна
Сайт статичный, на HTML, страниц 18. Делать XML руками не хочется. Формат TXT — это действительно просто список адресов в столбик?
Анатолий Кузнецов автор
Да, Яндекс принимает карту в формате TXT: полные адреса, по одному в строке, никаких тегов. Сохраняете в UTF-8, кладёте в корень, прописываете строку Sitemap в robots.txt с полным адресом файла. Для восемнадцати страниц это ровно то, что нужно. Единственное, чего вы лишитесь, — даты изменения, но на статичном сайте из восемнадцати страниц робот и так обойдёт всё за один визит. Когда сайт вырастет до сотни страниц, перейдёте на XML или на движок с автоматической картой.
Константин
Добавлю про lastmod: у меня плагин кэширования отдавал карту из кэша, и дата в ней замерла на дне, когда кэш создался. Новые статьи в карте появлялись, а дата у всех была одна. Помогло исключение адреса карты из кэширования.
Алла
У нас карта открывается, но в панели висит статус, что файл не обработан. Уже третью неделю. Куда копать?
Анатолий Кузнецов автор
Проверьте три вещи по порядку. Первая — код ответа: если при обращении к файлу сервер возвращает не 200, файл обработан не будет, даже если в браузере он у вас открывается. Проверять надо инструментом проверки ответа сервера, а не глазами, потому что роботу сервер может отвечать иначе. Вторая — не закрыт ли сам адрес карты в robots.txt: такое бывает, когда карта лежит внутри запрещённой папки. Третья — размер и число адресов: превышение 50 000 адресов или 50 МБ означает, что файл не принимается. Если всё в порядке, прогоните карту через анализатор файлов Sitemap в панели: он покажет ошибку в структуре, если она есть.
Богдан
Проверил wp-sitemap.xml — отдаёт 404. Оказалось, была включена галочка «попросить не индексировать», которую поставил разработчик два года назад. Спасибо, нашёл только благодаря статье.
Михаил
Мне кажется, карта сайта сильно переоценена. Робот и так ходит по ссылкам, а нормальная внутренняя перелинковка решает ту же задачу лучше. Трачу время на структуру, а не на XML.
Диана
Михаил, в целом согласна, но есть нюанс с новыми страницами. У меня блог, статья выходит и на неё три дня нет ни одной внутренней ссылки, пока не поправлю подборки. Через карту робот узнаёт о ней в тот же день. Так что одно другому не мешает.
Валерия
Вопрос по исключениям: стоит ли включать в карту страницы пагинации каталога? Плагин по умолчанию их добавляет, а я не уверена, что это правильно.