Зачем нужен файл sitemap.xml (карта сайта для роботов) и как с ним работать. Мифы и реальность

В последнее время часто приходится отвечать на вопросы, связанные с файлами sitemap. Всплеск интереса к этому далеко не самому важному аспекту оптимизации сайтов объясняется выходом новой версии Яндекс.Вебмастера, который помечает отсутствие карты сайта как ошибку.

В разделе “Возможные проблемы” показывается следующее уведомление:

Нет используемых роботом файлов Sitemap
Робот не использует ни одного файла Sitemap. Это может негативно сказаться на скорости индексирования новых страниц сайта. Если корректные файлы Sitemap уже добавлены в очередь на обработку, сообщение автоматически исчезнет с началом их использования.
Обратите внимание на раздел «Файлы Sitemap».

Так ли страшно это предупреждение? Обязательно ли создавать sitemap и если да, то для чего? Разложим по полочкам.

Что такое sitemap и для чего он предназначен?

Это файл, содержащий список адресов страниц сайта, сформированный по специальному (достаточно простому) стандарту. Подробно о нем можно почитать на www.sitemaps.org.

Чаще всего используется формат xml, который позволяет указывать помимо самих URL-адресов также некоторые их характеристики (частоту обновления и изменения, относительную значимость страницы). Однако можно использовать и совсем простую структуру. Это файл txt, содержащий список URL (каждый с новой строки) – и больше ничего.

Назначение списка – предоставить поисковым паукам информацию об имеющихся на сайте документах. Это помогает роботу найти все страницы ресурса и добавить их в результаты поиска. Дополнительные данные из xml – это рекомендация поисковым паукам чаще или реже посещать те или иные страницы. Кстати, не слышал ничего о том, как эти рекомендации выполняются. Очень может быть что они не учитываются вообще или являются значительно более слабым сигналом по сравнению с другими факторами.

Мифы о карте сайта

1. Достаточно сделать sitemap.xml – и об индексации можно не беспокоиться

Это самое частое заблуждение, сталкиваюсь регулярно. На самом деле для крупных сайтов (сотни тысяч страниц) полнота индекса – одна из наиболее важных проблем и простым размещением карты сайта она не решается. Карта дает роботу возможность найти все страницы, но это не значит, что а) индексации не помешает что-то другое, например, технические проблемы и б) поисковая система сочтет страницу “достойной” быть в поиске.

Для индексации всех страниц даже относительно небольшого (30 – 50 тысяч страниц) сайта нередко приходится прилагать дополнительные усилия. См. обзорную статью на эту тему а также описание автоматизированного подхода к ускорению индексации.

2. Sitemap обязателен для всех сайтов

Маленькие проекты (до тысячи страниц) с более-менее адекватной структурой, когда можно в пару кликов перейти на любую страницу, прекрасно себя чувствуют и без него. Это понятно как из общих соображений (основной механизм нахождения материалов для индексации – это переходы по внутренним ссылкам), так и из практики. Видел десятки сайтов без карты, которые полностью корректно воспринимались роботом.

Наконец, о том же говорит Гугл в своей справке:

Если страницы файла корректно связаны друг с другом, поисковые роботы могут обнаружить большую часть материалов. Тем не менее, с помощью файла Sitemap можно оптимизировать сканирование сайта, особенно в следующих случаях:

  • Размер сайта очень велик. Поисковые роботы Google могут пропустить недавно созданные или измененные страницы.
  • Сайт содержит большой архив страниц, которые не связаны друг с другом. Чтобы они были успешно просканированы, их можно перечислить в файле Sitemap.
  • Ваш сайт создан недавно, и на него указывает мало ссылок. Робот Googlebot и другие поисковые роботы сканируют Интернет, переходя по ссылкам с одной страницы на другую. Если на ваш сайт указывает мало ссылок, его будет сложного найти.
  • На сайте используется мультимедийный контент, он отображается в Новостях Google или использует другие аннотации, совместимые с файлами Sitemap. Из файлов Sitemap может получать дополнительную информацию для отображения в результатах поиска.

3. Если удалить страницу из sitemap, она выпадет из индекса

Аналогично – миф. Сталкивался с огромным количеством сайтов, где sitemap отваливался из-за технических проблем или отдавался роботам в сильно урезанном виде. Это могло вредить попаданию в поиск новых страниц, но со старыми все было в порядке.

Наоборот, нередко используется прием “удалим из карты все проиндексированное чтобы сосредоточить внимание робота на новых страницах”. Он дает определенный эффект в плане оптимизации краулинга (сканирования) сайта. Однако для большинства случаев я не рекомендую его использовать, о причинах см. ниже.

4. Обязательно нужно настраивать все доп. параметры (приоритет, частота обновления)

Нет. Как уже упоминалось, можно без проблем использовать обычный txt-файл со списком url. Разумеется, хуже от указания максимума информации в карте не будет. Однако:

  1. Нет достоверных данных о том, что поисковики действительно учитывают эти инструкции. Вообще-то Яндекс зачастую игнорирует даже куда более жесткую рекомендацию – заголовок сервера Last-Modified и If-Modified-Since (см. подробнее).
  2. Даже если сигналы учитываются строго по заявлениям поисковиков – то есть как рекомендация – то выигрыш в эффективности сканирования будет чаще всего весьма незначителен. Исключение – по-настоящему крупные проекты, где полнота индекса критична.
  3. Указание всех данных требует от SEO-аналитика дополнительной кропотливой работы по подбору их значений.
  4. Аналогично, настройка генерации файла со всеми параметрами – это дополнительные затраты на разработку.
  5. Пункты 3 и 4 еще серьезнее, чем кажутся. Ведь сайт меняется, должны меняться и расширенные данные, иначе рекомендации станут неактуальными.

Думаю, на этом хватит о мифах, перейдем к настоящим рекомендациям.

Как правильно работать с sitemap?

Большая часть необходимых сведений о создании файлов и предоставлении роботам доступа к ним содержится в справке поисковых систем. См. помощь Google и Яндекса. Я же расскажу о нескольких неочевидных моментах.

Во-первых, файл со списком url сайта, к которому легко получить доступ, может пригодиться не только поисковым роботам. Он крайне удобен для ряда задач SEO-аналитики.

Пара примеров.

Оценка полноты и качества индекса

Раз мы точно знаем количество доступных для поисковых систем страниц (число ссылок в карте посчитать несложно) – значит, можем быстро оценить, насколько полно он проиндексирован. Делаем грубую оценку через оператор “site:” (лучше с некоторыми ухищрениями, см. о проверке индексации в Google).

Если количество страниц в выдаче меньше, чем в карте – находим те, что ускользнули от роботов и загоняем их в поиск – правкой структуры, Твиттером (инструкция) и т.д.

Если больше – то в поиск могли попасть случайно сгенерированные, “мусорные” страницы. Их нужно найти и либо довести до ума, либо закрыть с помощью robots.txt, canonical, мета-тегов. Опять же, для поиска лишнего пригодится список нужного, чем и является sitemap.

Поиск страниц, которые не приносят трафик

Если страница есть на сайте, но не приносит нам посетителей в течение долгого времени, с ней что-то не так. Подобные url нужно найти и разобраться в причинах – зачастую это помогает здорово поднять трафик.

Как это сделать? Хотя бы так:

Строим в Метрике отчет по страницам входа из поиска за квартал:
829bd90bdd

Фильтруем по источнику – по одной из поисковых систем, под которую работаем: 5042252ee0

И выгружаем список страниц (данные таблицы) в excel.

Теперь нам осталось:

а) перегнать xml-карту в excel (для этого есть море онлайн-конвертеров).

б) используя функции excel находим url, которые есть в столбце из карты, но нет в столбце из Метрики.

Алгоритм выглядит довольно громоздко, но ничего сложного в нем нет. А для ленивых ценящих свое время (таких как я) есть автоматизация процесса. Один из отчетов моего сервиса анализа сайта как раз проверяет списки из sitemap по разным параметрам. Например, вчера вышло обновление, где на основе sitemap работает поиск потенциально опасных страниц, которые загоняются в индекс ссылочным спамом от конкурентов, желающих навредить сайту.

Подобных примеров можно привести еще много. Суть не в них, а в том, что  иметь под рукой актуальный перечень страниц сайта очень полезно. К нему можно быстро получить доступ с помощью разных сервисов и софта (на крайний случай – используя excel) и использовать в процессе оптимизации сайта.

Да что там говорить, даже стандартный технический аудит с применением парсеров вроде Screaming Frog делать удобнее, если подать на вход не url главной страницы, как обычно, а sitemap. Процесс делается более управляемым: можно заранее отобрать для анализа часть страниц (например, по самому проблемному разделу) и не ждать, пока будут обработаны другие.

Это был первый не очень очевидный момент.

Как лучше дать роботам доступ к карте?

В некоторых случаях лучше не указывать ссылку на stiemap в robots.txt, а отправлять вручную через Google Search Console и Яндекс.Вебмастер. Дело в том, что в robots.txt ее может увидеть кто угодно. Например, какой-нибудь злодей, который ищет где спарсить контент. Не стоит облегчать ему задачу.

Если дать SEO-паранойе разгуляться еще сильнее – то приходит мысль не использовать стандартное имя (sitemap.xml), а назвать файл как-нибудь иначе, чтобы ее не нашли, введя традиционное название.

