Блог про интернет-маркетинг для бизнеса

SEO

Sitemap.xml или карта сайта — детальный мануал

139
0
0
15

При знакомстве с проектом специалист по оптимизации обязательно вводит в адресную строку после имени сайта фразу «sitemap.xml». Анализ карты сайта позволяет выяснить, почему не индексируется тот или иной контент. Как создать и внедрить грамотную sitemap.xml, я расскажу в очередном выпуске «Азбуки SEO».

Краткое содержание:

Что такое XML-карта

XML-карта сайта — файл с информацией для поисковых систем о страницах, которые необходимо проиндексировать. Другими словами, карта сайта — список всех страниц в формате XML, доступных для сканирования поисковым роботом. При этом стоит отличать XML-карту от обычной карты сайта, которая находится по адресу http://site.com/sitemap/.

С помощью XML-карт определяется:

  • местонахождение страниц сайта;
  • время последнего обновления каждой из страниц;
  • частота (периодичность) обновления и важность относительно других страниц сайта;
  • важность (приоритетность) страниц в структуре.

Из каких элементов состоит XML-карта

В первой строке документа указывается версия xml и кодировка — UTF-8.

Также используются особенные теги XML:

  • sitemapindex — родительский тег в начале и конце файла;
  • sitemap — родительский тег для каждого файла sitemap, указанного в файле. При этом данный тег — дочерний относительно sitemapindex;
  • url — блок, который содержит значение самого URL и прочие элементы;
  • loc — непосредственно URL страницы;
  • changefreq — как часто данная страница может изменяться. Возможные значения: always, hourly, daily, weekly, monthly, yearly, never;
  • priority — приоритет структурных элементов, помогает определить, какие страницы более приоритетные для краулинга. Ему присваивается значение до единицы, например: 0,5.
  • lastmod — время последнего обновления контента страницы, не является обязательным параметром. Для сайтов со статическим контентом достаточно использовать changfreq.

Пример структуры файла c XML-картой сайта:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
     <loc>http://example.com/</loc>
     <lastmod>2017-02-05</lastmod>
     <changefreq>monthly</changefreq>
     <priority>0.8</priority>
  </url>
</urlset>

Для больших сайтов лучше сформировать несколько XML-карт. Например, в этот индекс в формате XML входят два файла sitemap:

<?xml version="1.0" encoding="UTF-8"?>
  <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
     <loc>http://www.example.com/sitemap1.xml</loc>
  </sitemap>
  <sitemap>
     <loc>http://www.example.com/sitemap2.xml.</loc>
  </sitemap>
  </sitemapindex>

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

Отдельные XML-карты часто создаются для индексации изображений. Они актуальны только для Google, Яндекс не распознаёт теги image:

Отдельные XML-карты часто создаются для индексации изображений

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

Для карт изображений используются теги:

<image:image>

Содержит всю информацию об одном изображении. Каждый URL (тег <loc>) может включать до 1000 тегов <image:image>.

<image:loc>

URL изображения.

Кроме того, можно использовать необязательные теги:

<image:caption>

Подпись к изображению.

<image:geo_location>

Место съемки (страна, город, и так далее)

<image:title>

Название изображения.

<image:license>

URL лицензии изображения.

Пример XML-карты для изображений:

<?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/page.html</loc>
   <image:image>
     <image:loc>http://example.com/pic1.jpg</image:loc>
   </image:image>
   <image:image>
     <image:loc>http://example.com/pic1.jpg</image:loc>
   </image:image>
 </url> 
</urlset>

 

XML sitemap для видео

Если на сайте представлен уникальный видеоконтент, для него также можно сделать отдельную XML-карту.

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

Результат:

XML sitemap для видео

Какие сведения о видео можно отправлять в Google с помощью sitemap:

  • название;
  • описание,
  • продолжительность;
  • миниатюру и так далее.

Обязательные теги:

  • <loc> — страница, где находится видео;
  • <video:title> — название видео, до 100 символов;
  • <video:player_loc> — место размещения плеера для видео;
  • <video:content_loc> — место размещения конкретного видео;
  • <video:thumbnail_loc> — превью (миниатюра) видео, не менее чем 120х90 px;
  • <video:video> — контейнер для описания видео;
  • <video:description> — описание видео, до 2000 символов.

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

  • <video:duration> — длительность видео, до 8 часов, пишется в секундах;
  • <video:category> — категория видео, например, техника;
  • <video:uploader> — имя человека (компании), добавившего видео. Допускается указание одного имени для файла;
  • <video:requires_subscription> — указывается, требуется ли для просмотра видео подписка. Как платная, так и бесплатная, с доступными значениями: yes, no;
  • <video:publication_date> — дата публикации, в формате YYYY-MM-DD или YYYY-MM-DDThh:mm:ss+TZD;
  • <video:family_friendly> — здесь указывается, может ли видео быть доступным для безопасного поиска или нет;
  • <video:restriction> — список стран, в которых видео может воспроизводиться или не воспроизводиться. Допустимые значения — коды стран в формате ISO 3166. Для каждого видео может отображаться только один тег <video: restriction>. Если тег <video: restriction> отсутствует, предполагается, что видео можно воспроизводить на всех территориях;
  • <video:gallery_loc> — ссылка на галерею;
  • <video:expiration_date> — дата и время, когда видео становится неактуальным;
  • <video:price> — стоимость с указанием валюты в формате ISO 4217;
  • <video:tag> — теги видео;
  • <video:view_count> — количество просмотров видео;
  • <video:rating> — рейтинг видео (от 0 до 5);
  • <video:platform> — список площадок, где видео может воспроизводиться и не воспроизводиться. Доступные значения: web, mobile, tv. При отсутствии тега предполагается, что видео может воспроизводиться на всех платформах;
  • <video:live> — указывает, является ли видео прямой трансляцией (live). Доступные значения: yes, no.

Пример:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
       xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>http://www.example.com/videos/video_1.html</loc>
    <video:video>
      <video:thumbnail_loc>http://www.example.com/thumbs/video_1.jpg</video:thumbnail_loc>
      <video:title>Обзор смартфона Xiaomi Redmi 3 Note Pro</video:title>
      <video:description>Подробный обзор внешнего вида и функций смартфона  Xiaomi Redmi 3 Note Pro от интернет-магазина Example.</video:description>
      <video:content_loc>http://www.example.com/video123.flv</video:content_loc>
      <video:player_loc allow_embed="yes" autoplay="ap=1">
        http://www.example.com/videoplayer.swf?video=123</video:player_loc>
      <video:duration>600</video:duration>
      <video:rating>4.3</video:rating>
      <video:view_count>1223</video:view_count>    
      <video:publication_date>2017-01-05T19:20:30+03:00</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>  
      <video:live>no</video:live>
    </video:video>
  </url>
</urlset>

Google «поддерживает» следующие форматы:

  • .mpg, .mpeg, .mp4, .m4v;
  • .wmv;
  • .asf, .avi;
  • .ra, .ram, .rm;
  • .mov;
  • .flv.

XML-карта для Google Новостей

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

Если сайт не находится в списке, можно отправить запрос на его добавление

Файл sitemap должен содержать только URL статей, опубликованных за последние два дня. Статьи, опубликованные более двух дней назад, можно удалить из файла, при этом они останутся в индексе Google Новостей в течение 30 дней.

Эта карта сайта может содержать не более 1000 URL. Если на сайте за два дня появляется больше контента, можно создать файл индекса sitemap для нескольких карт.

Обязательные теги:

  • <news:publication> — общий тег, в котором указывается издание. У него есть два обязательных дочерних тега:
    • <news:name> — название издания;
    • <news:language> — язык в формате ISO 639;
  • <publication_date> — дата публикации в формате W3C с указанием полной даты. Поисковой робот Google понимает даты вплоть до долей секунд, например:
ГГГГ-ММ-ДДTчч:мм:cc.с±чч:мм (2017-05-10T19:20:30.45+01:00)
  • <news:title> — название статьи, аналогичное названию на сайте.

Кроме этого, существуют необязательные теги:

  • <news:genres> — свойства статьи. Допустимые значения:
    • PressRelease — официальный пресс-релиз;
    • Satire — статья, которая выставляет предмет обсуждения в комической форме.
    • Blog — любая статья, которая опубликована в блоге или в формате блога.
    • OpEd — любая статья, выражающая личное мнение и размещенная в колонке редактора.
    • Opinion — любая статья, выражающая личное мнение и не включенная в колонку редактора. Сюда относятся как рецензии колумнистов, так и интервью.
    • UserGenerated — материал, созданный пользователем и прошедший официальную редакторскую правку.
  • <keywords> — ключевые слова по теме статьи;
  • <stock_tickers> — список биржевых/финансовых символов (не более пяти, через запятую). Подходит для статей о бизнесе. Перед каждым символом должно указываться название соответствующей биржи, совпадающее с записью в Google Финансах, например NASDAQ:AMAT или BOM:500325.

Пример sitemap для Google Новостей:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
       xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
 <url>
   <loc>http://example.ua/news/wow55.html</loc>
   <news:news>
     <news:publication>
       <news:name>Новости</news:name>
       <news:language>ru</news:language>
     </news:publication>
     <news:genres>Blog</news:genres>
     <news:publication_date>2017-05-10</news:publication_date>
     <news:title>Рацион питания среднестатистического студента</news:title>
     <news:keywords>студенты, еда, мивина, пельмени, revo</news:keywords>
   </news:news>
 </url>
</urlset>

Как построить XML-карту для мультиязычных сайтов

Файлы sitemap можно использовать, чтобы передать Google атрибут rel="alternate" hreflang="x". Благодаря этому пользователям показываются страницы на нужном языке и с URL-адресами с правильной региональностью.

Пространство имен XHTML должно быть указано так:

xmlns:xhtml="http://www.w3.org/1999/xhtml"

Также необходимо создать отдельный элемент URL для каждого адреса. В свою очередь каждый элемент должен включать:

  1. Тег loc, который указывает на URL-адреса;
  2. Подэлемент xhtml:link rel="alternate" hreflang="XX" для каждой альтернативной версии страницы, обязательно включая текущую версию.

Например, на сайте есть раздел на русском языке, предназначенный для пользователей со всего мира. Кроме того, существуют две версии этой страницы: на украинском и на английском.

Полный набор URL выглядит так:

  • example.com/ua/
  • example.com/ru/
  • example.com/en/

Файл sitemap, который приведен на примере ниже, сообщает Google о том, что у страницы example.com/ru/ существует соответствующая версия на украинском и английском языках:

<?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://example.com/ru/</loc>
   <xhtml:link

                rel="alternate"
                hreflang="ua"

                href="http://www.example.com/ua/"
                />
   <xhtml:link

                rel="alternate"
                hreflang="en"

                href="http://www.example.com/en/"
                />
   <xhtml:link

                rel="alternate"
                hreflang="ru"

                href="http://www.example.com/ru/"

                />
 </url>

 <url>
   <loc>http://www.example.com/deutsch/</loc>
   <xhtml:link

                rel="alternate"
                hreflang="ru"

                href="http://www.example.com/ru/"

                />
    <xhtml:link

                rel="alternate"
                hreflang="en"

                href="http://www.example.com/en/"
                />
    <xhtml:link

                rel="alternate"
                hreflang="ua"

                href="http://www.example.com/ua/"
                />
 </url>

 <url>
   <loc>http://www.example.com/en/</loc>

    <xhtml:link

                rel="alternate"
                hreflang="ru"

                href="http://www.example.com/ru/"
                />
    <xhtml:link

                rel="alternate"
                hreflang="ua"

                href="http://www.example.com/ua/"

                />
<xhtml:link

                rel="alternate"
                hreflang="en"

                href="http://www.example.com/en/"
                />
 </url>

</urlset>

Рекомендации Яндекса

Яндекс поддерживает два формата файлов sitemap:

  • XML (рекомендуется);
  • текстовый файл.

Требования для карт Яндекс:

  • размер в несжатом виде не должен превышать 10 Мб;
  • Яндекс распознает Punycode (пуникод) как в закодированном виде, так и в оригинале.

Рекомендации Google

Принципиально:

  • до 50 000 ссылок на файлы sitemap;
  • общий размер до 50 Мб (в несжатом виде).

