Генератор sitemap.xml — создать карту сайта онлайн
Карта сайта — это XML-файл со списком адресов. Минимально достаточный sitemap.xml, который примут и Google, и Яндекс, выглядит так:
<?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-11-10</lastmod>
</url>
<url>
<loc>https://example.com/pricing/</loc>
<lastmod>2026-10-02</lastmod>
</url>
</urlset> Готовый файл положите в корень сайта, допишите в robots.txt строку Sitemap: https://example.com/sitemap.xml и один раз отправьте адрес в Яндекс Вебмастере и Search Console. Дальше поисковик перечитывает файл сам.
Инструмент ниже не сканирует сайт — он собирает файл из вашего списка адресов. Поэтому здесь нет ни лимита в 500 или 1000 страниц, как у краулеров, ни регистрации: список никуда не отправляется, XML собирается прямо в браузере. Если списка адресов пока нет, его почти всегда можно получить за минуту — см. таблицу ниже.
что читают Google и Яндекс ↓ · лимиты и форматы ↓ · где взять список адресов ↓ · ошибки Вебмастера ↓
Предпросмотр обрывается на 400-й строке. В скачанном файле есть все адреса.
Вставьте адреса по одному в строке и получите sitemap.xml, который пройдёт проверку в Google Search Console и Яндекс Вебмастере. Амперсанды в параметрах экранируются как положено, дубли убираются, а список длиннее 50 000 адресов разбивается на пронумерованные файлы с индексом сверху. Значения lastmod, changefreq и priority можно задать сразу для всех или переопределить в отдельной строке.
Какие элементы читают Google и Яндекс
У двух поисковиков разные списки. Яндекс в документации называет ровно четыре поддерживаемых элемента, и всё, что сверх них, для него «неизвестный тег» — он молча отбрасывает такие данные. Google, наоборот, два элемента из этих четырёх игнорирует, зато понимает три расширения, о которых Яндекс не знает.
| Элемент | Яндекс | Что делает | |
|---|---|---|---|
| <loc> | обязательный | обязательный | Абсолютный адрес вместе с протоколом. Внутри обязательно экранировать &, <, >, " и '. До 2048 символов, причём Яндекс делит лимит так: не больше 1024 на домен и не больше 1024 на путь. |
| <lastmod> | учитывает | учитывает | Формат W3C Datetime: 2026-11-10 или 2026-11-10T14:30:00+03:00. Google пользуется датой, только пока она выглядит правдоподобно; у Яндекса значение не длиннее 100 байт. |
| <changefreq> | игнорирует | учитывает | Google перестал его учитывать: слишком многие объявляли hourly на страницах, которые не трогали годами. В документации Яндекса элемент остаётся в списке поддерживаемых. |
| <priority> | игнорирует | учитывает | Число от 0.0 до 1.0. Рычагом ранжирования не был никогда — максимум подсказка о порядке обхода внутри вашего же сайта, а не против чужих. |
| <xhtml:link rel="alternate" hreflang="…"> | учитывает | не поддерживает | Официальный способ объявить языковые версии прямо в карте, а не в head каждой страницы. Требует объявления пространства имён xhtml в <urlset>. |
| <image:image> | учитывает | не поддерживает | Расширение для Google Картинок: адрес изображения, подпись и заголовок вкладываются внутрь того <url>, к которому относятся. |
| <video:video> | учитывает | не поддерживает | Превью, заголовок, описание и длительность — для видеорезультатов. |
| <news:news> | учитывает | не поддерживает | Только для сайтов, принятых в Google Новости, и только для материалов за последние два дня. |
Языковые версии удобно объявлять прямо в карте, а не в head каждой страницы: тогда достаточно поправить один файл. Для этого нужно объявить пространство имён xhtml в корневом теге:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/pricing/</loc>
<xhtml:link rel="alternate" hreflang="ru" href="https://example.com/ru/pricing/"/>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/pricing/"/>
</url>
</urlset> Генератор выше собирает только четыре базовых элемента — то есть ровно то подмножество, которое понимают оба поисковика. Расширения с языковыми версиями, картинками и видео дописываются вручную.
Лимиты, форматы и требования к файлу
Каждая строка здесь — это отдельная ошибка в Яндекс Вебмастере, если её нарушить. Числа взяты из протокола sitemaps.org и из документации обоих поисковиков.
| Что | Предел | Чем это грозит |
|---|---|---|
| Адресов в одном файле | 50 000 | Дальше список нужно разбить на файлы и связать индексом. Яндекс сообщает об этом как «Число URL превышает заданный предел». |
| Размер файла без сжатия | 50 МБ (52 428 800 байт) | Предел считается по распакованному файлу, поэтому упаковать 60 МБ в gzip и отчитаться — не решение. |
| Длина одного адреса | 2048 символов | Яндекс делит лимит на две части: до 1024 символов на домен и до 1024 на путь, всё длиннее отклоняет. |
| Карт в индексном файле | 50 000 | Индекс не может ссылаться на другой индекс — это отдельная ошибка в Вебмастере, а не предупреждение. |
| Кодировка | UTF-8 | Кириллические адреса Яндекс распознаёт и в закодированном, и в исходном виде; Google ждёт закодированные, поэтому percent-encoding безопаснее. |
| Расположение файла | Корень сайта | Карта может перечислять только адреса своего уровня и ниже: файл в /blog/sitemap.xml не имеет права указывать на /pricing. |
| Форматы, которые примет Google | XML, RSS 2.0 / Atom 1.0, простой текст | Обычный .txt со списком адресов по одному в строке в UTF-8 и до 50 000 строк — для Google полноценная карта сайта. |
| Форматы, которые примет Яндекс | Только XML | Яндекс прямо указывает, что RSS- и Atom-фиды через Sitemap не передаются. Если нужны оба поисковика, общий формат один — XML. |
| Код ответа при обращении к файлу | 200 | Редирект, отданная вместо файла 404-я страница или Disallow на его путь — и карта не будет прочитана вообще. |
| Сжатие | gzip (.xml.gz) | Оба поисковика распаковывают. На больших файлах полезно, на маленьких смысла нет. |
После 50 000 адресов файл один быть не может. Карты нумеруются, а сверху появляется индекс — единственный адрес, который нужно отправлять в поиск:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-1.xml</loc>
<lastmod>2026-11-10</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-2.xml</loc>
<lastmod>2026-11-10</lastmod>
</sitemap>
</sitemapindex> Загружать на сервер нужно все файлы, а в Вебмастер и Search Console отправлять только индекс. Индекс, ссылающийся на другой индекс, не допускается.
Где взять список адресов вашего сайта
Это главный вопрос, который онлайн-генераторы обходят молчанием. Начните с того, что откройте вашсайт.ru/sitemap.xml: если файл отдаётся, карта у вас уже есть и собирать её заново не нужно. Если нет — вот откуда берётся список.
| Платформа или ситуация | Что открыть | Подробности |
|---|---|---|
| WordPress | /wp-sitemap.xml | Встроено с версии 5.5, плагин не нужен; с 6.5 добавлен lastmod. Yoast и Rank Math отключают встроенную карту и отдают свою по адресу /sitemap_index.xml. |
| Tilda | /sitemap.xml | Собирается платформой автоматически. Править содержимое нельзя — можно только убрать страницу из публикации. |
| 1С-Битрикс | Маркетинг → Поисковая оптимизация → Настройка sitemap.xml | Файл генерируется агентом по расписанию. Если агенты на хостинге не выполняются, карта устаревает молча — проверяйте дату файла. |
| OpenCart | Модули → Google Sitemap (feed) | Включите модуль и скопируйте выданный адрес фида. Отдаётся как XML, по структуре — обычная карта. |
| Joomla | расширение OSMap или JSitemap | В ядре карты сайта нет, нужен компонент. |
| Shopify, Wix, InSales, uKit | /sitemap.xml | Отдаётся платформой и не настраивается. Если туда попадают ненужные адреса, убирать их приходится на уровне самих страниц. |
| Любой сайт до 500 страниц | Screaming Frog SEO Spider → Sitemaps → XML Sitemap | Бесплатная лицензия ограничена 500 адресами за обход, но экспорт карты в неё входит. Для статики и самописных сайтов — самый быстрый путь. |
| Уже проиндексированные страницы | Яндекс Вебмастер → Индексирование → Страницы в поиске → выгрузка; Search Console → Индексирование страниц → экспорт | Подходит, когда доступа к исходникам нет: берёте то, что поисковик уже знает о сайте, и вычищаете мусор. |
| Свой бэкенд или таблица | SQL-выборка или колонка в Excel / Google Таблицах | Самый надёжный источник: канонические адреса определяете вы, а не краулер. Колонку можно вставить в инструмент как есть. |
| Поиск по site: | site:example.com в Google или Яндексе | Полноты не даёт и выгрузки тоже. Годится только чтобы заметить лишние адреса, которые в карту попадать не должны. |
Собирать карту руками стоит в трёх случаях: платформа складывает в неё мусор — пагинацию, адреса с параметрами, страницы с noindex и редиректы; нужна карта только для части сайта; или сайт статический и генерировать карту нечему. В остальных случаях встроенная карта лучше хотя бы потому, что обновляется сама.
Ошибки Яндекс Вебмастера и что они значат
В справочнике Яндекса 29 ошибок обработки карты; ниже пятнадцать, которые встречаются чаще всего. Search Console формулирует короче и поэтому менее понятно, так что разбирать причину удобнее по этой таблице — ошибки у двух поисковиков по сути одни и те же. В последнем столбце отмечено, какие из них на собранном здесь файле невозможны: это касается только содержимого карты, на ответ вашего сервера генератор повлиять не может.
| Ошибка | Причина | Исключена генератором |
|---|---|---|
| «Невалидный XML» | Файл не является корректным XML. В девяти случаях из десяти — неэкранированный амперсанд в адресе с параметрами; реже посторонние символы перед объявлением <?xml. | да |
| «Неизвестный тег» | Тег недопустим в этом контексте. Яндекс понимает только loc, lastmod, changefreq и priority — расширения Google вроде xhtml:link или image:image для него неизвестны. | да |
| «Неверная кодировка» | Файл не в UTF-8: нужно либо объявление encoding="UTF-8" в первой строке, либо UTF-8 BOM. | да |
| «Не правильный адрес страницы» | Адрес не соответствует стандарту: относительный путь вида /pricing, пробел внутри адреса, отсутствующий протокол. | да |
| «Некорректный URL (не соответствует местоположению файла Sitemap)» | Адрес лежит вне каталога карты и его подкаталогов — либо карта не в корне, либо в списке чужой домен. | нет |
| «Слишком длинный URL» | Адрес длиннее 1024 символов в своей путевой части. | нет |
| «Число URL превышает заданный предел» | В файле больше 50 000 адресов. Нужно разбить их на части и собрать индексный файл. | да |
| «Размер файла превышает заданный предел» | Больше 50 МБ в распакованном виде. | да |
| «Файл Sitemap index не может содержать ссылки на файлы Sitemap index» | Индекс сослался на другой индекс. Вложенность индексов не допускается. | да |
| «Число файлов Sitemap превышает заданный предел» | В индексном файле больше 50 000 ссылок на карты. | да |
| «Тег встречается более одного раза» | Например, два lastmod у одного адреса — чаще всего результат склейки двух списков. | да |
| «Тег не должен быть пустым» | Пустой <loc> или <lastmod> без значения — обычно пустая строка в исходном списке. | да |
| «Ошибка HTTP» | Сервер ответил кодом, отличным от 200: карта за редиректом, на 404-й странице или закрыта авторизацией. | нет |
| «URL запрещен в файле robots.txt» | Директива Disallow закрыла путь к самому файлу карты. | нет |
| «Слишком много ошибок (обработка прекращена)» | Найдено больше 100 ошибок, и Яндекс прекратил разбор файла, не дочитав его до конца. | нет |
Как это работает
- 1 Вставьте адреса По одному в строке. Подойдут полные URL, короткие пути вида /pricing и колонка, скопированная из таблицы — укажите базовый адрес, и пути подставятся к нему. Пустые строки и строки с # пропускаются.
- 2 Задайте lastmod, changefreq и priority Выберите значения сразу для всех адресов или допишите их через запятую в нужной строке: /blog/post, 2026-09-20, weekly, 0.8. Автоматический приоритет считается по глубине пути: главной достаётся 1.0, вложенным страницам меньше.
- 3 Скачайте и отправьте в поиск Прочитайте предупреждения, нажмите «Скачать» и положите sitemap.xml в корень сайта. Затем добавьте строку Sitemap: https://вашдомен.ru/sitemap.xml в robots.txt и отправьте адрес в разделе «Файлы Sitemap» в Search Console.
Ваши данные защищены
Всё обрабатывается прямо в вашем браузере. Никакие файлы или текст не отправляются на наши серверы. Отключите интернет — инструмент продолжит работать.
Часто задаваемые вопросы
- Куда класть файл sitemap.xml?
- Технически куда угодно, но по умолчанию — в корень: https://вашдомен.ru/sitemap.xml. Место важно потому, что карта может перечислять только адреса на своём уровне и ниже. Файл в /blog/sitemap.xml не имеет права указывать на /pricing, а корневой — может перечислить всё. После загрузки пропишите его в robots.txt и отправьте в Search Console или Яндекс Вебмастере.
- Влияют ли changefreq и priority на что-нибудь?
- Google не учитывает ни то, ни другое и открыто сказал об этом в 2023 году: слишком многие проставляли priority 1.0 всем страницам подряд, и сигнал обесценился. Bing и Яндекс их по-прежнему читают. Вреда от этих элементов нет, поэтому здесь они необязательные: включите для других поисковиков или выключите ради компактного файла.
- В каком формате указывать lastmod?
- W3C Datetime: либо YYYY-MM-DD, либо полная метка времени вроде 2026-09-20T14:30:00+03:00. Привычный формат 20.09.2026 парсер не примет. В отличие от changefreq, дату Google действительно использует, но только если ей доверяет: если каждую ночь проставлять всему сайту сегодняшнее число, поисковик просто перестанет смотреть на это поле.
- Что делать, если адресов больше 50 000?
- В одну карту помещается не более 50 000 адресов или 50 МБ в несжатом виде — что наступит раньше. Если вставить больше, инструмент разложит список по файлам sitemap-1.xml, sitemap-2.xml и так далее, а в sitemap.xml соберёт индекс со ссылками на них. Загружать нужно все файлы, а отправлять в поиск — только индекс.
- Почему карта не проходит проверку?
- В девяти случаях из десяти виноват неэкранированный амперсанд. Адрес /search?q=shoes&sort=price внутри элемента loc обязан выглядеть как /search?q=shoes&sort=price, иначе XML считается битым и файл отклоняется целиком. Генератор экранирует &, <, >, кавычки и апострофы сам. Вторая частая причина — BOM или лишний пробел перед объявлением XML.
- Какие адреса не стоит включать?
- Всё, что не является канонической и индексируемой версией страницы: редиректы, страницы с noindex, адреса, закрытые в robots.txt, страницы пагинации-дубли и те, чей canonical ведёт в другое место. Search Console помечает их ошибками и предупреждениями, и отчёт перестаёт быть полезным. В карте должны быть только страницы, которые вы хотите видеть в выдаче.
- Помогает ли карта сайта в ранжировании?
- Нет. Она помогает обнаружению, а это другое. Карта сообщает роботам, какие адреса существуют, поэтому новые и глубоко запрятанные страницы находятся быстрее. Выше в выдаче они от этого не станут, а небольшой сайт с нормальной перелинковкой обходится и без неё. Смысл появляется от нескольких сотен страниц или когда на страницы вообще ниоткуда не ссылаются.
- Моя CMS уже отдаёт sitemap.xml — генератор нужен?
- Чаще всего нет, и это честный ответ. WordPress с версии 5.5, Tilda, Shopify, Wix и InSales собирают карту сами — проверьте адрес /sitemap.xml, и если он открывается, задача решена. Собирать файл вручную стоит в трёх случаях: платформа кладёт в карту мусор (пагинацию, адреса с параметрами, страницы с noindex и редиректы), нужна карта только для части сайта — например для раздела, который хочется переобойти, — или сайт статический и генерировать карту нечему.
- Чем XML-карта отличается от HTML-карты сайта?
- Это два разных файла для двух разных читателей. XML-карта — служебный список адресов для роботов, в выдаче она не показывается и посетитель её не видит. HTML-карта — обычная страница со ссылками для человека, которая попутно даёт роботу путь к глубоким разделам обычной перелинковкой. Друг друга они не заменяют, но если выбирать одно, роботу полезнее XML, а посетителю — нормальное меню.
- Подойдёт ли вместо XML обычный текстовый список адресов?
- Для Google — да: он принимает файл .txt с одним адресом в строке в кодировке UTF-8, до 50 000 строк, и считает это полноценной картой. Ещё он принимает фиды RSS 2.0 и Atom 1.0. Яндекс не принимает ничего из этого и прямо пишет, что RSS- и Atom-фиды через Sitemap не передаются. Поэтому если нужны оба поисковика, общий формат один — XML.
- Как добавить карту сайта в Яндекс Вебмастер и Search Console?
- В Яндекс Вебмастере: Индексирование → Файлы Sitemap → вставить полный адрес файла. В Search Console: Индексирование → Файлы Sitemap → «Добавление файла Sitemap». В обоих случаях достаточно отправить адрес один раз — дальше поисковик перечитывает файл сам. Строку Sitemap в robots.txt тоже стоит прописать: её читают и те роботы, которым никто ничего не отправлял. Пинг-эндпоинт google.com/ping Google отключил в июне 2023 года, вызовы из деплой-скриптов теперь не делают ничего.
- Можно ли отдавать карту в сжатом виде .xml.gz?
- Да, gzip распаковывают оба поисковика. Но предел в 50 МБ считается по распакованному файлу, поэтому упаковать карту на 60 МБ и отчитаться не получится — нужно разбивать на несколько файлов. На картах в пару сотен килобайт сжатие просто не имеет смысла.
- Как часто нужно обновлять карту сайта?
- Тогда же, когда меняется набор страниц, — не по расписанию. Онлайн-генератор собирает файл один раз, поэтому для сайта, где страницы появляются каждый день, разумнее модуль CMS или сборка на деплое. Главное — не переставлять lastmod всему сайту на сегодняшнюю дату каждую ночь: Google довольно быстро перестаёт доверять полю, и пользы от даты не остаётся вообще.