XML-формат файла Sitemap

Перейти к:
Определения XML-тегов
Маскирование символов
Использование файлов индекса Sitemap
Другие форматы файла Sitemap
Местоположение файла Sitemap
Проверка файла Sitemap
Расширение протокола Sitemaps
Уведомления для сканеров поисковых систем

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

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

Sitemap должен:

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

Также все URL-адреса в файле Sitemap должны быть с одного узла, например www.example.com или store.example.com. Дополнительные сведения см. в разделе Расположение файла Sitemap

Пример XML-файла Sitemap

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


<?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> 

См. также пример с несколькими URL-адресами.

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

Ниже описаны доступные XML-теги.

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

Инкапсулирует этот файл и указывает стандарт текущего протокола.

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

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

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

URL-адрес страницы. Этот URL-адрес должен начинаться с префикса (например, HTTP) и заканчиваться косой чертой, если Ваш веб-сервер требует этого. Длина этого значения не должна превышать 2048 символов.

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

Дата последнего изменения файла. Эта дата должна быть в формате W3C Datetime. Этот формат позволяет при необходимости опустить сегмент времени и использовать формат ГГГГ-ММ-ДД.

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

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

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

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

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

Значение"всегда" должно использоваться для описания документов, которые изменяются при каждом доступе к этим документам. Значение "никогда" должно использоваться для описания архивных URL-адресов.

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

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

Приоритетность URL относительно других URL на Вашем сайте. Допустимый диапазон значений — от 0,0 до 1,0. Это значение не влияет на процедуру сравнения Ваших страниц со страницами на других сайтах — оно только позволяет указать поисковым системам, какие страницы, по Вашему мнению, более важны для сканеров.

Приоритет страницы по умолчанию — 0,5.

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

Кроме того, следует учитывать, что назначение высокого приоритета всем URL на Вашем сайте не имеет смысла. Поскольку приоритетность – величина относительная, этот параметр используется для того, чтобы определить очередность обработки URL в пределах сайта.

К началу

Маскирование символов

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

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

Кроме того, для всех URL (включая URL из вашего файла Sitemap) должны использоваться маскирование и кодировка для удобочитаемости веб-сервером, на котором они размещаются. Однако, если для создания своих URL Вы используете какой-либо вид скрипта, инструментального средства или журнала (любой способ кроме ввода их вручную), то маскировка и кодировка применяются автоматически. Убедитесь в том, что все URL-адреса соответствуют стандарту RFC-3986 для URI, стандарту RFC-3987 для IRI и XML-стандарту.

Ниже приведен пример URL-адреса, в котором используется символ, отличный от ASCI (ü), а также символ, для которого необходимо маскирование (&):

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

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

http://www.primer.ru/%FCmlat.html&q=name

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

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

Ниже приведен тот же URL-адрес, но с использованием маскирования:

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

Пример XML-файла Sitemap

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


<?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>

К началу

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

Можно предоставить несколько файлов Sitemap, однако в каждом из этих файлов должно быть не более 50000 URL, а размер каждого из этих файлов не должен превышать 50 МБ. При необходимости файл Sitemap можно сжать с помощью архиватора gzip, чтобы уменьшить требования к пропускной способности канала. Однако размер файла sitemap без сжатия не должен превышать 50 МБ. Если необходимо перечислить более 50000 URL-адресов, следует создать несколько файлов Sitemap.

Если требуется передать несколько файлов Sitemap, необходимо перечислить каждый из этих файлов в файле индекса Sitemap. В файле индекса Sitemap может быть перечислено не более 50000 файлов Sitemap. Размер этого файла не должен превышать 50 МБ (52 428 800 байт) и может быть сжат. У вас может быть несколько файлов Sitemap. Формат XML-файла индекса Sitemap очень похож на формат XML-файла Sitemap.

Файл индекса Sitemap должен:

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

Примечание. Файл индекса Sitemap может указывать только файлы Sitemap, которые находятся на том же сайте, что и файл индекса Sitemap. Например, файл индекса http://www.vashsait.ru/sitemap_index.xml может включать файлы Sitemap, размещенные на сайте http://www.vashsait.ru, но не на сайте http://www.primer.ru или http://vashkhost.vashsait.ru. Для файла индекса Sitemap, как и для файлов Sitemap, необходимо использовать кодировку UTF-8.

Пример индекса XML Sitemap