Форматы, которые поддерживает Google в качестве sitemap:

  • XML — стандартный файл;
  • RSS, media RSS и Atom 1.0 — подходит для блогов с фидом RSS или Atom;
  • Сайты Google. Если сайт создан и подтвержден с помощью сервиса «Google Сайты», файл sitemap создается автоматически. Его нельзя изменить, но можно отправить в Google, чтобы получать сведения для отчетов. Если в одном подкаталоге содержится более 1000 страниц, файл sitemap может отображаться некорректно.
  • Текстовый файл .txt.

Основные требования к текстовым файлам:

  • кодировка UTF-8;
  • файл не должен содержать ничего, кроме списка URL;
  • текстовому файлу можно дать любое имя, но только с расширением .txt (например, sitemap.txt).

Как внедрить XML-карту

  1. Файл с XML sitemap следует поместить в корневую директиву сайта: http://<адрес сайта>/sitemap.xml.
  2. Если карт сайта несколько, необходимо создать индекс карт, где должны быть перечислены ссылки на все XML-файлы.
  3. Добавить директиву sitemap в файл robots.txt.

  4. Указать URL файла в панелях вебмастеров интересующих поисковых систем, например:
    • Google Search Console;
    • Яндекс.Вебмастер;
    • Кабинет вебмастера MailRu.

Файлы sitemap учитываются при индексировании сайта роботом, однако ни одна из поисковых систем не гарантирует, что все URL, указанные в файле, будут добавлены в поисковый индекс.

Для автоматического создания XML-карт можно использовать платные и бесплатные онлайн-генераторы, специальные плагины CMS и программы, например, Netpeak Spider.

Онлайн-генераторы:

Полный список рекомендуемых генераторов.

Как найти ошибки в XML-картах

Как анализировать карту сайта в Яндекс.Вебмастере

В Яндекс.Вебмастере для работы с XML-картами следует перейти по пути «Индексирование» — «Файлы sitemap».

В Яндекс.Вебмастере для работы с XML-картами следует перейти по пути «Индексирование» — «Файлы sitemap»

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

Отдельно в разделе Инструменты, представлен «Анализатор файлов sitemap», где на проверку можно отправить текст, URL или прикрепить сам файл. При проверке он показывает тип и размер файла, количество ссылок и ошибки.

Отдельно в разделе Инструменты, представлен «Анализатор файлов sitemap»

Как анализировать карту сайта в Google Search Console

В панели вебмастеров Google в разделе «Сканирование» есть пункт «Файлы sitemap».

Как анализировать карту сайта в Google Search Console

Здесь можно:

  • добавить или проверить файлы sitemap;
  • отследить количество отправленных и проиндексированных страниц различных типов;
  • увидеть ошибки и проблемы в картах сайта;
  • отправить карты XML заново или удалить их.

Выводы

XML-карта сайта нужна поисковым роботам для обнаружения всех ваших страниц. Она содержит URL-адреса страниц сайта, а также относящиеся к ним данные, такие как время их последнего обновления, частоту их обновления и важность относительно других страниц сайта. Отдельные карты можно создавать для изображений, видео, XML можно размечать и для Google Новостей.

Создавать карту вручную не стоит — используйте бесплатные генераторы или специализированные программы. Проверить ошибки в картах можно в панелях вебмастеров Яндекс и Google.

Появились вопросы? С удовольствием отвечу в комментариях.

Обнаружили ошибку? Выделите ее и нажмите Ctrl + Enter.

