Sitemap.xml для интернет-магазина: какие страницы включать
Как собрать XML-карту магазина: выбрать товары, категории и фильтры, разделить большой каталог, отправить sitemap в Яндекс и Google и проверить обновление адресов.

Sitemap.xml для интернет-магазина — XML-карта с адресами страниц, которые вы хотите видеть в поиске. Включайте в неё основные доступные адреса товаров, категорий и полезного контента. Убирайте служебные страницы, дубли, редиректы и удалённые адреса. Карта помогает поисковику обнаружить страницы, но не гарантирует их обход, индексацию или позиции.
Для магазина главная задача — согласовать карту с реальным каталогом. Новый товар должен появляться в ней после публикации, удалённый адрес — исчезать, а временное отсутствие товара не должно автоматически уничтожать полезную карточку. Начните с этих правил, затем проверьте, правильно ли их выполняет ваша платформа.
Чем XML-карта отличается от навигации магазина
HTML-карта, меню и категории помогают покупателю перемещаться по сайту. XML Sitemap предназначен для поисковых роботов: в нём перечисляются адреса в специальном формате. Эти инструменты дополняют друг друга. Товар, найденный только в XML-карте, всё равно может быть неудобно найти покупателю.
Карта особенно полезна новому сайту с небольшим числом внешних ссылок, большому каталогу и магазину с частым появлением товаров. Небольшой сайт с хорошими внутренними ссылками поисковик может обходить и без неё. Но автоматически обновляемая карта даёт дополнительный способ сообщить о страницах и проверить список опубликованного контента.
Sitemap не снимает запрет обхода в robots.txt и не отменяет noindex — указание не индексировать страницу. Он также не заменяет canonical, который сообщает предпочтительный адрес среди дублей. Если в карте указан один адрес, а сама страница называет основным другой, настройка передаёт противоречивые сигналы.
Правила обхода отдельно разобраны в статье о robots.txt для интернет-магазина. Здесь используйте простую проверку: каждый включённый адрес должен вести к странице, которую магазин намеренно оставляет доступной для поиска.
Выберите адреса по назначению и состоянию страницы
Не выгружайте все адреса, которые способен создать сайт. Один каталог может порождать тысячи комбинаций сортировки, фильтров и рекламных параметров. Их количество не делает карту полезнее. Для каждой группы сначала определите, нужна ли отдельная страница в поиске.
| Тип страницы | Решение для sitemap | Что проверить |
|---|---|---|
| Главная, категория, карточка товара | Обычно включать | Основной адрес, полезное содержание, доступность |
| Статья или инструкция по выбору | Включать опубликованные страницы | Самостоятельная польза и отсутствие запрета индексации |
| Отдельный вариант товара | Решать по схеме вариантов | Должен ли индексироваться этот URL или общая карточка |
| Посадочная страница фильтра | Включать выборочно | Стабильный адрес, ассортимент, самостоятельная задача |
| Сортировка, рекламная метка, идентификатор сессии | Обычно исключать | Не создаётся ли дубль основной страницы |
| Поиск по сайту, корзина, кабинет, оформление заказа | Исключать | Служебное назначение и защита закрытых данных |
Неканонический дубль или страница с noindex | Исключать | Согласованность карты с правилами индексации |
| Адрес с редиректом, ошибкой 404 или 410 | Исключать | В карте должен остаться подходящий конечный адрес |
Для включённых страниц проверяйте успешный ответ 200 OK, доступ без авторизации и отсутствие технических запретов. Сам код 200 ещё не доказывает полезность: магазин иногда отдаёт этим кодом пустую карточку, сообщение об ошибке или страницу входа.
Варианты, фильтры и страницы списка
У модели могут быть отдельные адреса цвета и размера. Если они являются дублями и основным выбран адрес общей карточки, не перечисляйте все комбинации в sitemap. Если вариант имеет собственную индексируемую страницу, согласуйте её адрес, содержимое и canonical с принятой схемой каталога.
Полезный фильтр тоже отличается от произвольного сочетания параметров. Например, страница «непромокаемые городские рюкзаки» может решать отдельную задачу выбора. Сочетание двух случайных размеров, сортировки и пустого диапазона цен не стоит добавлять только потому, что оно открывается.
Не закрывайте пагинацию автоматически: через следующие страницы категории робот может находить товары. Включение страниц списка в sitemap решайте отдельно по их назначению и правилам индексации. Карта с полным набором карточек не заменяет доступную навигацию по каталогу.
Товары без наличия и снятые модели
Если товар временно закончился, но карточка остаётся полезной, доступной и предназначенной для поиска, её можно сохранить в карте. Покажите фактическое отсутствие, ожидаемое поступление при наличии подтверждения и подходящие альтернативы. Не превращайте карту в ежедневный список только тех товаров, которые прямо сейчас можно добавить в корзину.
При окончательном снятии выберите судьбу страницы. Полезная архивная карточка может остаться, если она отвечает на вопросы о модели. При подходящей прямой замене старый адрес можно перенаправить и убрать из карты; при удалении без замены — отдавать 404 или 410 и также исключить адрес. Массовый редирект всех снятых товаров на главную не объясняет, что произошло с конкретной моделью.
Как выбрать сценарий для карточки, подробнее рассказано в статье о товаре, которого нет в наличии. В sitemap отражайте уже принятое решение, а не используйте включение или исключение как замену управлению страницей.
Сформируйте корректный XML
Обычно карта доступна в корне сайта по пути /sitemap.xml, хотя имя может отличаться. У конструкторов и систем управления сайтом она часто создаётся автоматически. Сначала найдите существующий файл и его настройки: второй независимый генератор способен добавить другой набор адресов и усложнить проверку.
Минимальная XML-карта содержит urlset с пространством имён протокола и записи url, внутри которых стоит обязательный loc. Адреса должны быть абсолютными: с протоколом и доменом. Ниже — учебный пример для условного магазина shop.example; замените его реальными основными адресами.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://shop.example/</loc>
</url>
<url>
<loc>https://shop.example/catalog/ryukzaki</loc>
</url>
<url>
<loc>https://shop.example/product/gorodskoy-ryukzak</loc>
</url>
</urlset>
Используйте кодировку UTF-8 и корректное XML-экранирование. Если у разрешённой страницы есть несколько параметров, знак & внутри loc записывается как &. Например, адрес с ?color=blue&size=m в XML будет содержать ?color=blue&size=m. Это правило синтаксиса, а не рекомендация включать все такие варианты.
В обычной карте перечисляйте адреса одного сайта и придерживайтесь выбранного основного протокола и домена. Не смешивайте HTTP и HTTPS, тестовый домен и рабочий, варианты со слешем и без него, если они перенаправляют друг на друга. Для поддомена с отдельным содержимым проще поддерживать свою карту и подтверждать соответствующий сайт в поисковых сервисах.
Нужны ли lastmod, changefreq и priority
Эти поля необязательны. lastmod сообщает время значимого изменения страницы. Google учитывает его, когда даты последовательно отражают реальные обновления. Если генератор ежедневно ставит текущую дату всем товарам, он не сообщает, какие страницы действительно изменились. При отсутствии достоверного значения лучше опустить поле.
changefreq описывает предполагаемую частоту изменений, а priority — относительную важность внутри сайта по протоколу. Google игнорирует оба значения. Они не устанавливают расписание визитов робота и не поднимают карточку выше конкурентов. Сначала исправляйте состав карты и доступность страниц, а не расставляйте всем товарам приоритет 1.0.
Различайте дату изменения карточки и дату формирования файла. Новая цена, наличие или существенные характеристики могут быть основанием обновить дату страницы при соответствующей логике сайта. Пересборка неизменного каталога сама по себе таким изменением не является.
Разделите большой каталог на несколько карт
Один файл может содержать не более 50 000 адресов и занимать не более 50 МБ в несжатом виде. Если превышен любой предел, разделите карту. Сжатие gzip не увеличивает допустимый объём распакованного XML.
Например, у условного магазина 120 000 подходящих адресов товаров. Их можно распределить по трём файлам с 40 000 адресов, если каждый также укладывается в ограничение размера. Категории и статьи удобно вынести отдельно. Это пример организации, а не обязательный размер части: на объём влияют длина адресов и дополнительные данные.
Объедините файлы индексом Sitemap. В нём перечисляются карты, а не адреса товаров:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://shop.example/sitemap-products-1.xml</loc>
</sitemap>
<sitemap>
<loc>https://shop.example/sitemap-products-2.xml</loc>
</sitemap>
<sitemap>
<loc>https://shop.example/sitemap-products-3.xml</loc>
</sitemap>
<sitemap>
<loc>https://shop.example/sitemap-categories.xml</loc>
</sitemap>
</sitemapindex>
Для обычной настройки размещайте индекс и дочерние файлы на том же сайте, соблюдая требования к путям. Сам индекс тоже имеет ограничения протокола: не более 50 000 записей карт и 50 МБ без сжатия. Проверять нужно не только открытие индекса, но и каждый перечисленный файл.
Когда добавлять изображения
Для Google можно расширить обычную карту данными об изображениях или создать отдельную карту изображений. Это полезно, если значимые фото трудно обнаружить при обычном обходе. Адрес картинки должен быть доступен роботу; запись в XML не отменяет запрет или ошибку загрузки.
Google допускает изображения на другом домене, в том числе CDN. Подтвердите соответствующий домен в Search Console и проверьте доступность файлов. Перед добавлением расширений для других поисковиков сверяйте их поддержку с документацией. Начать можно с корректной карты страниц: расширения не обязательны каждому небольшому магазину.
Настройте обновление вместе с каталогом
Автоматическая генерация должна использовать правила публикации, а не просто брать все строки из базы товаров. Черновик, скрытая позиция и служебный адрес не становятся подходящими для карты из-за наличия записи в системе. Зафиксируйте правило включения для каждой группы страниц и проверьте его на примерах.
У сайта с динамической картой изменения могут появляться при очередном запросе или после обновления кэша. При статической генерации карта обновится только после новой сборки и публикации результата. Добавление товара в административной панели само по себе не доказывает, что поисковик уже получает новый XML.
Проведите небольшой приёмочный тест. Опубликуйте разрешённую тестовую страницу, дождитесь предусмотренного обновления и найдите её точный адрес в карте. Затем скройте или удалите её и проверьте исключение. Временно отсутствующий товар используйте как отдельный сценарий: он не должен исчезать, если правила магазина сохраняют его карточку для поиска.
Если работает CDN или серверный кэш, проверьте файл с публичного адреса после обновления. Генератор может уже содержать правильный список, а посетители и роботы — получать предыдущую версию. Полезно назначить ответственного за публикацию карты и контроль таких расхождений.
Передайте карту Яндексу и Google
Разместите файл по доступному публичному адресу без авторизации. Для обычной рабочей настройки он должен отвечать 200 OK и содержать XML, а не HTML-страницу ошибки. Не запрещайте роботу получать сам файл карты.
В robots.txt можно указать абсолютный адрес карты или индекса:
Sitemap: https://shop.example/sitemap.xml
В Яндекс Вебмастере добавьте адрес в разделе «Индексирование → Файлы Sitemap». В Google Search Console используйте отчёт «Файлы Sitemap» для соответствующего сайта. Добавление через интерфейс помогает видеть ошибки обработки; оно не заменяет доступность файла и правильные адреса внутри.
После изменения уже известной карты не нужно каждый раз удалять и создавать её заново. Яндекс регулярно проверяет обновления. Смотрите дату последнего чтения и статус файла, а затем проверяйте состояние конкретных страниц отдельно. Успешная обработка карты означает, что список принят, но не обещает появления каждого товара в поиске.
Проверьте карту и страницы из неё
Проверка должна ответить на два вопроса: правильно ли сформирован файл и правильно ли выбран его состав. Первый можно закрыть XML-парсером и проверкой формата. Второй требует сопоставления с каталогом и правилами индексации.
- Откройте публичный адрес, проверьте код ответа, содержимое и доступ без входа. Для индекса повторите проверку дочерних файлов.
- Проверьте XML, кодировку, пространство имён, число записей и размер без сжатия. Ошибка экранирования одного адреса может испортить файл целиком.
- Найдите повторяющиеся URL и адреса другого домена. Сверьте HTTPS, регистр пути и варианты со слешем с фактическими основными адресами.
- Проверьте ответы страниц. Уберите редиректы, 404, 410, серверные ошибки и страницы, отдающие пустое содержимое с кодом 200.
- Сопоставьте
canonical,noindexи robots.txt для каждого типа включённых страниц. Одна правильная карточка не подтверждает правильность всех фильтров. - Сверьте карту с перечнем опубликованных страниц, предназначенных для поиска. Найдите как лишние, так и пропущенные адреса.
- После публикации и смены состояния товара повторите проверку обновления, затем посмотрите сообщения поисковых сервисов.
Пример сверки состава
Допустим, в учёте есть 1 000 товарных записей. Из них 80 — черновики, 50 — удалённые позиции, а ещё 70 временно отсутствуют, но имеют полезные открытые карточки. При этих условиях ожидается 870 товарных URL: 1 000 − 80 − 50. Категории и статьи считаются отдельно.
Число 870 само по себе недостаточно. Генератор может случайно пропустить десять нужных товаров и добавить десять дублей, сохранив итоговую сумму. Поэтому сравнивайте множества точных адресов: «должны быть, но отсутствуют» и «присутствуют, но не должны». Такой отчёт полезнее, чем один общий счётчик.
При небольшом каталоге можно проверить все страницы. Для большого сначала выполните автоматическую проверку доступности с разумной нагрузкой на сервер, затем вручную просмотрите примеры каждого шаблона и найденные исключения. Выборочная проверка помогает искать ошибки, но не подтверждает корректность каждого URL.
Частые вопросы
Нужен ли sitemap магазину со ста товарами?
Он может быть полезен, особенно новому сайту, но не является условием индексации. Если платформа создаёт карту автоматически, проверьте её состав и обновление. Одновременно обеспечьте внутренние ссылки на товары из каталога.
Почему товар есть в карте, но отсутствует в поиске?
Карта сообщает об адресе, а решение об индексации принимает поисковик. Проверьте доступность страницы, запреты, выбранный основной адрес, содержание и сообщения в инструменте проверки URL. Успешный статус файла не равен успешной индексации всех записей.
Нужно ли удалять из карты товар, который закончился?
При временном отсутствии обычно можно сохранить полезную индексируемую карточку. При окончательном удалении или перенаправлении уберите старый адрес. Решение должно соответствовать тому, что происходит со страницей и предложением магазина.
Можно ли убрать страницу из поиска, удалив её из sitemap?
Нет. Робот может знать адрес по предыдущему обходу и другим ссылкам. Для удаления из поиска нужна отдельная подходящая стратегия, например доступное роботу указание noindex или корректное удаление страницы. Удаление записи только меняет содержимое карты.
Рабочая карта — проверяемый список нужных страниц, который обновляется вместе с магазином. Начните с точного состава адресов и теста публикации; дополнительные поля и расширения добавляйте, когда они решают конкретную задачу.