Технические требования

Экспорт данных для размещения заголовков и аннотаций новостей на yandex.ru (в том числе на сайте Яндекс.Новости) осуществляется в XML-based формате RSS 2.0. Ниже приведены описание используемых для экспорта данных элементов RSS 2.0, необходимые комментарии и пример экспортного файла.

  1. Описание элементов RSS 2.0, используемых для экспорта данных
  2. Символы и кодировки
  3. Механизм экспорта данных
  4. Пример экспортного файла

Описание элементов RSS 2.0, используемых для экспорта данных

Корневым элементом RSS-файла является rss, атрибут version которого должен иметь значение 2.0.

<rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">

Внутри элемента rss содержится элемент channel, который включает информацию об источнике и его содержание.

Описание структуры элемента <channel>

Элемент channel содержит информацию о сайте источника.

Примечание. Обязательные элементы отмечены значком .
Элемент Описание
title

Название RSS-потока.

Если экспортируется содержание целого сайта, в title передается его название.

<title>Российские новости</title>

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

<title>Российские новости: технологии</title>

На yandex.ru название RSS-потока не показывается, экспортируемые данные маркируются тем названием источника, которое было указано в анкете при подключении к сервису Яндекс.Новости.

link

URL сайта, данные которого транслируются в потоке.

<link>http://www.rossiyskie-novosti.ru</link>
description

Описание потока одним предложением.

Внимание. В элементе description HTML-разметка запрещена.
<description>Ежедневная московская общественно-политическая газета</description>
yandex:analytics

Счетчик системы статистики для учета посещаемости Турбо-страниц.

Внимание. Элемент обязателен, если используется атрибут turbo=«true».

Поддерживаются один или несколько счетчиков Яндекс.Метрики и по одному счетчику LiveInternet, Google Analytics, MailRu и Rambler.

Чтобы трафик на Турбо-страницах учитывался в разных системах статистики, в элемент channel можно добавить сразу несколько элементов yandex:analytics:

  • Для счетчика Яндекс.Метрики укажите тип системы статистики «Yandex» и id с числовым идентификатором счетчика.
  • Для счетчика Liveinternet укажите тип системы статистики «LiveInternet» без id.

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

  • Для счетчика Google Analytics укажите тип системы статистики «Google» и id с идентификатором счетчика.
  • Для счетчика Mail.ru укажите тип системы статистики «MailRu» и id с идентификатором счетчика.
  • Для счетчика Rambler укажите тип системы статистики «Rambler» и id с идентификатором счетчика.
<yandex:analytics id="идентификатор на Яндекс.Метрике" type="Yandex"></yandex:analytics>
<yandex:analytics id="идентификатор другого счетчика на Яндекс.Метрике" type="Yandex"></yandex:analytics>
<yandex:analytics type="LiveInternet" params="название счетчика"></yandex:analytics>
<yandex:analytics id="идентификатор на Google Analytics" type="Google"></yandex:analytics>
<yandex:analytics id="идентификатор на Mail.ru" type="MailRu"></yandex:analytics>
<yandex:analytics id="идентификатор на Rambler" type="Rambler"></yandex:analytics>
yandex:adNetwork

Идентификатор рекламного блока Рекламной сети Яндекса.

Используется для отображения рекламного блока на Турбо-страницах и для учета доходов от рекламы при использовании Турбо-страниц. Добавляется один раз. Регистр в названии yandex:adNetwork имеет значение — буква «N» должна быть прописной.

Поддерживаются только ID Рекламной сети Яндекса, который можно получить после подписания дополнительного соглашения к текущему договору с Рекламной сетью Яндекса. В элемент необходимо добавить атрибуты type с типом рекламной сети «Yandex» и id с буквенно-числовым идентификатором рекламного блока.

<yandex:adNetwork type="Yandex" id="SomeId"></yandex:adNetwork>
item

Новостное сообщение.

Каждый item описывает только одно сообщение. В channel может содержаться любое количество элементов item.

