Sitemaps XML формат

Перейти:
Определения XML тегов
Entity escaping
Использование индексных файлов Sitemaps
Размещение файла Sitemaps
Валидация Sitemaps
Расширение протокола Sitemaps
Информирование индексирующих роботов поисковых систем

Этот документ описывает XML схему для протокола Sitemap.

Формат протокола Sitemap состоит из XML тегов. Все значения данных в Sitemap должны быть экранированы. Сам файл должен быть в кодировке UTF-8.

Sitemap должен:

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

Пример XML Sitemap

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

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

Дополнительно смотрите пример с несколькими адресами.

Определения XML тегов

Доступные XML описаны ниже.

Аттрибут Описание
<urlset> обязательный

Включает файл и ссылку на текущую версию протокола.

<url> обязательный

Родительский элемент для каждого адреса. Остальные теги являются дочерними для данного.

<loc> обязательный

Адрес страницы. Адрес должен начинаться с протокола (например http) и заканчиваться завершающим слешом, если такой слеш требуется для веб-сервера. Значение должно быть менее 2,048 символов.

<lastmod> необязательный

Дата последнего изменения файла. Дата должна быть в формате W3C Datetime. Этот формат позволяет опыстить часть даты, где указано время, и оставить только непосредственно дату YYYY-MM-DD.

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

<changefreq> необязательный

Определяет примерную частоту обновления страницы. Это значение предоставляет общую информацию для поисковых систем и может в точности не соответствовать частоте переиндексации страницы. Возможные значения:

  • always
  • hourly
  • daily
  • weekly
  • monthly
  • yearly
  • never

Значение "always" следует использовать для документов, которые изменяются при каждом их новом запросе. Значение "never" следует использовать для описания неизменяющихся, "архивных" адресов.

Следует отметить, что значение данного тега рассматривается как дополнительная информация, hint, но не жесткая инструкция или команда. Роботы поисковых систем будут принимать во внимание эту информацию в процессе определения частоты переиндексации, однако они могут переиндексировать страницу, помеченную "hourly", намного реже, чем раз в час, а страницу, помеченную "yearly", намного чаще, чем раз в год. Индексаторы могут периодически перезапрашивать страницы, помеченные "never", а значит они могут отследить неожиданные изменения на этих страницах..

<priority> необязательный

Приоритет заданного URL относительно других страниц на этом же сайте. Допустимые значения параметра лежат в диапазоне от 0.0 до 1.0. Значение этого параметра не определяет приоритет страницы относительно страниц других сайтов — оно только позволяет поисковым системам узнать, какие страницы своего сайта вы полагаете наиболее важными для индексации.

Значение по умолчанию равно 0.5.

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

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

Back to top

Экранирование спецсимволов

