Экспорт через RSS нужен редакциям, которые публикуют материалы на собственном сайте и передают их в экосистему Дзена автоматически. Платформа получает XML-файл, читает сведения об источнике и последовательно обрабатывает элементы item. В зависимости от разметки материал может попасть в Новости, в канал или одновременно в оба продукта.

Обычной RSS-ленты с заголовком, ссылкой и коротким анонсом недостаточно. Спецификация Дзена требует полный текст в content:encoded, рубрику, уникальный идентификатор и корректную дату. Для редакции это отдельный экспортный интерфейс, который лучше тестировать независимо от публичной RSS для читателей.

Как работает экспорт в Дзен

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

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

Не используйте один и тот же генератор вслепую для всех площадок. RSS 2.0 задаёт основу, но Дзен добавляет собственные поля, типы публикаций и требования к полному содержанию.

Требования к файлу и серверу

  • корневой элемент — <rss version="2.0">;
  • файл доступен по HTTP или HTTPS без авторизации;
  • размер экспортного файла не превышает 10 МБ;
  • сервер успевает полностью отдать файл за 10 секунд;
  • в XML явно указана корректная кодировка, обычно UTF-8;
  • до XML-декларации нет BOM, отладочного вывода и пробелов;
  • robots.txt и защита сервера не блокируют робота платформы.

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

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="https://purl.org/rss/1.0/modules/content/"
     xmlns:media="https://search.yahoo.com/mrss/">
  <channel>...</channel>
</rss>

Обязательные элементы channel

Внутри channel описывается источник. По документации Дзена четыре элемента обязательны:

ЭлементЧто передавать
titleНазвание сайта или сочетание сайта и раздела через двоеточие.
linkДомен сайта, с которого экспортируются публикации.
descriptionОписание канала одним предложением, без HTML.
languageЯзык материалов по ISO 639-1, например ru.
<channel>
  <title>Издание: технологии</title>
  <link>https://example.ru</link>
  <description>Новости и разборы технологий</description>
  <language>ru</language>
  ...
</channel>

Название канала в RSS не обязательно становится публичной подписью источника: в интерфейсе могут использоваться сведения, указанные при подключении. Тем не менее служебные значения должны оставаться точными — они помогают диагностировать перепутанные или неверно настроенные ленты.

Обязательные элементы публикации

Каждый материал описывается отдельным item. Минимальный набор включает title, link, guid, pubDate, рубрику через category и полный материал в content:encoded.

link: адрес исходной публикации

Ссылка должна содержать HTTP или HTTPS, вести на домен подключённого источника и открывать одну публикацию, соответствующую заголовку. Максимальная длина — 243 ASCII-символа. URL внутри одной ленты не должны повторяться или различаться только фрагментом после # либо !#.

Заголовок и начало текста на странице источника должны быть видны на первом экране. Справка приводит контрольные разрешения 1024 × 768 для компьютера и 360 × 640 для мобильного устройства. Агрессивный полноэкранный баннер или обязательная авторизация могут нарушить это условие.

guid: стабильная идентичность

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

pubDate: реальное время публикации

Дата передаётся в формате RFC 822 с часовым поясом и должна совпадать со временем на сайте. Например:

<pubDate>Fri, 04 Sep 2026 14:30:00 +0300</pubDate>

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

Три значения contentType

contentType определяет, куда отправится материал. Это не рубрика и не жанр статьи, а режим распространения.

ЗначениеНазначениеОсобенность
newsНовости в Дзене и каналДля участников бесшовного потребления; поддерживает второй заголовок dzenTitle.
news_onlyТолько Новости в ДзенеКарточка ведёт пользователя на сайт источника.
blogs_onlyТолько канал в ДзенеМатериал не появляется в сервисе Новостей; текст может отличаться от версии на сайте.

Если contentType не указан, по текущей документации применяется news_only, а для участников бесшовной программы — news. Но полагаться на неявное значение неудобно: при смене режима подключения поведение может измениться. Практичнее формировать тип явно для каждого потока.

