Как сделать sitemap.xml и проверить адреса в карте сайта

Sitemap.xml перечисляет основные адреса сайта для поисковых роботов. Создайте карту средствами CMS, проверьте ссылки и настройте обновление после публикаций.
Что должно получиться
По одному постоянному адресу должен открываться файл с актуальными страницами, которые вы хотите показывать в поиске. Внутри — рабочие основные адреса, без черновиков, удалённых материалов и случайных вариантов одной страницы. После публикации или удаления материала состав карты меняется вместе с сайтом.
XML-карта отличается от страницы с навигацией для посетителя. Навигационная карта помогает человеку найти раздел, а sitemap.xml передаёт перечень адресов в машинном формате. Одна не заменяет другую. Также файл не заменяет обычные внутренние ссылки: важную страницу лучше сделать доступной через понятную структуру сайта.
Наличие адреса в Sitemap не гарантирует его появления в результатах поиска. Файл помогает сообщить о страницах, но решение об их обработке и показе принимают поисковые системы. Поэтому проверять нужно отдельно доступность карты, качество её содержимого и состояние самих страниц.
Для небольшого редко меняющегося сайта карту можно подготовить вручную. При регулярных публикациях удобнее генерация средствами CMS или подходящего дополнения. Иначе ручной список быстро расходится с действительностью: новые статьи в него не попадают, а удалённые продолжают числиться.
Из чего это складывается
| Часть | Зачем нужна | Что проверить |
|---|---|---|
| Основные адреса | Указать предпочтительные страницы | Протокол, домен, путь и отсутствие случайных дублей |
| Структура XML | Дать роботу прочитать файл | Кодировку, вложенность и обязательные элементы |
| Дата изменения | Передать сведения об обновлении | Связь даты с изменением страницы, если поле используется |
| Обновление состава | Поддерживать карту в рабочем состоянии | Добавление публикации и исключение удалённого материала |
| Доступ к файлу | Позволить роботу получить содержимое | Публичное открытие, код ответа, отсутствие страницы входа |
| Сообщение поисковым системам | Обозначить местоположение карты | Ссылку в robots.txt или в инструменте вебмастера |
Какие адреса включать
Начните с опубликованных содержательных страниц: услуг, материалов, категорий или товаров, если они предназначены для поиска. Используйте тот вариант адреса, который выбран основным. Не добавляйте одновременно HTTP и HTTPS, варианты с техническими параметрами и копии одной страницы только ради увеличения списка.
Личный кабинет, внутренний поиск, тестовые материалы и закрытые документы не стоит механически переносить в карту. Само отсутствие в Sitemap не защищает их и не запрещает индексирование. Для ограничения доступа нужны отдельные меры, соответствующие назначению страницы.
Если CMS создаёт несколько файлов и общий индекс, это нормально. Общий файл перечисляет карты, а дочерние — страницы. Проверьте оба уровня. Рабочий индекс не подтверждает, что каждый указанный в нём файл существует и содержит актуальные адреса.
Как это сделать по шагам
- Найдите существующую генерацию. Проверьте настройки CMS, установленные дополнения и указание карты в robots.txt. Если карта уже работает, сначала оцените её состав. Не создавайте второй независимый список, который будет обновляться по другим правилам.
- Определите состав страниц. Выберите опубликованные разделы и материалы, предназначенные для поиска. Сверьте их основные адреса. Для спорных страниц сначала решите, должны ли они вообще быть доступны поисковому роботу.
- Включите генерацию или подготовьте XML. В CMS задайте нужные типы материалов и правила обновления доступным штатным способом. Если файл ручной, соблюдайте формат протокола Sitemap. Названия настроек зависят от вашей системы.
- Проверьте сам файл. Откройте его по постоянному адресу и убедитесь, что получен XML, а не сообщение об ошибке, входе или обслуживании. Проверьте разбор структуры подходящим валидатором. Один внешний вид дерева в браузере не подтверждает доступность для робота.
- Проверьте адреса внутри. Сверьте список с опубликованными страницами. Посмотрите код ответа, конечный адрес, основной вариант страницы и ограничения индексирования. Для большого списка используйте инструмент проверки адресов; ручной просмотр нескольких примеров даёт только выборочную проверку.
- Сообщите местоположение карты. Укажите полный адрес файла в robots.txt или передайте его через сервис вебмастера соответствующей поисковой системы. Не передавайте локальный файл с компьютера вместо публичного адреса, если инструмент ожидает ссылку.
- Проверьте обновление. После очередной реальной публикации найдите её адрес в нужной карте. После удаления или изменения адреса проверьте обратное изменение списка. Уточните, происходит ли пересборка автоматически или по расписанию, и запишите этот порядок.
Минимальный пример XML
Для учебной страницы на домене example.org простейший файл может выглядеть так. Это образец структуры, а не адрес вашего сайта. Скопируйте строку в текстовый файл и замените содержимое loc своим полным рабочим адресом.
<?xml version='1.0' encoding='UTF-8'?><urlset xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'><url><loc>https://example.org/service/</loc></url></urlset>
Внутри urlset для каждой следующей страницы добавляют отдельный элемент url с loc. Необязательные поля не нужны ради самого наличия. Если добавляете lastmod, передавайте дату изменения соответствующей страницы, а не произвольную свежую дату для всего списка.
У XML есть правила экранирования специальных символов. Например, амперсанд в адресе с параметрами нужно представить соответствующей XML-сущностью. При генерации это должна делать система, а при ручном редактировании — автор файла. Сам URL при этом должен оставаться тем же адресом страницы после чтения XML.
Как проверить состав без самообмана
Разделите проверку на две стороны. Сначала найдите опубликованные важные страницы, которых нет в карте. Затем найдите записи карты, которым уже не соответствует нужная опубликованная страница. Если смотреть только количество строк, оба дефекта могут остаться незаметными.
Для контрольной выборки возьмите главную, категорию, старый материал и недавно опубликованный. Добавьте страницу, адрес которой менялся, если такая есть. Выборка покажет характерные ошибки, но не подтверждает отсутствие проблем во всём файле. В отчёте указывайте, проверен весь список или только выбранные адреса.
Код ответа проверяют отдельно от текста на экране. Страница может показывать сообщение об отсутствии материала и при этом отвечать 200. И наоборот, оформленная страница ошибки может корректно отвечать 404. Для карты нужны действующие страницы, поэтому важно установить и технический ответ, и смысл полученного содержимого.
Частые ошибки
Собирать список один раз. При публикациях ручная карта постепенно устаревает. Если обновление поручено человеку, назначьте ответственного и понятный момент проверки. Если работает автоматика, всё равно проверьте, что новое содержимое действительно появляется.
Считать количество главным результатом. Большой список не полезнее точного. Удалённые материалы, случайные параметры и промежуточные адреса усложняют контроль. Состав карты должен соответствовать выбранным основным страницам.
Проверять файл только в своей авторизованной сессии. Администратор может видеть то, что недоступно обычному посетителю или роботу. Исключите зависимость от входа в кабинет. При необходимости используйте проверку ответа сервера в инструменте вебмастера.
Обновлять lastmod при каждом создании файла. Так поле перестаёт сообщать об изменении самой страницы. Если достоверной даты нет, не придумывайте её. Необязательное поле можно не включать до появления надёжного источника данных.
Добавлять адрес до публикации. Будущий слаг может отличаться от предполагаемого. Сначала получите фактический адрес опубликованной страницы, затем проверьте его попадание в карту. Для CMS с автоматической генерацией это тоже полезная контрольная проверка.
Путать сообщение о карте с гарантией обхода. Передача ссылки подтверждает только действие с файлом. Дальше отдельно проверяют, смог ли робот получить и обработать карту. Не обещайте срок появления всех страниц в поиске по одному успешному добавлению.
Как проверить
- Известен фактический публичный адрес основной карты или её индекса.
- Файл читается как XML в кодировке UTF-8 и проходит проверку структуры.
- Сервер возвращает для карты 200, без подмены содержимого страницей входа.
- В loc стоят полные основные адреса нужных опубликованных страниц.
- Удалённые страницы и случайные варианты не включены автоматически.
- Каждый дочерний файл индекса доступен и содержит ожидаемый тип страниц.
- Обновление проверено на реальном изменении содержимого сайта.
- Местоположение карты сообщено поисковым системам подходящим способом.
Порядок генерации и контрольный список сохраните рядом с документацией сайта. После смены домена, CMS, протокола или структуры разделов повторяйте проверку адресов. Особенно внимательно смотрите, не остались ли внутри ссылки на тестовую площадку или старый вариант домена.
Формат описан в протоколе Sitemap, подготовка файла — в документации Google, условия обработки Яндексом — в официальной справке Вебмастера.
Выбор основного адреса разобран в справочнике метатегов и canonical. После переноса сайта проверьте генерацию карты заново. Если требуется настройка CMS, задачу можно разместить в разделе разработки.
Вопросы и ответы
Sitemap.xml гарантирует попадание страницы в поиск?
Нет. Карта сообщает о страницах и помогает их обнаружить. Поисковая система отдельно оценивает доступность и содержимое, поэтому включение адреса в файл не является гарантией показа.
Нужно ли делать карту вручную?
Для небольшого стабильного списка это возможно. Если материалы публикуются регулярно, удобнее поддерживаемая генерация средствами CMS. В обоих случаях нужно проверить итоговый состав и обновление.
Почему карта разделена на несколько файлов?
Так может работать генератор: общий индекс перечисляет дочерние карты. Это допустимая структура. Проверьте не только индекс, но и доступность каждого указанного файла.
Можно ли указать относительные адреса?
В XML-карте используйте полные адреса с протоколом и доменом. Относительная ссылка, удобная в тексте статьи, не заменяет полный адрес в элементе loc.
Нужно ли заполнять дату изменения для каждой страницы?
Поле lastmod необязательное. Если оно есть, дата должна соответствовать изменению страницы. Не ставьте сегодняшнюю дату автоматически только потому, что генератор снова создал файл.
Как понять, что проверен весь Sitemap?
Нужно проверить весь список адресов и все дочерние карты, если используется индекс. Просмотр нескольких страниц является выборкой. Сохраняйте объём проверки и найденные ошибки, чтобы не выдать выборочный просмотр за полный контроль.