Не скажу, что это особо критичный совет, но почему бы не подстелить соломки, если это несложно?

Резюме

  1. Файл sitemap помогает сайту в плане индексации, но отнюдь не является панацеей. Если есть проблемы с полнотой индекса – их нужно решать комплексно.
  2. Использовать необязательно, но желательно для крупных сайтов и некоторых специфичных задач (см. выше цитату из справки Google).
  3. Предыдущий пункт справедлив в отношении задачи “облегчить жизнь поисковым роботам”. Однако для задач анализа сайта и принятия решений в процессе оптимизации иметь под рукой карту удобно практически для всех сайтов (кроме совсем маленьких).
  4. Важнейшее требование к sitemap (помимо соответствия стандартам) – это полнота и актуальность. Для задач SEO-аналитики карта выступает как эталон, с которым сравнивают другие списки url-адресов (те, что в индексе; на которые есть входящие ссылки; на которые есть переходы из поиска и так далее). Поэтому при создании нужно сразу позаботиться о ее регулярном обновлении.
  5. Если есть необходимость управлять индексацией путем удаления уже проиндексированных страниц из sitemap, то можно иметь 2 разных файла – один отдавать роботам, а другой держать для собственных нужд по анализу.

Уф, вроде бы простой предмет, а статья почти на 1500 слов. Поздравляю себя с ее написанием и вас – с прочтением. Мы оба небывало усидчивы для эпохи социальных сетей и непрерывного отвлечения!

11 комментариев

  1. Маленькая поправка: ” перегнать xml-карту в excel (для этого есть море онлайн-конвертеров).” – Excel и сам, без конвертеров умеет открывать xml-файлы. Вкладка Данные/Источники данных/Из веб (Data/Get External Data/ From Web)

    “Например, какой-нибудь злодей, который ищет где спарсить контент. Не стоит облегчать ему задачу” – а кто помешает злодею использовать тот же Screaming Frog? Мне кажется, тут уже слишком перестраховка.

    • Олег, спасибо за дополнение! Не знал про такую функцию Excel.

      Мне кажется, тут уже слишком перестраховка.

      В целом согласен. Просто если карта генерируется с указанием временем изменения или хотя бы просто регулярно обновляется – то злодей легко сможет находить, например, свежий контент и с удобством его парсить.

  2. С помощью какой дирекиивы файле robots.txt один sitemap открыть для робота гугла, а другой для всех остальных роботов?

    • Ирина, если я правильно понял вопрос, то нужно просто использовать robots.txt с директивами User-agent: * (ниже инструкции для всех остальных, в том числе директива Sitemap) и User-agent: Googlebot (аналогично для Google).

    • Директива Sitemap межсекционная – поэтому сразу отдаётся всем роботам. Тоже хотел отдать разные Sitemap простой Яндексу и и вызывающий у него ошибки, но очень расширенный Гуглу. всё просто пишете в robots 2 Sitemap: сначала простой, потом расширенный – оба возьмут оба, на второй Яндекс немного побухтит.

      • Другими словами, сервисы могут создать сайтмап, а вот есть ли способ посмотреть сколько страниц указано в сайтмапе. Если их много и они ещё и разделены на категории по датам, то визуально это становится довольно проблематично сделать.

        С уважением, администратор сайта WPuse.ru

      • А, это несложно.
        Например, в Search Console есть инструмент (Сканирование – Файлы Sitemap – Добавление/Проверка). Результат выглядит так:

  3. Алексей, привет! Спасибо за статью, но в ней мало технических информации, которую действительно стоит учесть при создании карты сайта. Ниже представляю рекомендации из своего чек-листа:
    2.2 Правильная XML-карта сайта Sitemap:
    • Файл должен располагаться на том же домене, что и сайт, для которого он составлен и указывать только на страницы этого домена.
    • При обращении к файлу сервер должен возвращать код 200 ОК, без редиректа.
    • В файле необходимо использовать кодировку UTF-8.
    • Карта сайта должна быть всегда актуальной, поэтому она должна автоматически генерироваться.
    • Файл может содержать не более 50 000 ссылок, а размер в несжатом виде не должен превышать 10 Мб. Если Sitemap не удовлетворяет этим требованиям, разбейте его на несколько отдельных файлов и укажите их в файле индекса Sitemap.
    • В файле ссылки должны быть с главным зеркалом сайта и правильным протоколом.
    • В карте не должно быть битых ссылок, с перенаправлением, страниц фильтрации товаров, запрещенных к индексации страниц, неканонических страниц или удаленных URL-адресов. Только актуальные ссылки.
    • Атрибуты ссылок lastmod, changefreq и priority должны отражать действительность, иначе они вводят в заблуждение и их можно не использовать.

Оставить ответ