Основной title и альтернативный dzenTitle

title обязателен и должен содержать актуальный заголовок публикации. Его максимальная длина — 200 символов, рекомендуемая — не более 80. В заголовке запрещены полностью прописные формулировки, эмодзи, точка в конце и служебные пометки вроде «Срочно», «Обновлено», «Видео» или «Эксклюзив», если они не являются частью смысла.

Для материала типа news можно передать два варианта:

  • title показывается в сервисе Новостей;
  • dzenTitle используется в канале и рекомендательных лентах.
<title>Компания представила новый сервис для редакций</title>
<dzenTitle>Как новый сервис меняет ежедневную работу редакции</dzenTitle>

Альтернативный заголовок позволяет адаптировать подачу к рекомендательной ленте, но не разрешает кликбейт. Обе формулировки должны честно описывать один материал. Для news_only и blogs_only поле dzenTitle не используется; добавлять его «на всякий случай» не стоит.

RSS-ридер для Дзена показывает оба заголовка рядом, считает символы и отдельно подсвечивает новостной title длиннее 80 знаков.

Рубрика и управляющие category

Один элемент category должен содержать оригинальное название рубрики сайта. По документации одному материалу соответствует одна рубрика. Дополнительными category передаются настройки публикации:

  • index или noindex — индексирование поисковыми системами;
  • native-draft — сохранить материал черновиком вместо немедленной публикации;
  • comment-all, comment-subscribers или comment-none — режим комментариев в канале.
<category>Технологии</category>
<category>index</category>
<category>comment-all</category>

Из этих значений обязательна именно рубрика сайта. Не подставляйте вместо неё только index: технически тег присутствует, но смысловое обязательное поле отсутствует. Для native-draft время автоматической публикации из pubDate не действует, поскольку материал остаётся черновиком.

Полный текст, обложки и медиа

content:encoded содержит полный текст со всеми нужными медиафайлами и поддерживаемой HTML-разметкой. Обычно используются абзацы, ссылки, базовое выделение, заголовки, цитаты, маркированные и нумерованные списки. Контент лучше формировать из очищенного редакционного HTML, а не копировать весь DOM страницы вместе с меню, рекламой и скриптами.

Изображения внутри публикации передаются через figure и img. Поддерживаются JPEG, GIF и PNG, минимальный размер — 480 × 320 пикселей. Подпись можно оформить через figcaption. Все адреса должны быть абсолютными и доступны без cookie, временной подписи или защиты от внешнего робота.

Обложка передаётся через enclosure. Для неё также указан минимум 480 × 320 пикселей и максимальный вес 25 МБ:

<enclosure
  url="https://example.ru/media/cover.jpg"
  length="345678"
  type="image/jpeg" />

Атрибут type должен соответствовать фактическому MIME-типу ответа. Не отдавайте HTML-заглушку по адресу картинки: файл может открываться в браузере, но не пройти автоматическую обработку.

Для видео правила зависят от типа материала. В публикациях канала поддерживается прямой MP4-источник внутри video; для новостного медиаблока используется Media RSS с media:group, media:content и media:thumbnail. Ссылка должна вести непосредственно на файл, а не на страницу видеохостинга.

Обновление и исправление публикаций

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

Если публикацию отредактировали вручную в Студии, последующие изменения из RSS могут перестать применяться. Редакции нужен понятный выбор источника истины: либо материал в течение рабочего окна управляется сайтом, либо после ручной доработки ответственность переходит к редактору Дзена.

При существенном обновлении не создавайте новый item только ради повторной отправки. Стабильный guid связывает версию с исходной публикацией. Новый идентификатор оправдан только для нового самостоятельного материала.

