SEO

Что такое карта сайта и как сделать sitemap.xml

Разбираемся, что такое sitemap, в каких случаях его можно не создавать, какие форматы бывают и разберем на примерах, как создать sitemap.xml.
18 декабря 2020
0
6 мин.
    Содержание
    показать

Что такое карта сайта

Карта сайта, она же sitemap – это составленный для поисковых систем технический файл со списком страниц сайта, которые нужно проиндексировать.

Когда-то давно, еще в 2005 году Google представил протокол sitemap, в 2006-2007 годах подтянулись и остальные поисковые системы и договорились о его использовании, чтобы разработчики могли публиковать списки ссылок своих сайтов и их было удобнее индексировать.

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

Наличие файла sitemap на сайте еще не гарантирует, что все указанные страницы будут проиндексированы. Рекомендуем воспринимать его как грамотно составленную просьбу к поисковым системам об индексации сайта.

Когда нужно делать sitemap?

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

А вот, если планируете расширяться, то лучше сделайте! К тому же sitemap, добавленный в вебмастера поисковых систем – это еще один источник полезных для вас знаний о здоровье сайта. Он не раз пригодиться в повседневной работе SEO-специалисту.

Когда можно не делать?

  • Если у вас небольшой сайт.
    Google оглашает планку – до 500 страниц.
  • Сайт находится на простом сервисе хостинга, например Wix или Blogger.
    Такие сервисы обычно автоматически генерируют сайтмап, о чем можно прочитать в документации сервиса.
  • У вас сделана детальная перелинковка с главной страницы сайта.
    Тогда поисковые системы скорее всего сами прекрасно поймут, что нужно сканировать. (Но лучше все же сделать).
  • На сайте мало медиафайлов и новостей.

Когда стоит сделать?

  • Сайт очень большой, с большим уровнем вложенности страниц.
    Это когда до самой «дальней» страницы нужно проклацать еще 3-5 страниц и больше.
  • Много страниц, которые не перелинкованы между собой.
    Чем меньше ссылок на страницу, тем больше вероятность, что поисковик при индексации сайта до этой страницы просто не дойдет.
  • Совсем новый сайт и еще не успел обрасти ссылками с других сайтов.
    Меньше вероятность что при сканировании других сайтов робот Googlebot найдет и ваш сайт.

Какие форматы бывают

Например, Google распознает несколько форматов:

  • XML (самый распространенный)
  • RSS, mRSS и Atom 1.0
  • Обычный текстовый файл TXT
  • Google Сайты
    На сайтах созданных через этот сервер автоматически генерируется карта, ее нельзя изменять, но можно добавить в Google Search Console.

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

Дальше мы будем разбирать самый популярный формат – XML

Требования:

  • Данные в файле должны быть указаны в кодировке UTF-8
  • Максимальное количество ссылок в одном файле – 50 000
  • А максимальный вес документа в несжатом виде – 50 мб

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

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

  • Указывайте только те ссылки, которые точно должны быть проиндексированы:
    • Используйте URL в точном виде.
      Именно в таком, какими их должен проиндексировать поисковик, в одинаковом формате. Если у вас сайт https://example.com/, то не нужно ссылкам дописывать www, и указывать протокол http вместо https. Не используйте ссылки в относительном виде, например, /page.
    • Указывайте только канонические ссылки.
      Если есть 2 похожие или одинаковые страницы сайта, то указывайте только одну, актуальную, которую и должен просканировать поисковик.
  • Указывайте ссылки только того домена, на котором будет расположен сайтмап.
    Если нужно указать ссылки на поддомен, сделайте это в сайтмапе поддомена.
  • Лучше загружайте сайтмап на корневой уровень.
    Файл sitemap хоть и можно загрузить куда угодно, но влияет он только на тот уровень, который ниже родительского.
  • Символы помимо латинских букв и цифр должны быть экранированы.
    Об этом можно почитать тут.
  • Все ссылки должны возвращать HTTP-ответ 200.

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

Подробнее о рекомендациях можно почитать в справке Google.

Как сделать карту сайта sitemap.xml

Вся разметка осуществляется по стандартному протоколу sitemaps.org.

Самый простой пример

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

Разберем подробнее

  1. <?xml version=»1.0″ encoding=»UTF-8″?>

    В первой строке указывается версия xml и кодировка. Это стандартная строка, пишется по умолчанию, ничего нового для вашего сайта можно не выдумывать.
  2. <urlset xmlns=»http://www.sitemaps.org/schemas/sitemap/0.9″>

    В теге <urlset> указывается стандарт протокола. Тоже стандартная строка.
  3. А вот в тегах <url> уже идет указание о каждой странице сайта.
    Такой код нужно повторить для каждой страницы.

Дополнительные данные, которые можно указать

