Задача прикладная: открыт чужой сайт, нужно за минуту узнать, есть ли карта и что в ней. Порядок проверки — три шага.
Шаг первый: robots.txt
Откройте сайт.ru/robots.txt и найдите строку, начинающуюся со слова Sitemap. Это самый надёжный путь: адрес карты владелец указывает именно там, и он может быть каким угодно.
Насколько это работает, мы проверяли на выборке: из 73 доступных файлов robots.txt строка Sitemap нашлась в 72. В другом прогоне, по 83 сайтам, адрес карты лежал в robots.txt во всех случаях, когда карта вообще была.
Строк Sitemap может быть несколько: отдельный файл для товаров, отдельный для статей и отдельный для картинок.
Шаг второй: обычный адрес
Если robots.txt пуст или недоступен, пробуйте прямые адреса:
сайт.ru/sitemap.xml
сайт.ru/sitemap_index.xml
сайт.ru/sitemap1.xml
сайт.ru/sitemap.xml.gz
Первые два покрывают почти всё: sitemap.xml ставят вручную и большинство движков, sitemap_index.xml — стандартное имя указателя у WordPress с популярными плагинами. Вариант .gz — то же самое, только сжатое; браузер предложит её скачать, и это нормальный, предусмотренный протоколом случай.
Шаг третий: понять, что открылось
Три разных исхода легко перепутать.
| Что видите | Что это | Есть ли карта |
|---|---|---|
Текст с тегами <url> и <loc> | та самая карта | да |
Список файлов <sitemap> | указатель на несколько файлов | да, открывайте вложенные |
| Обычная страница со ссылками и меню | HTML-страница «карта сайта» для людей | нет |
| Страница 404 или главная | карты по этому адресу нет | нет |
Четвёртая строка требует внимания: на несуществующий адрес часть площадок отдаёт не 404, а главную страницу с кодом «всё в порядке». Выглядит как ответ, а карты при этом нет: в нашем замере так вели себя 10 площадок из 242.
Сколько площадок вообще без карты
Мы прогнали 242 сайта компаний своего города через собственный движок проверок. Карта отсутствует у 36 — это 15%, примерно каждый седьмой.
Для сравнения, в том же прогоне: нет микроразметки у 104, канонической ссылки у 90, заголовка H1 у 86, заголовка Open Graph у 85. Карта пропадает реже всего из этого списка, зато её отсутствие сказывается сильнее прочих.
Что делать с ответом
Файл нашёлся. Дальше по нему читается состав: сколько адресов, какие разделы, когда обновлялись. Это отдельный разговор, и он у нас разобран подробно.
Карты нет. Для небольшой площадки это не приговор: робот дойдёт по ссылкам. Проблема начинается там, где страницы не связаны меню — карточки товаров, статьи трёхлетней давности, посадочные под рекламу.
Файл есть, но пустой или старый. Такое встречается чаще, чем полное отсутствие: его сгенерировали один раз при запуске и забыли. Проверяется по датам внутри и по числу адресов — если их заметно меньше, чем страниц, файл устарел.
Проверка одной строкой
Для тех, кому удобнее в терминале:
curl -s сайт.ru/robots.txt | grep -i sitemap
Если ответ пуст — пробуйте прямые адреса тем же curl и смотрите первую строку ответа:
curl -sI сайт.ru/sitemap.xml | head -1
Код 200 — файл есть, 404 — нет, 301 или 302 — карта переехала, идите по адресу из заголовка Location.
Границы
Числа выше — по компаниям одного города, отобранным из поиска по коммерческим запросам. У интернет-магазинов доля площадок с картой, скорее всего, выше: движки магазинов обычно создают её сами. Такую выборку мы не мерили.
Коротко
Сначала robots.txt и строка Sitemap — в ней адрес, каким бы он ни был. Потом четыре обычных написания. И третьим шагом посмотрите, что именно открылось: HTML-страница для людей и XML-файл — разные вещи, а ответ «всё в порядке» на несуществующий адрес выдают 10 площадок из 242.