Как реализовать экспорт в CMS

  1. Создайте отдельный endpoint, например /feeds/dzen-news.xml.
  2. Отбирайте только разрешённые типы записей и свежие публикации.
  3. Храните contentType, рубрику и режим комментариев как явные поля.
  4. Генерируйте неизменяемый guid при первой публикации.
  5. Формируйте основной и альтернативный заголовки отдельно.
  6. Очищайте HTML по списку поддерживаемых элементов.
  7. Проверяйте абсолютные URL медиа и их MIME-типы.
  8. Кэшируйте готовый XML и сбрасывайте кэш после изменения материала.
  9. Записывайте время генерации, число элементов и ошибки в технический журнал.

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

Тестируйте XML не только на синтаксис. Семантические ошибки — пустая рубрика, изменившийся guid, неподдерживаемый dzenTitle или слишком длинный заголовок — валидный XML-парсер не заметит.

Типовые ошибки RSS для Дзена

  • Стандартный RSS вместо полного экспорта. В item есть description, но отсутствует обязательный content:encoded.
  • Неявный тип. Редакция ожидает публикацию в канале, а материал без contentType обрабатывается как news_only.
  • Новый guid при каждом обновлении. Вместо исправления создаются дубли.
  • Два URL с разными UTM или фрагментами. Один материал попадает в ленту несколько раз.
  • dzenTitle у неподдерживаемого типа. Альтернативная формулировка не используется.
  • Служебный текст в title. В заголовок попадают «Срочно», эмодзи или отметка формата.
  • Недоступная обложка. CDN блокирует робота, адрес истекает или возвращает неверный Content-Type.
  • Медленная динамическая генерация. RSS не успевает загрузиться за установленное время.
  • Некорректная кодировка. Появляются битые символы или XML перестаёт разбираться.
  • Рубрика перепутана с директивой. В category остаётся только index или comment-all.

Чек-лист перед подключением

  1. RSS 2.0 открывается без авторизации и полностью загружается быстрее 10 секунд.
  2. Размер файла меньше 10 МБ, XML и UTF-8 валидны.
  3. У channel заполнены title, link, description и language.
  4. У каждого item есть title, link, guid, pubDate, рубрика и content:encoded.
  5. contentType соответствует договорённому способу публикации.
  6. Основной заголовок не превышает 200 и желательно укладывается в 80 символов.
  7. dzenTitle передаётся только для news и соответствует материалу.
  8. guid стабилен, URL уникальны и ведут на одну публикацию.
  9. Обложки и изображения доступны напрямую и отвечают требованиям размеров.
  10. После публикации RSS остаётся доступной для обновлений минимум семь дней.
  11. В журнале генерации нет ошибок, а несколько реальных item проверены вручную.

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

Частые вопросы

Можно ли использовать обычную RSS сайта?

Только если она уже содержит весь обязательный набор Дзена, включая полный материал в content:encoded. Большинство читательских RSS передают лишь анонс и требуют отдельного экспортного шаблона.

Что произойдёт без contentType?

По текущей справке материал по умолчанию получает news_only, а для участников бесшовной программы — news. Явное значение безопаснее для предсказуемой интеграции.

Когда нужен dzenTitle?

Только для типа news, когда нужен отдельный заголовок для канала и рекомендательной ленты. В Новостях при этом используется основной title.

Можно ли изменить guid после исправления статьи?

Нет. Изменение guid создаёт риск дубля. Обновляйте содержание существующего item, сохраняя идентификатор.

Нужно ли передавать весь архив?

Нет. Для новостей важны свежие сообщения, а большой файл увеличивает время ответа. Достаточно актуального окна, включающего материалы, которые ещё могут обновляться.

Заменяет ли визуализатор официальный контроль Дзена?

Нет. Он помогает найти ошибки до подключения, но итоговую обработку и модерацию выполняет платформа.

Для работы с другим рекомендательным каналом изучите также руководство по подготовке медиа к Google Discover: там иначе устроена доставка, но требования к качеству источника, заголовкам и изображениям во многом пересекаются.

Основные источники: технические требования Дзена к RSS-ленте, справка об обновлении и удалении новостей и описание бесшовного потребления.