Логотип seo-prodvizhenie-biznesa.ru
+7 (921) 333-77-45

Как сделать карту сайта sitemap.xml: для WordPress и вручную

Как сделать карту сайта sitemap.xml: для WordPress и вручную
Анатолий Кузнецов
Анатолий Кузнецов
SEO-оптимизатор с 20-летним стажем. Автор блога seo-prodvizhenie-biznesa.ru о продвижении и доработке сайтов.

Сделать карту сайта 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-оптимизатор

Остались вопросы по продвижению?

Меня зовут Анатолий Кузнецов, я 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.

Диана

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

Валерия

Вопрос по исключениям: стоит ли включать в карту страницы пагинации каталога? Плагин по умолчанию их добавляет, а я не уверена, что это правильно.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 Нажимая «оставить комментарий» вы принимаетеправила конфиденциальности 

Прокрутить вверх