Файл sitemap.xml — это инструмент, который позволяет вебмастерам информировать поисковые системы о страницах сайта, доступных к индексации. Также, в XML карте можно указывать дополнительные параметры страниц: дата последнего обновления, частота обновлений и приоритет относительно других страниц. Информация в sitemap.xml может влиять на поведение поискового краулера и, в целом, на процесс индексации новых документов. Sitemap содержит в себе директивы включения страниц в очередь на обход и дополняет robots.txt, содержащий директивы исключения страниц.

В этом руководстве вы найдете ответы на все вопросы, касающиеся использования sitemap.xml.

Sitemap XML

Нужен ли мне sitemap.xml

Поисковые системы используют sitemap для поиска новых документов на сайте (это могут быть html-документы или медиа-контент), которые недоступны через навигацию, но их необходимо просканировать. Наличие ссылки на документ в sitemap.xml не гарантирует его сканирование или индексацию, но чаще всего файл помогает большим сайтам индексироваться лучше. К тому же, данные из XML карты используются при определении канонических страниц, если это специально не указано в теге rel=canonical.

Sitemap.xml важен для сайтов, где:

  • Некоторые разделы недоступны через навигационное меню.
  • Имеется множество изолированных страниц или плохо связанных между собой.
  • Используются технологии, слабо поддерживаемые поисковыми системами (например, Ajax, Flash или Silverlight).
  • Присутствует очень много страниц и есть вероятность, что поисковый краулер пропустит новый контент.

Если это не ваши случаи, то скорей всего sitemap.xml вам не нужен. Для сайтов, где каждая важная для индексации страница доступна в пределах 2х кликов, где для отображения контента не используются технологии JavaScript или Flash, где при необходимости используются канонические и региональные теги, и свежий контент появляется не чаще, чем на сайт заходит робот, в файле sitemap.xml нет необходимости.

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

Техническая информация

  • Sitemap.xml является текстовым файлом формата XML. Однако, поисковые системы также поддерживают текстовый формат (см. следующий раздел).
  • Каждый сайтмап может содержать максимум 50 000 адресов и весить не более 50Мб (10Мб для Яндекса).
  • Можно использовать gzip-сжатие для уменьшения размера файла sitemap.xml и увеличения скорости его передачи. В таком случае используйте расширение gz (sitemap.xml.gz). При этом, ограничения по весу остаются для несжатых сайтмапов.
  • Местоположение файла Sitemap определяет набор URL-адресов, которые можно включить в этот Sitemap. Карта, содержащая адреса страниц всего сайта, должна располагаться в корне. Если сайтмап располагается в папке, то и все URL в этом сайтмапе должны располагаться в этой папке или глубже (см. подробней).
  • Адреса в sitemap.xml должны быть абсолютными.
  • Максимальная длина URL — 2048 символов (1024 символа для Яндекса).
  • Спецсимволы в URL (типа амперсанда "&" или кавычек) должны маскироваться в HTML-сущности.
  • Указанные в карте страницы должны отдавать 200 http-код статуса.
  • Перечисленные в карте адреса не должны быть закрыты в файле robots.txt или в meta-robots.
  • Sitemap не должен быть закрыт в robots.txt, иначе поисковая система его не просканирует. Сам файл может находиться в индексе, это нормально.

Форматы XML карт

Поисковые системы поддерживают простой текстовый формат карты сайта, где просто списком перечислены URL-адреса страниц без дополнительных параметров. В таком случае файл должен иметь кодировку UTF-8 и иметь расширение .txt.

Также поисковиками поддерживается стандартный XML-протокол. Google дополнительно поддерживает сайтмапы для изображений, видео и новостей.

Пример файла Sitemap, содержащий только один адрес.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://devaka.ru/</loc>
    <lastmod>2018-06-14</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
  </url>
</urlset>

