Укр
Рус
Українська мова
Русский язык
SEO

Що таке карта сайту і як зробити sitemap.xml

Розбираємося, що таке sitemap, в яких випадках його можна не створювати, які формати бувають і розберемо на прикладах, як створити sitemap.xml.
18 грудня 2020
0
16 хв
logo

Бажаєш заробляти більше? Пройди курс Комплексний інтернет-маркетинг від команди tripmydream та опануй професію за 3 місяці!

    Зміст

Що таке карта сайту

Карта сайту, вона ж 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.

Яндекс підтримує:

  • XML (рекомендований)
  • TXT

Ще, звичайно, є дуже застарілий формат, як зробити карту у вигляді 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 ігнорує цей параметр.
    Яндекс використовує.
    Є 3 значення:
    • daily - кожен день,
      добре підходить для головної сторінки сайту, особливо якщо там щодня виводиться список нових товарів, свіжих статей, перелінковка.
    • weekly - щотижнево.
    • monthly - щомісяця.
  • <priority> - пріоритет сторінок, щодо інших сторінок сайту.
    Google ігнорує. Яндекс підтримує.
    Значення від 1.0 до 0.0 в порядку зменшення важливості.

    Наприклад, можна вказати:
    0.9 - для головної сторінки сайту.
    0.8 - для сторінок, які дають або приблизно повинні давати трафік.
    0.5 - для всіх інших сторінок.

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>
    
  3. Так можна вказати до 1000 картинок для однієї сторінки.

Також можна вказати:

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

Sitemap для відео

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

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

Синтаксис Google і Яндекс для відео відрізняються. Більш докладно про це можна почитати тут: 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,
    2. Яндекс.Вебмайстер.

Де перевірити карту

У всі тих же панелях вебмайстрів. Коли ви завантажте туди карту, буквально через пару хвилин вже буде зрозуміло, чи правильно ви її склали, чи всі сторінки там працюють, чи правильно распознались додаткові дані.

А пізніше туди ж будуть прилітати повідомлення про помилки або рекомендації щодо поліпшення сторінок, статистика просканованих сторінок, кількість сторінок і дата останньої обробки sitemap.

Це дуже зручно, так як фактично ви отримуєте ще одну безкоштовну систему аналітики здоров'я вашого сайту, яка допоможе вчасно реагувати на проблеми і покращувати свій сайт.

Сподобалась стаття?
😍
3
😂
😄
1
😐
🤔
1
😩
Розповісти друзям: