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-сущность (&), иначе файл перестаёт быть валидным XML и поисковик может отклонить его целиком, а не только одну некорректную запись.
Зачем это нужно
- Собрать корректный sitemap.xml из списка адресов сайта без ручного написания XML.
- Избежать ошибок форматирования, из-за которых поисковик отклоняет весь файл.
- Обновлять карту сайта после добавления новых страниц, не переписывая разметку вручную.
Яндекс.Вебмастер как отдельный канал отправки
Помимо Google Search Console, в рунете исторически важен отдельный сервис — Яндекс.Вебмастер, куда сайт нужно добавить и подтвердить права отдельно от Google. Готовый sitemap.xml, сгенерированный один раз, можно отправить в оба сервиса без изменений — формат файла общий, различается только интерфейс подачи.