В item передаются следующие обязательные элементы:

  • title — заголовок сообщения,
  • link — URL сообщения,
  • pubDate — время публикации сообщения на сайте источника.
  • yandex:full-text — полный текст новости.
Примечание. Для поддержки формата Турбо-страниц в открывающий тег item каждого сообщения нужно добавить атрибут turbo="true".
<item turbo="true">

Описание структуры элемента <item>

Элемент item содержит информацию о сообщении.

Примечание. Обязательные элементы отмечены значком .
Элемент Описание
title

Заголовок сообщения.

<title>Яндекс ищет на президентском сайте</title>

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

Максимальная длина заголовка — 200 символов.

Внимание. Запрещено:
  • Передавать заголовок сообщения, написанный полностью прописными буквами.
  • Ставить точку в конце заголовка.
  • Указывать в заголовке название источника, дату или время сообщения.
  • Включать в заголовок служебные примечания (например, «обновлено», «дополнено», «фоторепортаж», «видео») и неинформативные обороты, которые не являются неотъемлемой частью заголовка (например, «Срочно!» или «Сенсация»).
link

URL сообщения.

<link>http://www.rossiyskie-novosti.ru/2003/03/25/yandex.html</link>

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

Максимальная длина URL сообщения — 243 ASCII-символа.

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