XML-теги
urlset (обязательный) — указывает стандарт текущего протокола.
url (обязательный) — родительский тег для каждого URL-адреса.
loc (обязательный) — URL-адрес документа, должен быть абсолютным.
lastmod — дата последнего изменения документа в формате Datetime.
changefreq — частота изменения страницы (always, hourly, daily, weekly, monthly, yearly, never). Значение этого тега является рекомендацией поисковым системам, а не командой.
priority — приоритетность URL относительно других адресов (от 0 до 1) для очередности сканирования. Если не указывается, то по умолчанию равна 0.5.

XML карта для изображений

Некоторые оптимизаторы вставляют в sitemap.xml ссылки на изображения аналогично ссылкам на html-документы. Так можно делать, но лучше для Google использовать расширение стандартного протокола и вместе с урлами отправлять дополнительную информацию об изображениях. Создавать XML карты изображений полезно, если картинки необходимо сканировать и индексировать, и при этом, они напрямую не доступны боту (например, используется JavaScript).

Пример карты сайта, содержащей одну страницу и принадлежащие ей изображения

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>http://example.com/primer.html</loc>
    <image:image>
      <image:loc>http://example.com/kartinka.jpg</image:loc>
    </image:image>
    <image:image>
      <image:loc>http://example.com/photo.jpg</image:loc>
    <image:title>Вид на Балаклаву</image:title>
    <image:geo_location>Севастополь, Крым</image:geo_location>
    <image:license>http://creativecommons.org/licenses/by-nd/3.0/legalcode</image:license>
    </image:image>
  </url>
</urlset>

XML-теги
image:image (обязательно) — информация об одном изображении. Максимум может использоваться 1000 изображений.
image:loc (обязательно) — путь к файлу изображения. Если используется CDN, то допустимо ссылаться на другой домен, если он подтвержден в панели для вебмастеров.
image:caption — подпись к изображению (может содержаться длинный текст).
image:title — название изображение (обычно короткий текст).
image:geo_location — место съемки.
image:license — URL лицензии изображения. Используется при расширенном поиске по картинкам.

Поиск изображений с определенной лицензией

 

Подробнее о файлах Sitemap для изображений:
https://support.google.com/webmasters/answer/178636

XML карта для видео

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

Подробнее о файлах Sitemap для видео:
https://developers.google.com/webmasters/videosearch/sitemaps

Файл Sitemap для новостей

При наличии на сайте новостного контента и участии в Google Новостях полезно использовать Sitemap для новостей, так Google будет быстрей находить ваши свежие материалы и индексировать все новостные статьи. В этом случае Sitemap должен содержать только адреса страниц, опубликованных за последние 2 дня и содержать не более 1000 урлов.

Подробнее о файлах Sitemap для новостей:
https://support.google.com/news/publisher-center/answer/74288

Использование нескольких карт

При необходимости можно использовать несколько карт сайтов, объединяя их в один индексный сайтмап. Несколько sitemap.xml используются в случаях, когда:

  • На сайте используется несколько движков (CMS).
  • На сайте больше 50 000 страниц.
  • Необходимо настроить удобное отслеживание ошибок в разделах.

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

Если у вас 2 и более сайтмапа, их необходимо объединить в индексный сайтмап, который выглядит также как обычный (за исключением наличия тегов sitemapindex и sitemap вместо urlset и url), имеет аналогичные ограничения и может ссылаться только на обычные XML карты (не на индексные).

Пример Sitemap Index:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>http://www.example.com/sitemap-blog.xml.gz</loc>
    <lastmod>2004-10-01T18:23:17+00:00</lastmod>
  </sitemap>
  <sitemap>
    <loc>http://www.example.com/sitemap-webinars.xml.gz</loc>
    <lastmod>2005-01-01</lastmod>
  </sitemap>
</sitemapindex>

sitemapindex (обязательный) — указывает стандарт текущего протокола.
sitemap (обязательный) — содержит информацию об отдельном sitemap.
loc (обязательный) — местоположение sitemap (в формате xml, txt или rss для Google).
lastmod — время изменения сайтмапа. Позволяет поисковикам быстро обнаруживать новые URL на сайтах больших размеров.