В следующем примере показан файл индекса Sitemap, который содержит два файла 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>

Примечание: для URL-адресов Sitemap, как и для всех значений в XML-файлах, должно использоваться маскирование .

Определения XML-тегов индекса Sitemap

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

Указывает местоположение файла Sitemap.

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

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

Указывает время изменения соответствующего файла Sitemap. Не соответствует времени изменения ни одной из страниц в этом файле Sitemap. Значение тега "lastmod" должно быть представлено в формате W3C Datetime.

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

К началу

Другие форматы файла Sitemap

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

Канал синдикации

Вы можете предоставить канал RSS 2.0, Atom 0.3 или 1.0. Как правило, этот формат используется только в том случае, если на сайте уже есть канал синдикации. Обратите внимание, что в этом случае поисковые системы, возможно, не получат информацию обо всех URL на вашем сайте, поскольку данный канал предоставляет информацию только по последним URL. Однако поисковые системы могут использовать эту информацию, чтобы обнаружить другие страницы сайта, переходя по ссылкам на страницах канала в процессе обычного сканирования. Убедитесь, что канал расположен в каталоге самого высокого уровня, который должен сканироваться поисковой системой. Поисковые системы извлекают информацию из канала следующим образом.

Текстовый файл

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

Ниже приведен пример строк текстового файла.

http://www.example.com/catalog?item=1


http://www.example.com/catalog?item=11

К началу

Местоположение файла Sitemap

Местоположение файла Sitemap определяет набор URL-адресов, которые можно включить в этот Sitemap. Файл Sitemap, расположенный в каталоге http://primer.ru/catalog/sitemap.xml, может включать любые URL-адреса, начинающиеся с http://primer.ru/catalog/, но не должен включать URL-адреса, начинающиеся с http://primer.ru/images/.

Если у Вас есть разрешение на изменение файла http://primer.org/path/sitemap.xml, можно предположить, что у Вас также имеется разрешение на предоставление информации для URL с префиксом http://primer.org/path/. Примеры допустимых URL в http://primer.ru/catalog/sitemap.xml включают:


http://example.com/catalog/show?item=23

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

К недопустимым URL-адресам в файле http://primer.ru/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

Это значит, что все URL-адреса, перечисленные в файле Sitemap, должны использовать один и тот же протокол (в данном случае — HTTP) и должны быть размещены на том же хосте, что и файл Sitemap. Например, если файл Sitemap расположен по адресу http://www.primer.ru/sitemap.xml, в нем могут быть указаны URL-адреса из субдомена http://subdomen.primer.ru.

URL-адреса, которые считаются недопустимыми, исключаются из дальнейшего рассмотрения. Настоятельно рекомендуется поместить файл Sitemap в корневой каталог Вашего веб-сервера. Например, если адрес Вашего сервера — primer.ru, Ваш файл индекса Sitemap должен быть размещен по адресу http://primer.ru/sitemap.xml. Возможно, в некоторых случаях нужно будет создать различные файлы Sitemap для различных путей на Вашем сайте (например, если полномочия доступа в Вашей организации установлены таким образом, что доступ с правом записи к различным каталогам предоставляется отдельно).

Если при передаче файла Sitemap используется путь, содержащий номер порта, необходимо включить этот номер порта в путь в каждом URL, перечисленном в файле Sitemap. Например, если Ваш файл Sitemap находится в http://www.primer.ru:100/sitemap.xml, то каждый URL, перечисленный в файле Sitemap, должен начинаться с http://www.primer.ru:100.

Файлы Sitemap и перекрестная отправка

Чтобы отправить файлы Sitemap на несколько узлов с одного, необходимо "подтвердить" владение узлом(-ами) для которого URL-адреса отправляются в файле Sitemap. Ниже приведен пример. Допустим, необходимо отправить файлы Sitemap на 3 узла:


www.host1.com с файлом Sitemap sitemap-host1.xml

www.host2.com с файлом Sitemap sitemap-host2.xml

www.host3.com с файлом Sitemap sitemap-host3.xml

Более того, необходимо разместить все три файла Sitemap на одном узле: www.sitemaphost.com. Таким образом, URL-адреса Sitemaps будут следующими:


http://www.sitemaphost.com/sitemap-host1.xml

http://www.sitemaphost.com/sitemap-host2.xml

http://www.sitemaphost.com/sitemap-host3.xml

