Найти в Дзене

Все о Sitemap.xml: зачем нужен и как настроить на сайте

Добрый день дорогие владельцы сайтов и СЕОшники, сегодня мы поговорим про файл sitemap.xml - для чего он нужен, какие задачи выполняет, почему его настройка может быть критически важна (особенно для больших сайтов) и как правильно его настроить. Наливайте чаек-кофек и приступим! Sitemap.xml (файл карты сайта) - это системный файл, в котором находится список всех важных URL-страниц сайта. Другими словами, это технический файл, предназначенный для ботов-краулеров с целью предоставления им в кратком и понятном формате всю информацию о страницах сайта, важных для индексации и продвижения. Во-первых, данный файл позволяет роботам-краулерам поисковых систем в моменте получить информацию о всех страницах сайта, без его полного обхода, на который уйдет достаточно много времени. Вспоминаем про "краулинговый бюджет" - пока бот оббежит весь сайт, пройдет достаточно много времени. Файл карты сайта позволяет краулеру, без всего обохда сайта, сразу получить полную информацию о его структуре. Во-втор
Оглавление

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

Наливайте чаек-кофек и приступим!

Визуализация архитектуры файла карты сайта (Sitemap.xml)
Визуализация архитектуры файла карты сайта (Sitemap.xml)

Что такое файл sitemap.xml и зачем он нужен?

Sitemap.xml (файл карты сайта) - это системный файл, в котором находится список всех важных URL-страниц сайта.

Пример файла карты сайта
Пример файла карты сайта

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

Почему он важен для сайта?

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

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

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

Каким образом - рассмотрим ниже на конкретных примерах.

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

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

Крупные интернет-магазины, новостные сайты и порталы - для них корректная настройка файла sitemap.xml может иметь критическое и даже решающее значение, непосредственно влияющее на посещаемость...

Важно: Для новостных порталов есть более "эффективные" способы как моментально отдать страницу поисковикам, что критически важно для данной тематики, но в данный момент, мы не будем это рассматривать...

Как правильно настроить файл sitemap.xml?

Что же, давайте пройдемся по основным правилам, которые необходимо соблюсти для корректной настройки файла карты сайта, чтобы ваши страницы максимально корректно и своевременно добавлялись в индексы поисковых систем.

№1: Ссылка на Sitemap.xml должна присутствовать в Robots.txt

Первый файл, который анализируют роботы поисковых систем на любом сайте, это robots.txt - в нем обязательно должна быть ссылка на файл карты сайта:

Пример, как выглядит ссылка на файл карты сайта в robots.txt
Пример, как выглядит ссылка на файл карты сайта в robots.txt

Прописывается он обычно в формате:

Sitemap: https://вашсайт.ру/sitemap.xml

Важное дополнение: Если robots.txt обязательно всегда у любого сайта должен начинаться от корня (т.е. быть доступным по адресу вашсайт.ру/robots.txt), то для файла карты сайта это условие не требуется к соблюдению.

Таким образом, файл карты сайта необязательно должен находится по адресу вашсайт.ру/sitemap.xml, допустима и иная вложенность.

Главное правило - чтобы ссылка на файл карты сайта присутствовала в robots.txt.

Краулеры могут предположить что она может находиться по стандартной вложенности, но т.к. это не ультимативное требование, роботы могут просто её не найти на сайте - сылка в роботсе на карту сайта - обязательна.

№2: Размер каждой Sitemap.xml не должен превышать 50 тыс. URL-адресов и весить не более 50 мб

Есть ограничение на кол-во URL-адресов, которые могут находится в одном файле карты сайта - обычно это не более 50 000 ссылок.

https://yandex.ru/support/webmaster/ru/controlling-robot/sitemap - данные из официальной справки Яндекса.
https://yandex.ru/support/webmaster/ru/controlling-robot/sitemap - данные из официальной справки Яндекса.

Таким образом, если у вас на сайте явно больше 50 000 страниц, то рекомендуется создать 1 файл карты сайта для добавления в robots.txt, а уже в нем указать еще ссылки на другие файлы карты сайта, которые будут по очереди удовлетворять данным требованиям.

Пример реализации файла Sitemap.xml для сайтов, у которых более 50 тыс. страниц - указываем в robots.txt ссылку на файл карты сайта, с другими файлами карты сайта соотв. требованиям ПС.
Пример реализации файла Sitemap.xml для сайтов, у которых более 50 тыс. страниц - указываем в robots.txt ссылку на файл карты сайта, с другими файлами карты сайта соотв. требованиям ПС.

Таким образом, для сайта с 1 млн. страниц у нас будет 20 файлов sitemap.xml, ссылки на которые будут находится, например, по адресу вашсайт.ру/sitemap.xml, ссылку на который мы укажем в robots.txt.

