Все статьи

Генерация sitemap.xml: как автоматически собрать карту сайта

Sitemap.xml изначально не был совместным стандартом: в июне 2005 года Google представил его в одиночку как экспериментальный способ подсказать своему краулеру URL, которые тот мог пропустить, и лишь в ноябре 2006 года Yahoo и Microsoft согласились поддерживать тот же формат — так закрытый файл Google превратился в общий протокол sitemaps.org.

Какие поля действительно важны

Тег <loc> с абсолютным адресом страницы — единственное обязательное поле. <lastmod> стоит заполнять точно, поскольку Google использует его при определении приоритета повторного сканирования — в отличие от <priority> и <changefreq>, которые поисковик, по собственному заявлению, в основном игнорирует.

Кириллические домены и percent-encoding в loc

Домен вроде сайт.рф перед попаданием в <loc> должен быть преобразован в punycode (xn--80aswg.xn--p1ai), а кириллический путь — закодирован побайтово через UTF-8: слово «статья» в адресе превращается в строку вида %D1%81%D1%82%D0%B0%D1%82%D1%8C%D1%8F. Инструмент делает это автоматически, но полезно понимать, почему итоговый URL в файле выглядит совсем не так, как в адресной строке браузера.

Абсолютные адреса и экранирование спецсимволов

Все адреса в sitemap должны быть абсолютными (с протоколом и доменом), а спецсимволы вроде амперсанда — записаны как XML-сущность (&amp;), иначе файл перестаёт быть валидным XML и поисковик может отклонить его целиком, а не только одну некорректную запись.

Зачем это нужно

  • Собрать корректный sitemap.xml из списка адресов сайта без ручного написания XML.
  • Избежать ошибок форматирования, из-за которых поисковик отклоняет весь файл.
  • Обновлять карту сайта после добавления новых страниц, не переписывая разметку вручную.

Яндекс.Вебмастер как отдельный канал отправки

Помимо Google Search Console, в рунете исторически важен отдельный сервис — Яндекс.Вебмастер, куда сайт нужно добавить и подтвердить права отдельно от Google. Готовый sitemap.xml, сгенерированный один раз, можно отправить в оба сервиса без изменений — формат файла общий, различается только интерфейс подачи.

Попробовать инструмент