По умолчанию это приведет к ошибке "перекрестная отправка", так как была произведена попытка отправить URL-адреса для узла www.host1.com через файл Sitemap, который расположен на узле www.sitemaphost.com (то же самое и для двух других узлов). Первый способ избежать этой ошибки — это доказать свое владение (например право изменять файлы) узлом www.host1.com. Это можно сделать, изменив файл robots.txt на узле www.host1.com, чтобы указать на файл Sitemap на узле www.sitemaphost.com.

В этом примере файл robots.txt на узле http://www.host1.com/robots.txt содержал бы строку "Sitemap: http://www.sitemaphost.com/sitemap-host1.xml". Изменив файл robots.txt на узле www.host1.com с указанием на файл Sitemap на узле www.sitemaphost.com, вы косвенно доказали, что являетесь владельцем узла www.host1.com. Другими словами, кто бы не управлял файлом robots.txt на узле www.host1.com, он доверяет файлу Sitemap на узле http://www.sitemaphost.com/sitemap-host1.xml на предмет содержания URL-адресов для узла www.host1.com. Эту же процедуру можно повторить для двух других узлов.

Теперь можно отправлять файлы Sitemap на узел www.sitemaphost.com.

Если в файле robots.txt указан определенный узел, например http://www.host1.com/robots.txt, это указывает на файл Sitemap или файл индекса Sitemap на другом узле. Скорее всего это означает, что для каждого конечного файла Sitemap, например http://www.sitemaphost.com/sitemap-host1.xml, все URL-адреса принадлежат узлу, который на них указывает. Это происходит потому, что, как было указано ранее, ожидается, что файл Sitemap будет содержать URL-адреса только с одного узла.

К началу

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

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

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

Ряд инструментов может помочь при проверке структуры файла Sitemap на основе этой схемы. Вы можете найти список инструментов для работы с XML-файлами в каждом из следующих местоположений:

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

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

Sitemap:


<?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>

Файл индекса Sitemap:


<?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

Протокол Sitemap можно расширить с помощью Вашего собственного пространства имен. Просто укажите это пространство имен в корневом элементе. Например:


<?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>

К началу

Уведомления для сканеров поисковых систем

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

Затем поисковые системы смогут извлечь файл Sitemap и разрешить своим сканерам доступ к URL-адресам.

Передача файла Sitemap с помощью интерфейса поисковой системы

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

Как указать местоположение файла Sitemap в файле robots.txt

Можно указать местоположение файла Sitemap, используя файл robots.txt. Для этого просто добавьте следующую строку:

Sitemap: http://www.example.com/sitemap.xml

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

Можно указать несколько файлов Sitemap для каждого файла robots.txt.

Sitemap: http://www.example.com/sitemap-host1.xml

Sitemap: http://www.example.com/sitemap-host2.xml

Передача файла Sitemap с помощью запроса HTTP

Чтобы отправить файл Sitemap с помощью HTTP-запроса (замените <searchengine_URL>на URL, указанный поисковой системой), создайте запрос для следующего URL-адреса.

<searchengine_URL>/ping?sitemap=sitemap_url

Например, если файл Sitemap находится в архивном файле http://www.primer.ru/sitemap.gz, URL-адрес будет следующим:

<searchengine_URL>/ping?sitemap=http://www.example.com/sitemap.gz

Добавьте кодировку URL для всех символов после /ping?sitemap=:

<searchengine_URL>/ping?sitemap=http%3A%2F%2Fwww.vashsait.com%2Fsitemap.gz

Можно отправить http-запрос, используя "wget", "curl" или другой механизм по выбору. Успешный запрос возвратит код отклика HTTP 200; если получен другой отклик, необходимо повторно передать запрос. Код отклика HTTP 200 указывает только на то, что поисковая система получила Ваш файл Sitemap, но это не значит, что сам файл Sitemap или содержащиеся в нем URL допустимы. Самый простой способ — создать автоматическое задание для регулярного создания и передачи файлов Sitemap.
Примечание. Предоставляя файл индекса Sitemap, необходимо инициировать только один http-запрос, который включает местоположение файла индекса Sitemap; отправлять отдельные запросы для каждого файла Sitemap, указанного в этом индексе, не нужно.

К началу

Как исключить содержание

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

 

К началу

Последнее обновление: 21 ноября 2016 г.