Как создать sitemap.xml

Методы создания XML Sitemap:

  • Внутренние средства CMS. Многие CMS уже поддерживают создание карты сайта. Чтобы это выяснить, почитайте документацию к вашей CMS, посмотрите пункты меню в администраторской панели или обратитесь в техподдержку движка. Загрузите на вашем сайте файл https://вашсайт.com/sitemap.xml, возможно он уже существует и динамически формируется.
  • Внешние плагины. Если в CMS нет функционала генерации карты сайта, и она поддерживает плагины, погуглите, какой из плагинов закрывает вопрос sitemap.xml для вашего движка и установите его. В некоторых случаях необходимо обратиться к программистам, чтобы они написали вам подобный плагин.
  • Отдельный скрипт на сайте. Зная протокол XML карты и технические ограничения, можно создать sitemap.xml самостоятельно, добавив скрипт генерации в CRON. Если вы не программист, используйте другие пункты этого списка.
  • Генераторы Sitemap. Существует множество генераторов sitemap.xml, которые сканируют ваш сайт и дают скачать готовую карту. Недостаток здесь в том, что при каждом обновлении сайта необходимо вручную генерировать сайтмап.
  • Парсеры. Десктопные программы, предназначенные для технического анализа сайта, обычно предоставляют возможность скачать sitemap.xml, сгенерированный на основе просканированных страниц. Работает аналогично генераторам sitemap, только запускается локально на своей машине.

Популярные онлайн-генераторы карты сайта

XML-Sitemaps.com

XML Sitemaps COM

Позволяет получить sitemap.xml в несколько кликов. Поддерживает форматы XML, HTML, TXT и GZ. Удобно использовать для небольших сайтов (до 500 страниц).

XML Sitemap Generator

XML Sitemap Generator

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

My Sitemap Generator

My Sitemap Generator

Имеет множество настроек, позволяет импортировать URL-адреса из CSV-файла. Бесплатно сканирует до 500 урлов.

Check Domains

Check Domains

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

Локальные программы для генерации XML Sitemap

G-Mapper Sitemap Generator

Бесплатная десктопная версия генератора карты сайта под Windows.

Screaming Frog SEO Spider

screaming frog sitemap generator

Гибкий инструмент генерации карты сайта с множеством настроек. Удобно, если вы уже пользуетесь скримин фрогом для других SEO-задач. После сканирования сайта используйте пункт меню Sitemaps -> Create XML Sitemap.

Netpeak Spider

Netpeak sitemap generator

Менее гибкое, но тоже удобное решение для быстрой генерации sitemap.xml. После сканирования сайта необходимо использовать пункт меню Инструменты -> Генерация Sitemap.

Создание Sitemap XML на WordPress

Yoast SEO
Помимо прочих функций, полезных для SEO, позволяет генерировать sitemap.xml.

Google XML Sitemaps
Простой плагин для генерации Sitemap на WordPress.

WP Sitemap Page
Еще один плагин для WordPress, если предыдущие не подошли.

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

Кириллические адреса в sitemap

Несмотря на то, что sitemap протокол позволяет использовать только ASCII символы в URL, Google и Яндекс поддерживают оба формата для кириллических адресов, кодированный и обычный. То же самое с IDN-доменами, можно использовать обычный формат и Punycode. Однако, для совместимости вашего sitemap.xml с различными поисковыми системами и сервисами, рекомендуется следовать протоколу, кириллические домены кодировать в Punycode-формат (используйте этот конвертер), и использовать маскирование для кириллических адресов страниц.

Вместо:
https://минобрнауки.рф/фото

Необходимо использовать:
https://xn--80abucjiibhv9a.xn--p1ai/%D1%84%D0%BE%D1%82%D0%BE

Sitemap мультиязычного и мультирегионального сайта

Если ваш сайт является мультиязычным или мультирегиональным, то Google поддерживает разметку hreflang непосредственно в sitemap.xml. Для этого в карте необходимо использовать дополнительные теги xhtml:link с указанием hreflang.