Внимание. Запрещено:
  • Передавать по одному URL более одной новости (ленту новостей). При переходе с заголовка, размещенного на Яндекс.Новостях, должна открываться страница, содержащая только одно сообщение, соответствующее заголовку.
  • Передавать адреса, различающиеся только «якорями» или «хэшами» (после # и #!). Например, http://www.some-host.ru/news.html#2545 и http://www.some-host.ru/news.html#5794. Такие ссылки считаются идентичными и не допускаются к передаче внутри одного элемента item.
pubDate

Время публикации сообщения на сайте источника.

Передается в формате RFC-822. Регистр в названии pubDate имеет значение — буква «D» должна быть прописной.

<pubDate>Tue, 21 Apr 2015 14:15:00 +0300</pubDate>
<!-- Значение «+0300» определяет часовой пояс. Запись означает, что новость датирована 21 апреля 2015 г., 14:15 московского времени. -->
Внимание. Указанное в экспортном файле время должно совпадать с фактическим временем публикации на сайте.

Актуальными считаются сообщения за последние 8 дней. Остальные проиндексированы не будут.

yandex:full-text

Текст новости.

Элемент yandex:full-text должен содержать полный актуальный текст новости. Он используется для индексирования поисковым роботом, на yandex.ru текст не размещается. Если текст новости на сайте был изменен после публикации, его необходимо обновить и в yandex:full-text.

<yandex:full-text>полный текст новости</yandex:full-text>

В элементе yandex:full-text запрещено передавать:

  • Название источника.
  • Дату или время сообщения.
  • Контактную информацию.
  • Ссылки на изображения, аудио- и видеофайлы (для этих ссылок нужно формировать отдельные теги enclosure, media:group).
yandex:related

Блок со ссылками на другие новости источника. Отображается только на Турбо-страницах.

Число элементов link внутри yandex:related может быть любым. Элемент link может содержать атрибут img с URL иллюстрации к новости по ссылке.
<yandex:related>
<link url="http://www.rossiyskie-novosti.ru/2002/12/05/new-internet-giants.html" img="http://www.rossiyskie-novosti.ru/searchengines-compilation.png">Новые игроки на рынке e-commerce</link>
</yandex:related>
pdalink

Ссылка на версию сообщения, адаптированную для мобильных устройств.

Чтобы мобильная версия сообщения была доступна на https://m.news.yandex.ru/, передайте в элементе pdalink ссылку на соответствующее сообщение в мобильной версии сайта источника.
<pdalink>http://www.m.rossiyskie-novosti.ru/2003/03/25/yandex.html</pdalink>
amplink

Ссылка на AMP-версию сообщения.

Ссылки на страницы в формате AMP, если они присутствуют в вашем экспортном файле, будут использоваться в версии Яндекс.Новостей для устройств с тачскрином вместо ссылок на обыкновенные мобильные и адаптивные страницы.

Чтобы передавать AMP-версии новостей, укажите в элементе amplink ссылку на AMP-версию страницы с соответствующим сообщением.

<amplink>http://amp.vesti.ru/doc.html?id=2733279</amplink>
description

Краткое описание сообщения (аннотация, лид).

Внимание. В элементе description HTML-разметка запрещена.
<description>Продукт Яndex.Site установлен на сайте президента России</description>
yandex:genre

Жанр сообщения.

Указывается латиницей:

  • lenta (короткое новостное сообщение, 50–80 символов),
  • message (более развернутое новостное сообщение),
  • article (статья),
  • interview (интервью).
<yandex:genre>article</yandex:genre>
author

Автор сообщения.

<author>Иван Петров</author>
category

Рубрика (раздел, категория).

Указывается оригинальное (как в издании) название рубрики, в которой опубликовано сообщение. Одному сообщению может соответствовать только одна рубрика.

<category>Технологии</category>
Внимание. Об изменении рубрикации издания или о добавлении в экспортный файл материалов новых рубрик необходимо сообщать по адресу info@news.yandex.ru. Иначе сообщения, относящиеся к ранее не существовавшим или переименованным рубрикам издания, проиндексированы не будут.
enclosure

Иллюстрации, аудио и видеофайлы.

В одном элементе указывается ссылка на одну иллюстрацию, аудио или видеофайл. Если в сообщении содержится несколько иллюстраций, или иллюстрация и видеофайл, используйте несколько элементов enclosure.

Требования к иллюстрациям:

  • Ширина не менее 240 пикселей, длина не менее 300 пикселей. Иллюстрации меньшего размера не индексируются.

    Если есть несколько вариантов одной иллюстрации, отличающихся размером, в enclosure должен быть указан URL изображения наибольшего размера.

  • Иллюстрации должны быть разрешены к индексированию в файле robots.txt. Подробнее

Для изображений параметр type должен совпадать с тем, что отдается по указанному URL. Значение url обязательно. Значение type крайне рекомендуемо, а если невозможно определить тип контента по расширению файла, то обязательно.

<enclosure url="http://www.rossiyskie-novosti.ru/2003/03/25/yandex.jpg" type="image/jpeg"/>
media:group

Группа связанных медиаобъектов.

Можно указать любое количество элементов media:group. Вложенные группы не допускаются. Атрибутов у элемента нет.

Элемент media:group применяется в следующих случаях:

  • Для объединения двух видео, отличающихся форматами. Различные по содержанию видео объединять не рекомендуется.
  • Для объединения плеера и тумбнейла. Ширина тумбнейла должна быть не меньше 240 пикселей, длина — не меньше 300 пикселей. Видео, сопровождающееся тумбнейлом размером менее 300 х 240 пикселей, проиндексировано не будет.
  • Для группировки видео и аудио, если аудиофайл является звуковой дорожкой к видео.
  • Для более качественного индексирования видеофайлов, сопровождающих сообщение, вместе с элементом enclosure или вместо него.

В media:group могут быть следующие вложенные элементы:

  • Один или несколько элементов media:content (обязательный элемент), в одном из которых может быть проставлен атрибут isDefault.
  • Только один элемент media:player (обязательный элемент). Если в группе содержится media:player, то вместо прямой ссылки на файл укажите ссылку на плеер.
  • Один или несколько элементов media:thumbnail, их следует указывать в порядке убывания приоритета.
<media:group>
<media:content url="ссылка на видеофайл на вашем сайте"/>
<media:player url="ссылка на плеер на вашем сайте"/>
<media:thumbnail url="ссылка на иллюстрацию, которая должна быть использована в качестве preview"/>
</media:group>

Описание элементов для онлайн-трансляций

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

Если в экспортном файле есть ссылки на онлайн-конференции или онлайн-репортажи, в ваш обычный фид для Яндекс.Новостей в элемент item сообщения-трансляции включите элемент yandex:online и поместите в него ссылку на еще один фид, в котором должен быть представлен непосредственно текст трансляции.

Структура экспортного файла онлайн-трансляции:

  • title — заголовок трансляции,
  • link — URL трансляции на сайте,
  • pubDate — дата обновления,
  • yandex:genre со значением «online» — укажите жанр сообщения «online», чтобы ссылка на сообщение-трансляцию попала в список «Все онлайн-трансляции»,
  • item — сообщение трансляции (одна «реплика» внутри трансляции):
    • description — текст трансляции (обязательный элемент),
      Внимание. В элементе description HTML-разметка запрещена.
    • link — URL сообщения,
    • pubDate — время сообщения (обязательный элемент).
<item>
<title>заголовок новости</title>
<link>http://www.babruysk.com/revolution.html</link>
<pubDate>дата сообщения</pubDate>
<yandex:full-text>полный текст сообщения</yandex:full-text>
<yandex:online>http://babruysk.com/translation.xml</yandex:online>
<yandex:genre>online</yandex:genre>
</item>

<yandex:online>http://babruysk.com/translation.xml</yandex:online>
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Революция в Бобруйске</title>
<link>http://www.babruysk.com/revolution.html</link>
<pubDate>Mon, 27 Dec 2011 16:45:00 +0000</pubDate>
<item>
<description>Бобруйские рабочие предприняли попытку атаковать здание администрации</description>
<link>http://www.babruysk.com/revolution.html#1488</link>
<pubDate>Mon, 27 Dec 2011 16:45:00 +0000</pubDate>
</item>
</channel>
</rss>

Описание элементов для видео- и фоторепортажей

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

Для трансляции такого видео необходимо в соответствующем item:

  1. Указать ссылку на видео в элементе enclosure или media:group.
  2. Указать жанр сообщения «video» в элементе yandex:genre.
  3. Сформировать элемент description, который должен содержать краткое описание (лид) видеорепортажа.
  4. Сформировать элементы yandex:tags и поместить в них ключевые слова для видео. Каждое ключевое слово должно быть в отдельном элементе yandex:tags. Минимальное количество — 5 ключевых слов.

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

    <yandex:tags>путин</yandex:tags>
    <yandex:tags>порошенко</yandex:tags>
    <yandex:tags>меркель</yandex:tags> 
    <yandex:tags>лукашенко</yandex:tags>
    <yandex:tags>минск</yandex:tags>

Для трансляции фоторепортажей необходимо в соответствующем item:

  1. Указать ссылки на все иллюстрации, входящие в фоторепортаж, в элементе enclosure или media:content.
  2. Указать жанр сообщения «photogallery» в элементе yandex:genre.
  3. Сформировать элемент description, который должен содержать краткое описание (лид) фоторепортажа.
  4. Сформировать теги yandex:tags и поместить в них ключевые слова для фоторепортажа. Каждое ключевое слово должно быть в отдельном элементе yandex:tags. Минимальное количество — 5 ключевых слов.

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

    <yandex:tags>путин</yandex:tags>
    <yandex:tags>порошенко</yandex:tags>
    <yandex:tags>меркель</yandex:tags> 
    <yandex:tags>лукашенко</yandex:tags>
    <yandex:tags>минск</yandex:tags>

Символы и кодировки

По умолчанию (если иное явно не указано в заголовке) кодировкой файла считается UTF-8. Выставление кодировки XML-файла обязательно. Наиболее часто употребляемые кодировки: UTF-8, Windows-1251, KOI8-R.

Внимание. Фактическая кодировка, отдаваемая веб-сервером, всегда должна совпадать с кодировкой, указанной в заголовке XML.

Во всех элементах item и channel (yandex:full-text, link, title, enclosure и др.) необходимо кодировать следующие символы:

Символ Название Код замены
& Амперсанд &amp;
> Правая угловая скобка &gt;
< Левая угловая скобка &lt;
" Знак кавычек &quot;
' Апостроф &apos;

Например, ссылка http://some.host.ru/?id=1&page=10 должна быть приведена к виду http://some.host.ru/?id=1&amp;page=10.

Если RSS-файл передается в KOI8-R, необходимо также заменить встречающиеся в тексте символы кодировки Windows-1251 на аналоги из KOI8-R:

Символ Название Код замены
... Многоточие 133
Короткое тире (en-dash) 150
Длинное тире (em-dash) 151
' ' «Сглаженные» апострофы 145 и 146
" " «Сглаженные» кавычки–«лапки» 147 и 148
«» Кавычки «ёлочки» 171 и 187
Номер 185

Механизм экспорта данных

Для экспорта данных необходимо положить RSS-файл на сервер издания и обновлять его с определенной периодичностью (например, файл может пополняться в течение дня и перезаписываться утром). Файл должен быть доступен по http или https, его индексирование (скачивание) происходит каждые 2 минуты. Экспортный файл, который не удалось полностью загрузить за 10 секунд, считается недоступным.

Для корректного индексирования файла необходимо, чтобы у робота Яндекса было разрешение на скачивание RSS-фида в файле robots.txt. Для этого в начале файла robots.txt добавьте строки:

User-agent: YandexNews
Allow: путь до экспортного файла без имени хоста (например, /file.rss)
...
#последняя строка должна быть пустой

Проверить корректность добавления строк можно в Яндекс.Вебмастере.

Если вы используете в robots.txt директиву Crawl-delay, то убедитесь, что ее значение достаточно мало для того, чтобы робот YandexNews мог оперативно перекачивать RSS-фид. Эту директиву лучше прописать для робота YandexNews отдельно. Ее значение должно быть задано в диапазоне от 0.1 до 2.

User-agent: YandexNews
Allow: /file.rss
Crawl-delay: 0.1
...
#последняя строка должна быть пустой

Пример экспортного файла

<?xml version="1.0" encoding="windows-1251"?>
<rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">

<channel>

<title>Российские новости</title>
<link>http://www.rossiyskie-novosti.ru/</link>
<description>Ежедневная иллюстрированная московская общественно-политическая газета.</description>
<yandex:analytics type="Yandex" id="00000000"></yandex:analytics>

<item turbo="true">
<title>Яндекс ищет на президентском сайте</title>
<link>http://www.rossiyskie-novosti.ru/2003/03/25/yandex.html</link>
<pdalink>http://www.m.rossiyskie-novosti.ru/2003/03/25/yandex.html</pdalink>
<description>Программный продукт Яndex.Site установлен на официальном сайте президента России</description>

<author>Иван Петров</author>
<category>Технологии</category>

<enclosure url="http://www.rossiyskie-novosti.ru/2003/03/25/yandex.jpg" type="image/jpeg"/>
<enclosure url="http://www.rossiyskie-novosti.ru/2003/03/25/yandex1.jpg" type="image/jpeg"/>
<enclosure url="http://www.rossiyskie-novosti.ru/video/100237" type="video/x-ms-asf"/>

<pubDate>Sun, 29 Sep 2002 19:59:01 +0300</pubDate>

<yandex:genre>message</yandex:genre>

<yandex:full-text>Для поиска по сайту www.kremlin.ru выбрана программа Яndex.Site. Этот программный продукт был исследован провайдером президентского сайта — Федеральным агентством правительственной связи и информации. ФАПСИ сочло возможным использование поисковой системы &lt;Яндекса&gt; на www.kremlin.ru. По результатам исследования программа была скомпилирована, протестирована и установлена на сайт.</yandex:full-text>

<yandex:related>
<link url=http://www.rossiyskie-novosti.ru/2002/10/11/yandex-start.html" img="http://www.rossiyskie-novosti.ru/yndx-old-logo.jpg">Новый сервис Яндекса</link>
<link url="http://www.rossiyskie-novosti.ru/2002/12/05/new-internet-giants.html" img="http://www.rossiyskie-novosti.ru/searchengines-compilation.png">Новые игроки на рынке e-commerce</link>
</yandex:related>

</item>
</channel>
</rss>