Проще говоря, вкладываем ссылки на файлы в один файл, и уже ссылку на него - вносим в robots.txt

№3: Должен не содержать страницы, не предназначеные для сканирования и индексации

Также важное правило - в файле карты сайта должны быть только те URL-адреса, которые мы хотим отдать краулерам для дальнейшей индексации.

Таким образом - параметрические страницы (с GET-параметрами), сортировки, группировки, дубли и неоптимизированные фильтрации - не должны присутствовать в данном файле.

Например, при настройке рекламы или отслеживания референсов могут использоваться UTM-метки - страницы с такими параметрами в файле карты сайта присутствовать не должны.

Что касается параметрических страниц - это отдельная тема, т.к. там тоже есть о чём рассказать и как правильно с ними работать...

Обычно, параметрические страницы имеют символ "?" после полного URL-адреса страницы.

Например: yandex.ru/support/webmaster/ru/controlling-robot/sitemap?ysclid=123456 - как мы видим, после полного адреса страницы есть символ "?" и идет некий идентификатор (ysclid=123456), который позволяет отследить источник перехода в Я.Метрике.

К ним же можно отнести и "якорные" страницы - там обычно используется символ "#".

Также не должны присутствовать sitemap.xml - корзины сайтов, персональные подборки, закрытые разделы от общего пользования (личные кабинеты, входы по паролю) и.т.д

Проще говоря - в файле карты сайта должны быть только адреса сайта, которые мы хотим отправить на индексацию.

№4: Содержать обязательные директивы для Sitemap.xml

Тут стоит сделать небольшое отступление - для файла карты сайта есть обязательные и необязательные директивы.

К обязательным также стоит отнести рекомендацию по самому файлу - рекомендуемый формат XML в кодировке UTF-8.

Обязательные директивы, это то, что точно должно присутствовать в любом файле карты сайта (минимальный набор):

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
</url>
</urlset>

1)<urlset> - корневой элемент с указанием пространства имен. Он оборачивает все теги <url> в файле - без него файл был бы невалидным XML-документом.

2) xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" - необходим для валидации формата предоставляемой информации в файле карты сайта. Допустимо указывать несколько источников:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">

3) <url> - контейнер для каждого URL.

4) <loc> - единственный обязательный тег внутри <url>, содержит полный URL страницы (включая https://).

Если не брать в расчёт документообразующие теги (1 и 2 пункты), то минимальные требования к содержимому файла карты сайта, это чтобы присутствовали ссылки на каждый URL-адрес - это "базовый минимум".

Пример заполнения "минималистичного" Sitemap.xml:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://вашсайт.ru/страница-1</loc>
</url>
<url>
<loc>https://вашсайт.ru/страница-2</loc>
</url>
...
<url>
<loc>https://вашсайт.ru/страница-N</loc>
</url>
</urlset>

Это простой формат предоставления данных поисковым роботам, который содержит только списки URL-адресов страниц сайта, которые вы хотите видеть в индексе.

Этого вполне достаточно для небольших сайтов, где нет проблем со сканированием.

№5: Директивы влияющие на сканирование сайта для Sitemap.xml (необязательные)

Для сайтов, где уже важно давать некие сигналы поисковым роботам о приоритетах сканирования, периодичности и важности страниц относительно друг друга - есть дополнительные директивы.

  • <lastmod> - Дата последнего изменения документа. При обновлении важных данных на странице, дата обновления документа также отображается и в файле карты сайта.
    Это сигнал поисковым роботам, что данную страницу необходимо переобойти и обновить её версию в поисковой выдаче.
  • <changefreq> (неактуально) - Частота изменений. Можно задать некоторую периодичность обновления информации для данной страницы, то есть, как часто роботу стоит переобходить данную страницу и обновлять содержимое в индексе.
  • <priority> (неактуально) - приоритет от 0.0 до 1.0. Можно задать приоритет для каждого типа страниц, который будет учитываться при переобходе страниц (чем выше приоритет, тем раньше относительно страниц с более низким приоритетом, она будет просканирована и обновлена в индексе).
https://yandex.ru/support/webmaster/ru/controlling-robot/sitemap
https://yandex.ru/support/webmaster/ru/controlling-robot/sitemap

Важное доплнение: Фактически, директивы <priority> и <changefreq> уже устарели и являются неким "архаизмом" - Гугл их уже не учитывает, а Яндекс - опционально (как рекомендацию - не более).

Поэтому самой важной директивой из "необязательных" является именно <lastmod>.
Пример реализации тега ластмод в файле карты сайта (Sitemap.xml)
Пример реализации тега ластмод в файле карты сайта (Sitemap.xml)

С помощью корректно настроенной директивы <lastmod> можно подсказывать ботам-краулерам что данные страницы обновились (или недавно были добавлены на сайт) и их нужно просканировать и добавить в индекс.

Как правильно настроить <lastmod> в Sitemap.xml?

Решил все-таки вынести это в отдельный пункт, так как тут есть свои нюансы, которые необходимо правильно реализовать, если вы хотите чтобы ситуация со сканированием вашего сайта действительно улучшилась.

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

Правило №1: Дата обновления документа должна совпадать с реальными изменениями на странице

По сути это самое главное правило - многие СЕОшники просто по дефолту настраивают дату обновления тегов <lastmod> раз в какое-то время, без учёта реальных изменений на самих страницах.

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

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

Таким образом, это не решит ваши проблемы с индексацией страниц сайта, а фактически усугубит - в лучшем случае вы поправите эти недочёты и будете ждать пока роботы "простят" вас и начнут учитывать ластмод, а в противном - будете продолжать "ждать у моря погоды", не понимая "что не так"...

Так что в итоге? Тег ластмод должен отражать реальное изменение контента на страницах.

П.С. Действительно, в СЕО-продвижении "дата обновления контента" учитывается поисковыми роботами как один из сигналов "качества сайта", что влияет на его позиции - но без реального изменения контента вы только навредите своему проекту...

Правило №2: Обновлять даты только при "важных" обновлениях

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

Допустим цена действительно меняется каждый день, но при условии что у вас сотни тысяч товаров, и у всех каждый день обновляется поле <lastmod>, то роботам по идее надо переобойти ВСЕ страницы КАЖДЫЙ ДЕНЬ, но это невозможно из-за ограничений "краулингового бюджета"...

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

То есть, с помощью программистов сделать так, чтобы обновление происходило только при важных событиях.

Именно поэтому ранее я рекомендовал не выводить переменную в виде "цены товара" в мета-теги в предыдущей статье.

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

Sitemap HTML и Sitemap.xml - в чём разница?

Стоит также уделить внимание и данному моменту - в СЕО-продвижении есть 2 термина, тематически схожие, но концептуально различающиеся, это - XML-карта сайта и HTML-карта сайта.

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

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

Если в вопросе сканирования - эти 2 карты схожи, то что касается "кликовой вложенности" уже есть различие.

Все дело в том, что одним из факторов ранжирования документа (страницы) также является и критерий, который учитывает сколько нужно сделать кликов (от главной) чтобы попасть на ту или иную страницу.

И чем меньше нужно сделать этих "кликов" (переходов) от "Главной страницы", тем выше "важность" этого документа в рамках всего сайта.

Поэтому и создают HTML-карту сайта, выводят ссылку на неё в футер сайта и указывают туда список всех важных страниц для продвижения.

Как это работает? Давайте разберем на примере - у нас есть раздел "Смартфоны" - чтобы попасть в него с "Главной" - достаточного 1 клика из меню хедера сайта:

На примере М.видео - в меню хедера, на Главной - есть "Смартфоны"
На примере М.видео - в меню хедера, на Главной - есть "Смартфоны"

При переходе в данную категорию, мы совершили 1 клик - данная страница определенно важна для данного сайта:

Облако тегов в "Смартфонах"
Облако тегов в "Смартфонах"

Теперь мы видим в данной категории (помимо товаров) - облако тегов - чтобы попасть в них нам нужно от "Главной" совершить уже 2 клика:

Несовсем корректный пример, т.к. теги тут тянутся с категории, без учёта доп.вложенности - но суть примерно ясна - чем глубже та или иная страница в кликах от "Главной" тем ниже её ценность в глазах поисковиков.
Несовсем корректный пример, т.к. теги тут тянутся с категории, без учёта доп.вложенности - но суть примерно ясна - чем глубже та или иная страница в кликах от "Главной" тем ниже её ценность в глазах поисковиков.

И допустим, из данной модели смартфона, нас интересует конкретное свойство - это уже 3 клика от "Главной" и так по вложенности...

Чтобы уменьшить эту вложенность до 2х кликов (и всех подобных страниц), создается "Карта сайта" и выводится в футер сайта:

На примере другого сайта.
На примере другого сайта.
"Все бренды" это разновидность HTML-карты сайта
"Все бренды" это разновидность HTML-карты сайта

На данную страницу, обычно которая находится в футере, выводятся страницы, которые выполняют сразу 2 функции:

1) Удобство навигации для посетителя

2) Уменьшить "кликовую вложенность" важных страниц

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

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

Вывод

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

Краулеры видят ваш файл sitemap, но в своем большинстве, они используют директивы в нем как рекомендацию - есть более "жесткие" методы как принудить роботов сканировать именно то что вам нужно, и избегать - что не требуется обновлять.

Важно понимать - что даже корректная настройка файла карты сайта (sitemap.xml) не гарантирует полного решения проблем с индексацией страниц сайта, но если применять это "в комплексе" - однозначно поможет исправить ситуацию.