Пример. Сайт использует два языка: русский и украинский. В таком случае sitemap.xml для одной из страниц будет выглядеть следующим образом.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
           xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>http://www.example.com/ru/</loc>
    <xhtml:link
      rel="alternate"
      hreflang="ru"
      href="http://www.example.com/ru/"
    />
    <xhtml:link
      rel="alternate"
      hreflang="uk"
      href="http://www.example.com/ua/"
    />
  </url>
  <url>
    <loc>http://www.example.com/ua/</loc>
    <xhtml:link
      rel="alternate"
      hreflang="ru"
      href="http://www.example.com/ru/"
    />
    <xhtml:link
      rel="alternate"
      hreflang="uk"
      href="http://www.example.com/ua/"
    />
  </url>
</urlset>

Как видите, каждый языковый или региональный URL должен быть представлен в отдельном теге url. Чем больше языков на сайте, тем больше будет разрастаться этот sitemap.

Если у сайта имеется множество поддоменов, то каждый поддомен, как отдельный сайт, должен содержать свой sitemap.xml. В этом один из недостатков поддоменной структуры сайта.

Поиск ошибок в карте сайта

При создании XML карты сайта вебмастерами часто допускаются следующие ошибки:

  • URL ведет на страницу, http-код статуса которой отличный от 200 (например, страницы не существует или она редиректит на другую страницу). Необходимо оставить в sitemap.xml только существующие страницы.
  • URL ведет на страницу, которая закрыта от индексации в файле robots.txt. Здесь необходимо разобраться, ошибка в robots.txt или в sitemap.xml.
  • URL ведет на страницу, которая закрыта тегом meta-robots noindex. Ссылки в карте сайта должны вести только на страницы, которые доступны к индексации.
  • Ошибки, касающиеся ограничений или несоответствию стандартному протоколу.

Самый простой способ проверки сайтмапа — использовать Screaming Frog в режиме списка (меню "Mode" - "List"). Загружаете sitemap и программа сама проверит все урлы, в отчетах будет видно, какие отдаются коды статусов и закрыты ли адреса от индексации.

Проверка Sitemap в Screaming Frog

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

Рекомендуемый алгоритм проверки на ошибки:

  • Просканировать XML Sitemap с помощью Screaming Frog, избавиться от всех ошибок.
  • Протестировать карту сайта через инструмент Яндекса или в Google Search Console.
  • Добавить ссылку на карту в robots.txt и в панель для вебмастеров Яндекса и Google Search Console.
  • Периодически мониторить раздел в панели с XML картой.

Sitemap.xml при переходе сайта на HTTPS

При переходе сайта на HTTPS меняется главное зеркало и необходимо проверить, что у вас соблюдаются следующие правила:

  • Новый sitemap.xml содержит адреса с префиксом HTTPS.
  • Все старые сайтмапы удалены из панелей для вебмастеров и файла robots.txt прежней версии сайта.
  • Sitemap.xml на http-версии сайта редиректит 301 кодом статуса на новый sitemap.xml на https-версии.
  • На сайте настроен постраничный 301 редирект на новую версию.

Разница поддержки XML Sitemap в Google и Яндексе

Возможности Google Яндекс
Максимальный размер sitemap.xml 50 Мб 10 Мб
Максимальная длина URL 2048 симв. 1024 симв.
Поддержка Sitemap для изображений и видео есть нет
Новостной Sitemap есть нет
Использование кириллических урлов можно можно
Разметка языковых версий страниц есть нет
Поддержка RSS/Atom фидов есть нет

Если это руководство не дало ответ на ваш вопрос, задайте его в комментариях.

Полезные ссылки:

— Справка Google по использованию sitemap.xml
https://support.google.com/webmasters/answer/183668

— Аналогичная справка Яндекса
https://yandex.ru/support/webmaster/controlling-robot/sitemap.html

— Описание протокола
https://www.sitemaps.org/ru/protocol.html