Ваш файл Sitemaps должен быть в кодировке UTF-8 (в большинстве случаев можно выбрать кодировку при сохранении файла). Как и во всех файлах формата XML, все специальные символы, перечисленные в таблице ниже, в значениях данных (включая URL должны быть специальным образом экранированы.

Символ Экранирование
Амперсанд & &amp;
Одинарная кавычка ' &apos;
Двойная кавычка " &quot;
Знак больше > &gt;
Знак меньше < &lt;

Дополнительно, все адреса (включая адрес Sitemap), должны быть экранированы и кодированы (URL-escaped and encoded) для совместимости с веб-сервером, где они размещаются. Однако, если для определения адресов используются скрипты, приложения или лог-файлы (что-либо, кроме набирания их вручную), эта процедура выполняется автоматически. Пожалуйста проверьте соответствие ваших адресов стандарту для URI RFC-3986, стандарту RFC-3987 и XML стандарту.

Ниже пример адреса страницы, где используется не-ASCII символ (ü), как и символ, требующий экранирования (&):

http://www.example.com/ümlat.html&q=name

Ниже тот же адрес, кодированный в ISO-8859-1 (для размещения на сервере с поддержкой соответствующей кодировки) и URL-кодированный:

http://www.example.com/%FCmlat.html&q=name

Ниже представлен тот же адрес, кодированный в UTF-8 (для размещения на сервере с поддержкой соответствующей кодировки) и URL-кодированный:

http://www.example.com/%C3%BCmlat.html&q=name

Ниже тот же самый адрес, но еще и с экранированием спецсимволов:

http://www.example.com/%C3%BCmlat.html&amp;q=name

Пример XML Sitemap

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

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.example.com/</loc>
      <lastmod>2005-01-01</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=12&amp;desc=vacation_hawaii</loc>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=73&amp;desc=vacation_new_zealand</loc>
      <lastmod>2004-12-23</lastmod>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=74&amp;desc=vacation_newfoundland</loc>
      <lastmod>2004-12-23T18:00:15+00:00</lastmod>
      <priority>0.3</priority>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=83&amp;desc=vacation_usa</loc>
      <lastmod>2004-11-23</lastmod>
   </url>
</urlset>

Back to top

Использование индексных файлов Sitemap (группировки нескольких файлов Sitemap)

Можно создать несколько файлов Sitemap, но каждый файл Sitemap не должен содержать более 50 000 адресов и не должен превышать объем в 10 Мегабайт (10 485 760 байт). При желании можно сжать файлы Sitemap с помощью gzip, чтобы не превысить 10MB и,тем самым, уменьшить объем исходящего трафика. Если возникает необходимость указать более 50 000 адресов, следует создать несколько файлов Sitemap.

Если вы создаете несколько файлов Sitemaps, то следует все их перечислить в специальном индексном файле. Индексные файлы Sitemaps не должны содержать ссылок на более, чем 1000 обычных Sitemaps и объем индексного файла не должен превышать 10 Мбайт (10 485 760 байт). XML формат индексного файла аналогичен формату обычного файла Sitemaps.

Обязательные требования к индексному файлу Sitemaps:

Необязательный тег <lastmod> также доступен для индексных файлов Sitemaps.

Примечание: индексный файл Sitemaps может включать ссылки на файлы Sitemaps только на том же домене, где находится сам индексный файл. Например, http://webartsolutions.com/sitemap_index.xml может включать файлы Sitemaps на http://webartsolutions.com, но не на http://chernyshov.kiev.ua или http://notes.webartsolutions.com. Как и обычные файлы Sitemaps, индексные файлы должны быть в кодировке UTF-8.

Пример индексного файла Sitemaps

В следующем примере представлен индексный файл Sitemaps, который содержит ссылки на два обычных файлаSitemaps:

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

Примечание: Адреса обычных Sitemaps в индексном файле, как и другие значения в XML файлах, должны быть экранированы.

Определение XML тегов индексного файла Sitemaps

Аттрибут Описание
<sitemapindex> обязательный Инкапсулирует информацию о всех перечисленных Sitemaps.
<sitemap> обязательный Инкапсулирует информацию об отдельно взятом файле Sitemaps.
<loc> обязательный

Определяет местанахождение файла Sitemaps.

Это может быть как файл Sitemaps, так и поток в формате Atom, RSS файл или обычный текстовый файл.

<lastmod> необязательный

Определяет время, когда был изменен соответствующий файл Sitemaps. Оно не обязательно соответствует дате изменения каких-либо страниц в соответствующем Sitemaps. Значение тега lastmod должно быть в формате W3C Datetime.

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

Местонахождение файла Sitemaps

Местонахождение файла Sitemaps определяет совокупность адресов страниц, которые могут быть включенры в этот Sitemaps. Файл Sitemaps, размещенный по адресу http://example.com/catalog/sitemap.xml может содержать только адреса страниц, начинающихся с http://example.com/catalog/, но не может включать адреса, начинающиеся с http://example.com/images/.

Если у вас есть право на изменение документа по адресу http://example.org/path/sitemap.xml, это означает, что вы также имеете право предоставлять информацию об адресах, начинающихся с префикса http://example.org/path/. Адреса, которые являются действительными при их перечислении в файле http://example.com/catalog/sitemap.xml:

http://example.com/catalog/show?item=23
http://example.com/catalog/show?item=233&user=3453

Адреса, которые являются недействительными при их перечислении в http://example.com/catalog/sitemap.xml:

http://example.com/image/show?item=23
http://example.com/image/show?item=233&user=3453
https://example.com/catalog/page1.html

Вышеприведенный пример означает, что все перечисленные в Sitemaps адреса должны использовать тот же протокол и размещаться на том же домене, где и файл Sitemaps. Например, если файл Sitemaps размещается по адресу http://webartsolutions.com/sitemap.xml, он не может включать адреса с поддомена http://notes.webartsolutions.com.

Адреса страниц, признанные недействительными, исключаются из дальнейшей обработки. Настоятельно рекомендуется размещать файлы Sitemaps в корневой директории веб-сервера. Например, если сайт находится по адресу webartsolutions.com, тогда индексный файл Sitemaps следует разместить по адресу http://webartsolutions.com/sitemaps.xml. В некоторых случаях может потребоваться создать разные файлы Sitemaps для разных разделов сайта (например в случае различного уровня доступа для записи данных в разные разделы сайта сотрудникам подразделений компании).

Если вы регистрируете Sitemaps по адресу с номером порта, следует включить данный номер порта во все адреса в файле Sitemaps. Например, если файл Sitemaps размещается по адресу http://www.example.com:100/sitemap.xml, тогда каждый адрес, указанный в файле должен начинаться с http://www.example.com:100.

Вверх

Проверка файлов Sitemaps

Следующие XML schemas определяют элементы и аттрибуты, которые могут появиться в вашем файле Sitemaps. Вы можете загрузить эту эту схему по ссылке ниже:

Для файлов Sitemaps: http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd
Для индексных файлов Sitemaps: http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd

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

http://www.w3.org/XML/Schema#Tools
http://www.xml.com/pub/a/2000/12/13/schematools.html

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

Файл Sitemaps:

<?xml version='1.0' encoding='UTF-8'?>
<urlset 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"
         xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      ...
   </url>
</urlset>

Индексный файл Sitemaps:

<?xml version='1.0' encoding='UTF-8'?>
<sitemapindex 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/siteindex.xsd"
         xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <sitemap>
      ...
   </sitemap>
</sitemapindex>

Расширение протокола Sitemaps

Вы можете расширить протокол Sitemaps, используя собственные пространства имен. Просто пропишите эти пространства имен в корневом элементе XML. Например:

<?xml version='1.0' encoding='UTF-8'?>
<urlset 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"
         xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
         xmlns:example="http://www.example.com/schemas/example_schema"> <!-- namespace extension -->
   <url>
      <example:example_tag>
         ...
      </example:example_tag>
      ...
   </url>
</urlset>

Информирование поисковых роботов

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

После этого поисковая система может запрашивать Sitemaps по указанному адресу и обрабатывать указанные в нем адреса.

Вверх

Обновлено: 28 декабря 2006