XML-формат файла Sitemap
Перейти к:
Определения XML-тегов
Маскирование символов
Использование файлов индекса Sitemap
Другие форматы файла Sitemap
Местоположение файла Sitemap
Проверка файла Sitemap
Расширение протокола Sitemaps
Уведомления для сканеров поисковых систем
В этом документе приведено описание XML-схемы протокола Sitemap.
Формат протокола Sitemap состоит из XML-тегов. Для всех значений данных в файле Sitemap должно использоваться маскирование. В файле необходимо использовать кодировку UTF-8.
Sitemap должен:
- В начале поставьте открывающий тег
<urlset>
, а в конце поставьте закрывающий тег</urlset>
. - Укажите область имен (стандарт протокола) в теге
<urlset>
. - Включите запись
<url>
для каждого URL-адреса как родительский тег XML. - Включите дочернюю запись
<loc>
для каждого родительского тега<url>
.
Все теги необязательны. Поддержка необязательных тегов может отличаться в зависимости от поискового сервера. Чтобы получить более подробную информацию, обратитесь к документации поискового сервера.
Также все 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>
|
необязательно |
Вероятная частота изменения этой страницы. Это значение предоставляет общую информацию для поисковых систем и может не соответствовать точно частоте сканирования этой страницы. Допустимые значения:
Значение"всегда" должно использоваться для описания документов, которые изменяются при каждом доступе к этим документам. Значение "никогда" должно использоваться для описания архивных URL-адресов. Имейте в виду, что значение для этого тега рассматривается как подсказка, а не как команда. Несмотря на то, что сканеры поисковой системы учитывают эту информацию при принятии решений, они могут сканировать страницы с пометкой "ежечасно" менее часто, чем указано, а страницы с пометкой "ежегодно" – более часто, чем указано. Сканеры могут периодически сканировать страницы с пометкой "никогда", чтобы отслеживать неожиданные изменения на этих страницах. |
<priority>
|
необязательно |
Приоритетность URL относительно других URL на Вашем сайте. Допустимый диапазон значений — от 0,0 до 1,0. Это значение не влияет на процедуру сравнения Ваших страниц со страницами на других сайтах — оно только позволяет указать поисковым системам, какие страницы, по Вашему мнению, более важны для сканеров. Приоритет страницы по умолчанию — 0,5. Следует учитывать, что приоритет, который Вы назначили странице, не влияет на положение Ваших URL на страницах результатов той или иной поисковой системы. Поисковые системы используют эту информацию при обработке URL, которые относятся к одному и тому же сайту, поэтому можно использовать этот тег для увеличения вероятности присутствия в поисковом индексе Ваших самых важных страниц. Кроме того, следует учитывать, что назначение высокого приоритета всем URL на Вашем сайте не имеет смысла. Поскольку приоритетность – величина относительная, этот параметр используется для того, чтобы определить очередность обработки URL в пределах сайта. |
Маскирование символов
В файле Sitemap должна использоваться кодировка UTF-8 (обычно ее можно выбрать при сохранении данного файла). В XML-файлах для всех значений данных (включая URL-адреса) должно использоваться маскирование символов, перечисленных ниже в таблице.
Символ | Маскирование | |
---|---|---|
Амперсанд | & |
&
|
Одинарные кавычки | ' |
'
|
Двойные кавычки | " |
"
|
Больше | > |
>
|
Меньше | < |
<
|
Кроме того, для всех 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&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&desc=vacation_hawaii</loc> <changefreq>weekly</changefreq> </url> <url> <loc>http://www.example.com/catalog?item=73&desc=vacation_new_zealand</loc> <lastmod>2004-12-23</lastmod> <changefreq>weekly</changefreq> </url> <url> <loc>http://www.example.com/catalog?item=74&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&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 должен:
- В начале поставьте открывающий тег
<sitemapindex>
, а затем поставьте закрывающий тег</sitemapindex>
. - Добавьте запись
<sitemap>
для каждого файла Sitemap как родительский XML-тег. - Включите дочернюю запись
<loc>
для каждого родительского тега<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. Однако поисковые системы могут использовать эту информацию, чтобы обнаружить другие страницы сайта, переходя по ссылкам на страницах канала в процессе обычного сканирования. Убедитесь, что канал расположен в каталоге самого высокого уровня, который должен сканироваться поисковой системой. Поисковые системы извлекают информацию из канала следующим образом.
- поле <link> – указывает URL
- поле даты изменения (поле <pubDate> для каналов RSS и дата <обновления> для каналов Atom) – указывает, когда каждый URL был изменен в последний раз. Использовать поле даты изменения необязательно.
Текстовый файл
Вы можете предоставить простой текстовый файл, содержащий один URL в строке. Этот текстовый файл должен соответствовать следующим требованиям.
- В этом текстовом файле в каждой строке должен быть только один URL. Эти URL не могут содержать новые внедренные строки.
- Необходимо указать URL полностью, включая префикс http.
- Каждый текстовый файл может содержать не более 50 000 URL, и его размер не должен превышать 50 МБ (52 428 800 байт). Если сайт включает более 50000 URL, можно разделить этот список на несколько текстовых файлов и передать каждый файл отдельно.
- Для этого текстового файла необходимо использовать кодировку UTF-8. Ее можно задать при сохранении файла (например, в программе "Блокнот" она указана в меню "Кодировка" диалогового окна "Сохранить как").
- Этот текстовый файл не должен включать никаких других данных, кроме списка URL.
- Этот текстовый файл не должен содержать данных заголовка или нижнего колонтитула.
- При необходимости файл Sitemap можно сжать с помощью архиватора gzip, чтобы уменьшить требования к пропускной способности канала.
- Этому текстовому файлу можно присвоить любое имя. Убедитесь, что ваши URL-адреса соответствуют стандарту RFC-3986 для URI-адресов и стандарту RFC-3987 для файлов IRI.
- Загрузите этот текстовый файл в каталог самого высокого уровня, который должен сканироваться поисковой системой, и убедитесь, что в файл не внесены адреса 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 с помощью интерфейса передачи поисковой системы
- как указать местоположение файла Sitemap в файле robots.txt
- отправка HTTP-запроса
Затем поисковые системы смогут извлечь файл 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 г.