Регулярное обновление новостного раздела — критический фактор для SEO и удержания аудитории. Вручную собирать и публиковать новости из отраслевых источников неэффективно: владельцы сайтов тратят до 10 часов в неделю на эту рутину, отвлекая ресурсы от развития бизнеса. RSS-агрегация решает проблему: система сама забирает свежие записи, исключает дубликаты и публикует их с правильной атрибуцией. Мы — команда инженеров с многолетним опытом в 1С-Битрикс, выполнили более 50 проектов по автоматизации контента. Реализуем такое решение под ключ за 3–5 дней, обеспечивая уникальность контента и соблюдение авторских прав. Получите консультацию по вашему проекту — просто напишите нам.
Почему важно автоматизировать наполнение новостей?
Ручное копирование новостей из лент приводит к дублированию контента, что наказывается поисковыми системами и снижает доверие аудитории. Автоматизация позволяет не только экономить время, но и гарантировать, что каждая новость уникальна и правильно атрибутирована. С RSS-агрегатором вы получаете свежий контент ежедневно без участия редактора.
Как получать и парсить RSS?
RSS — XML-формат со стандартной структурой. Каждая запись (<item>) содержит title, link, description, pubDate, author. Атомы (<entry>) используют другие теги, но логика та же.
Парсинг через SimpleXML:
$rss = simplexml_load_file($feedUrl);
foreach ($rss->channel->item as $item) {
$this->processItem([
'title' => (string)$item->title,
'link' => (string)$item->link,
'content' => (string)$item->children('content', true)->encoded ?: (string)$item->description,
'pubDate' => strtotime((string)$item->pubDate),
'guid' => (string)$item->guid,
]);
}
<content:encoded> содержит полный текст статьи (если источник предоставляет), <description> — обычно анонс. SimpleXML работает в 2 раза быстрее готовых парсеров DOM. Спецификация RSS определяет форматы лент.
Как избежать дублирования записей?
Один и тот же материал может появиться в нескольких лентах или быть опубликован повторно. Основной метод — дедупликация по guid (уникальный идентификатор записи в RSS):
$existing = CIBlockElement::GetList([], [
'IBLOCK_ID' => NEWS_IBLOCK_ID,
'=PROPERTY_RSS_GUID' => $item['guid']
])->Fetch();
if ($existing) continue; // уже импортировано
Свойство RSS_GUID типа S с IS_REQUIRED = N. Альтернатива для ускорения — хранить обработанные GUID в отдельной таблице или Redis Set. Мы тестировали оба подхода: Redis даёт выигрыш в 30% при потоке свыше 10 000 записей.
Хранение в инфоблоке новостей
Стандартный инфоблок новостей с дополнительными свойствами под RSS-агрегацию:
-
RSS_GUID— GUID записи для дедупликации -
RSS_SOURCE— ID или название источника (для атрибуции) -
ORIGINAL_URL— ссылка на оригинал (для canonical и ссылки «источник») -
AUTO_IMPORTED— флаг автоимпорта (Y/N), чтобы отличать от ручных публикаций
Дата публикации из RSS → ACTIVE_FROM элемента. Это важно для корректной сортировки новостей.
Почему важна обработка контента?
Прямая публикация RSS-контента без обработки — дублирование, которое ведёт к санкциям от поисковиков. Мы предлагаем три уровня обработки:
| Уровень | Описание | Риск дубля | Трудоёмкость |
|---|---|---|---|
| Минимум | Публикация анонса со ссылкой «читать далее» | Низкий | Низкая |
| Средний | Очистка HTML + перефразирование вступления | Средний | Средняя |
| Полный | AI-рерайт всего текста | Высокий | Высокая |
Минимум: законная агрегация — не дублирование, так как публикуется только часть текста. Средний уровень: очищаем HTML (HTMLPurifier), убираем ссылки на источник внутри текста, перефразируем вступление и заголовок. Полный рерайт через AI: отправляем content:encoded в GPT с инструкцией переписать в другом стиле. Это дорого для высокочастотных лент, но оправдано для ключевых материалов. Затраты на ручную публикацию могут быть значительными, а наше решение окупается за 2–4 месяца.
Как настроить несколько лент?
Конфигурация источников в Highload-блоке RssSources:
-
UF_URL— URL ленты -
UF_NAME— название источника -
UF_IBLOCK_ID— в какой инфоблок импортировать -
UF_SECTION_ID— раздел для импортируемых материалов -
UF_ACTIVE— включена/выключена -
UF_INTERVAL— интервал проверки в минутах -
UF_LAST_CHECK— время последней проверки -
UF_PROCESSING— тип обработки (excerpt/full/ai_rewrite)
Как мы настраиваем RSS-агрегатор?
- Техническое задание и архитектура решения.
- Разработка RSS-ридера с поддержкой RSS 2.0 и Atom.
- Дедупликация, хранение в инфоблоке, флаги атрибуции.
- Административный интерфейс для управления источниками.
- Обработка контента по выбранной схеме.
- Расписание агентов и мониторинг ошибок.
- Документация и передача доступов.
Что входит в работу?
- Документация: схема данных, настройки агентов, инструкция администратора.
- Доступы: данные для входа, SSH-ключи, реквизиты API (при необходимости).
- Обучение: показ интерфейса управления лентами, ответы на вопросы.
- Поддержка: гарантийное обслуживание в течение 30 дней после сдачи.
Таймлайн работ
| Этап | Срок |
|---|---|
| Разработка RSS-ридера с поддержкой RSS 2.0 и Atom | 4–8 часов |
| Дедупликация, хранение в инфоблоке | 4–8 часов |
| Обработка контента (очистка HTML) | 4 часа |
| Административный интерфейс для управления источниками | 4–8 часов |
| Расписание, мониторинг | 2–4 часа |
Итого: 3–5 рабочих дней. Добавление AI-рерайта — плюс 1–2 дня.
Оценим ваш проект за 1 день — просто напишите нам. Закажите разработку под ключ с гарантией качества и поддержкой после внедрения. Свяжитесь с нами для расчёта вашего проекта.