Комментарии (15)

  1. 0
    3 месяца назад

    Добрый день. У меня карта сайта разбита на  

    /attachment-sitemap1.xml  - 1000
    /attachment-sitemap2.xml  - 1000
    и т.д 
    Это нормально или нет. 
    Сайт

    • 0
      Denis Ponomaryov
      3 месяца назад

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


      Для отслеживания ошибок рекомендуется добавить ссылки на все вложенные карты в Google Search Console. В Google можно отправлять до 500 файлов индекса Sitemap для одного сайта.



  2. 0
    4 месяца назад
    По поводу мультирегиональности. Если в коде страниц указан атрибут hreflang, то есть ли смысл дублировать это в sitemap.xml?
    • 0
      Алекс Волжский
      4 месяца назад

      Здравствуйте.

      Практической пользы в этом нет, т.к. это просто один из трёх способов реализации (третий – с помощью HTTP-заголовков).

  3. 0
    5 месяцев назад

    Яна, спасибо за полезную статью! 

    Мой вопрос в следующем: как правильно разместить карту сайта для поддоменов, например, site.com и m.site.com, как в таком случае правильно разместить карту - использовать одну или же сгенерировать две разные под каждое доменное имя? Особенно, если контент и урлы одинаковые.

    • 0
      Ярослав
      5 месяцев назад

      Здравствуйте, Ярослав! Спасибо за отклик и вопрос.


      Давайте по порядку.


      Я бы порекомендовала сделать отдельные карты сайта для каждого поддомена, хотя Google принимает оба из описанных вами вариантов (подробнее можете почитать тут)


      Ваш пример – site.com и m.site.com, типичный для десктопной и мобильной версий сайта (где, опять же, может дублироваться контент), а это немного другая история.


      В Sitemap можно использовать аннотации, т.к. Google поддерживает атрибут rel="alternate" на страницах для десктопов. Пример:


      <?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>https://site.com/page-1</loc>

      <xhtml:link

      rel="alternate"

      media="only screen and (max-width: 640px)"

      href="https://m.site.com/page-1" />

      </url>

      </urlset>


      Что касается Google, такой Sitemap (с указанием альтернативных страниц мобильной версии сайта) нужно создать только на основном домене. Отдельный Sitemap на мобильной версии (m.site.com) создавать не нужно, но необходимо указать в коде страниц мобильной версии канонические страницы десктопной. Например, на странице https://m.site.com/page-1 добавить в head:

      <link rel="canonical" href="https://site.com/page-1/" />


      Яндекс советует создавать Sitemap для мобильного поддомена, как для отдельного сайта.


      Robots.txt актуально делать как для десктопной, так и для мобильной версии сайта.

      • 0
        Яна Стефанович
        5 месяцев назад

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

    • 0
      Ярослав
      5 месяцев назад
      Также интересует данный вопрос по robots.txt
  4. 0
    5 месяцев назад
    Норм, Яна, а есть какие-то исследования по влиянию нахождения УРЛ в карте сайта на его ранжирование?
    • 0
      Jenya Kuznetsov
      5 месяцев назад

      Спасибо, Женя.

      Подобных исследований я не встречала, да и сама sitemap.xml не имеет отношения к ранжированию, это инструмент для ускорения индексации.

  5. 1
    5 месяцев назад

    Спасибо за статью! Реально полезно.

    По поводу карты для изображений. Я бы добавил, что делать её нужно не всем.

    Кому есть смысл делать?
    1. Стоки изображений и всякие хранилища. Понятное дело.
    2. Уникальные авторские фотографии.
    3. Сложная тематика, в которой часто ищут по фото.

    То есть всем подряд пилить карту изображений нет смысла. Как и видео.


    Ну и по поводу "Как найти ошибки в XML-картах".
    А где Netpeak Spider?
    Часто закидываю карту в Спайдер (там есть режим сканирования карты) и получаю полный список ошибок карты, плюс бонус: список ошибок на страницах, которые отправлены в карту.
    А это важно.
    Ну и анализируя новый сайт не всегда имеешь доступы в GSC Или Я.Вебмастер. А проверить карту нужно.
    Кстати, Checker проверяет и индексацию списка урлов (взятых из карты с помощью Spider).

    Вот такая вот рекламная приписочка. 

    P.S. Не имею с этого профита. Просто супер полезный софт и нет смысла не описать его возможности, чтобы всем было легче.

    • 0
      Артём Меликян
      5 месяцев назад

      Артём, спасибо за фидбек!

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

      Как пример, интернет-магазин семян и саженцев (май) :



      По поводу Netpeak Spider поддерживаю, очень полезный инструмент, о котором подробнее можно почитать в этом обзоре (линк добавим в статью).


    • 0
      Артём Меликян
      5 месяцев назад
      Nyan, дополнишь? Я с радостью расширю статью.

Чтобы оставить комментарий, необходимо авторизироваться

Подписаться

на самую полезную рассылку по интернет-маркетингу

Самое

обсуждаемое популярное читаемое