Кроме самого обычного перечня url страниц в синтаксисе sitemap.xml можно добавить и другие параметры:

  • <lastmod> – дату последнего изменения страницы.
    Заполняется для каждого url отдельно в формате W3C Datetime, ГГГГ-ММ-ДД.
    <lastmod>2020-12-14</lastmod>

    Этот параметр может использоваться для сохранения краулингового бюджета, чтобы поисковая система переиндексировала только те страницы, которые были обновлены, и не тратила время и этот самый бюджет на страницы, которые и так есть у нее в индексе.
    Google считывает данный параметр, но обращает на него внимание только до тех пор, пока дата соответствует действительности. Если вы ее обновляете просто так, а на странице не было никаких изменений, то со временем гугл будет игнорировать этот параметр.
  • <changefreq> – вероятная частота обновления страницы.
    Google игнорирует данный параметр.
  • <priority> – приоритет страниц, относительно других страниц сайта.
    Google игнорирует.

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

Если у вас на домене есть несколько языковых версий, то не нужно делать отдельные карты сайта для них, можно указать страницы для разных языков в одной карте.

Для этого:

  1. в теге <urlset> нужно добавить строку:

    xmlns:xhtml=»https://www.w3.org/1999/xhtml»
  2. А в каждом <url>, после <loc> прописать все альтернативные ссылки включая основной url. Например:

    <xhtml:link rel=»alternate» hreflang=»de» href=»http://www.example.com/deutsch/» />

<?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/english/page.html</loc>
    <xhtml:link 
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
</urlset>

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

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

  1. В тег <urlset> нужно добавить еще строку с указанием стандарта протокола для картинок

    xmlns:image=»http://www.google.com/schemas/sitemap-image/1.1″
  2. В тег <url> добавить данные об изображении в формате:

    <image:image>
    <image:loc>http://example.com/image.jpg</image:loc>

    Так можно указать до 1000 картинок для одной страницы.

Также можно указать:

  • подпись к изображению: <image:caption>,
  • название картинки: <image:title>,
  • место съемки: <image:geo_location>,
  • url лицензии на изображение: <image:license>

Sitemap для видео

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

Создается sitemap практически так же, как и в случае картинок, только синтаксис свой и нужно дополнительно указывать не только ссылку на видеофайл или видеоплеер, но и картинку-превью, название и описание видео.

Более подробно об синтаксисе можно почитать тут: Google.

Пример расширенного синтаксиса

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

<?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"
        xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
   <url>
      <loc>http://www.example.com/</loc>
      <lastmod>2020-12-14</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
      <image:image>
         <image:loc>http://example.com/image.jpg</image:loc>
     </image:image>
     <video:video>
         <video:thumbnail_loc>http://www.example.com/thumbs/123.jpg</video:thumbnail_loc>
         <video:title>Как поехать в Стамбул</video:title>
         <video:description>Все о подготовке поездки в Стамбул</video:description>
         <video:content_loc>http://streamserver.example.com/video123.mp4</video:content_loc>
         <video:player_loc>http://www.example.com/videoplayer.php?video=123</video:player_loc>
     </video:video>
   </url>
</urlset>

Sitemap для Google News

А вот тут уже требования к карте сайта отличаются.

  1. Файл должен содержать только ссылки на статьи, опубликованные за последние два дня.
    Все остальные ссылки стоит удалять. При этом в индексе поисковика они будут находиться около 30 дней.
  2. Файл должен быть постоянно актуален и обновляться с выходом каждой новой статьи. Не нужно для новых статей создавать новый файл, добавляйте их в текущий.
  3. Если статей больше 1000, стоит разбивать их на несколько файлов и собирать с помощью файл индекса sitemap.
  4. Карты сайта, созданные в сервисе 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://www.example.org/business/article55.html</loc> 
      <news:news> 
         <news:publication> 
            <news:name>The Example Times</news:name>
            <news:language>en</news:language>
         </news:publication> 
         <news:publication_date>2008-12-23</news:publication_date>
         <news:title>Companies A, B in Merger Talks</news:title>
      </news:news>
   </url> 
</urlset><span id="selection-marker-1" class="redactor-selection-marker"></span>

Файл индекса sitemap: если нужно сделать несколько карт

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

Реализуется очень похоже на обычную карту, только в работу вводятся новые теги: <sitemapindex> вместо <urlset>, и <sitemap> вместо <url>. Соответственно, вместо url страницы указывается url субкарты, которая оформляется по стандартному шаблону.

<?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>
      <lastmod>2004-10-01</lastmod>
   </sitemap>
   <sitemap>
      <loc>http://www.example.com/sitemap2.xml</loc>
      <lastmod>2005-01-01</lastmod>
   </sitemap>
</sitemapindex>

Как сгенерировать карту сайта автоматически

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

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

  1. Загрузите файл карты в корневую директиву сайта.
    Итоговый url должен быть похож на https://example.com/sitemap.xml.
    Все привыкли называть файл sitemap.xml, но на самом деле можете написать по другому, например main-sitemap.xml
    1. Если карт несколько, то нужно загрузить и файл индекса sitemap.
  2. Пропишите адрес карты в документе robots.txt.
    В конце документа добавьте строку
    Sitemap: https://example.com/sitemap.xml
  3. Загрузите карту в панели вебмастеров интересующих вас поисковых систем.
    1. Google Search Console,
Где загружать sitemap.xml в Google Search Console
Google Search Console

Где проверить карту

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

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

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

Понравилась статья?
😍
😂
😄
😐
🤔
😩
Рассказать друзьям: