Разработка сайта СМИ на 1С-Битрикс
Новостной портал — один из самых требовательных типов проектов на 1С-Битрикс. Тысячи публикаций ежедневно, миллионы просмотров в пиковые часы, десятки редакторов работают параллельно. Здесь нет права на медленную страницу — читатель уйдёт к конкуренту за 2 секунды. Битрикс справляется с этим при грамотной архитектуре: композитный кеш, CDN, оптимизированные инфоблоки и правильно настроенный редакционный workflow.
Архитектура контента
Основа — инфоблоки с продуманной структурой. Главный инфоблок «Публикации» содержит все материалы: новости, статьи, интервью, репортажи. Тип материала — свойство-справочник, не отдельный инфоблок, потому что общий контентный поток должен выводиться на главной без объединения нескольких источников.
Рубрики — разделы инфоблока (политика, экономика, общество, спорт, культура, технологии). Вложенность одноуровневая — глубокие деревья усложняют навигацию и размывают SEO.
Теги — множественное свойство типа «строка» или привязка к Highload-блоку тегов. Highload-блок предпочтительнее: он позволяет нормализовать теги (избежать дублей вроде «COVID» / «Covid» / «covid-19»), хранить SEO-описание тега для страницы тега и отслеживать популярность.
Спецпроекты — отдельный инфоблок с привязкой к публикациям через свойство «Связанные материалы» (множественная привязка к элементам основного инфоблока). Спецпроект имеет собственный шаблон страницы, лого, спонсора. Публикация может принадлежать одновременно рубрике и спецпроекту — перекрёстная привязка без дублирования контента.
Авторы — Highload-блок с полями: ФИО, фото, должность, био, ссылки на соцсети. Привязка к публикации через свойство. Страница автора выводит все его материалы через news.list с фильтрацией по ID автора.
Редакционный workflow — контроль без хаоса
В редакции СМИ над одним материалом работают 3–5 человек: корреспондент, редактор, выпускающий, корректор, фоторедактор. Битрикс не имеет встроенного редакционного модуля уровня WordPress Editorial Calendar, но workflow строится на свойствах инфоблока и правах групп пользователей.
Статусы публикации — свойство типа «список»:
- Черновик — создан корреспондентом, виден только автору и редактору рубрики
- На редактуре — редактор работает с текстом, вносит правки
- На корректуре — проверка орфографии, фактчекинг
- Готов к публикации — одобрен выпускающим редактором
- Опубликован — виден на сайте
- Снят с публикации — архивирован, не индексируется
Права доступа. Создаём группы: «Корреспонденты», «Редакторы рубрик», «Выпускающие», «Корректоры», «Главред». Через настройки прав инфоблока:
- Корреспонденты: создание элементов, редактирование своих, смена статуса на «На редактуре»
- Редакторы рубрик: редактирование всех в своём разделе, смена статуса до «Готов к публикации»
- Выпускающие: смена статуса на «Опубликован» для любого раздела
- Главред: полный доступ, включая «Снят с публикации»
Уведомления. Обработчик события OnAfterIBlockElementUpdate отслеживает смену статуса и отправляет уведомление следующему в цепочке — через email или Telegram-бота. При переводе в «На редактуре» — уведомление редактору рубрики. При «Готов к публикации» — выпускающему. Задержка публикации реализуется через свойство «Дата публикации» с активностью по дате (ACTIVE_FROM).
Версионирование. Если нужна история правок — подключаем бизнес-процессы инфоблока с логированием изменений. Штатный механизм Битрикс хранит историю версий элемента при включённом модуле «Бизнес-процессы».
RSS, AMP, Turbo-страницы
RSS — компонент rss.out с настройкой количества элементов (50–100 последних), полного текста или анонса. Создаём отдельные RSS-ленты для каждой рубрики — для агрегаторов (Яндекс.Новости, Google News) нужны тематические фиды.
Turbo-страницы Яндекса — формируем через отдельный RSS-канал в формате Turbo. Шаблон: XSLT-трансформация стандартного RSS с добавлением turbo:content. Аналитику Turbo-страниц подключаем через Яндекс.Метрику с отдельным счётчиком.
AMP (Accelerated Mobile Pages) — требует отдельного шаблона для каждого типа страницы. В Битрикс реализуем через альтернативный шаблон сайта, активируемый по условию URL (префикс /amp/). AMP-шаблон использует ограниченный набор компонентов: amp-img, amp-video, amp-carousel. Формы — через amp-form с endpoint на отдельный PHP-обработчик.
Рекламные блоки
Модуль advertising Битрикс позволяет создавать рекламные контейнеры с ротацией баннеров, таргетингом по разделам и учётом показов/кликов. Для крупного СМИ этого недостаточно — подключаем Google Ad Manager (GAM) через тег gpt.js. Контейнеры Ad Manager размещаем в шаблоне сайта с lazy-loading (загрузка рекламы после основного контента) — это улучшает Core Web Vitals.
Нативная реклама — отдельный раздел инфоблока с пометкой «Партнёрский материал» (свойство «Спонсор» + визуальная маркировка в шаблоне, в соответствии с ФЗ «О рекламе»).
Производительность под высокую нагрузку — ключевая инженерная задача
Новостной портал с миллионами просмотров в сутки — это совершенно иной уровень требований к инфраструктуре, чем корпоративный сайт. Битрикс предлагает инструменты, но их нужно правильно сконфигурировать.
Композитный кеш (Composite). Страница разбивается на статическую часть (HTML, закешированный на диске или в memcached) и динамические фрагменты (счётчики просмотров, блок авторизации). Статическая часть отдаётся напрямую через nginx без обращения к PHP — это снижает время ответа с 200–500 мс до 10–30 мс. Настройка:
- В панели управления: «Настройки» → «Композитный сайт» → включить
- Исключения: страницы с POST-формами, личный кабинет, страницы с персонализацией
- Динамические области: через
$APPLICATION->IncludeComponent()с параметромCOMPOSITE_FRAME_MODE => "A"(AJAX-подгрузка)
CDN. Статика (CSS, JS, изображения, видео) отдаётся через CDN. В настройках модуля main указываем CDN-домен. Для медиафайлов из upload/ настраиваем nginx rewrite на CDN origin. Время жизни кеша CDN — 30 дней для статики, 1 час для RSS-лент.
Кеширование на уровне компонентов. Для списков новостей CACHE_TIME = 300 секунд (5 минут). Для главной страницы — 60 секунд. Для архивных страниц — 86400 (сутки). Тегированный кеш (cache_tag) привязан к инфоблоку — при добавлении новой публикации кеш списков сбрасывается автоматически.
Серверная архитектура. Минимальная конфигурация для портала с 1M+ просмотров/день:
- Nginx как reverse proxy + отдача статики и композитного кеша
- PHP-FPM с пулом воркеров (pm.max_children рассчитываем по формуле: доступная RAM / потребление одного процесса)
-
MySQL/MariaDB — master-slave репликация: запись в master, чтение с реплик. Битрикс поддерживает кластер БД через модуль
cluster - Memcached или Redis — для сессий, кеша компонентов и тегированного кеша. Redis предпочтительнее — поддерживает персистентность и структуры данных
- Sphinx или Elasticsearch — для полнотекстового поиска по архиву публикаций. Штатный поиск Битрикс не справляется при миллионах записей
Мониторинг. Модуль «Производительность» Битрикс показывает базовые метрики. Дополнительно: Grafana + Prometheus для серверных метрик, Sentry для ошибок PHP/JS, custom dashboard с метриками TTFB по страницам.
Этапы разработки новостного портала
| Этап | Работы | Срок |
|---|---|---|
| Аналитика | Структура рубрик, редакционный workflow, требования к нагрузке | 2–3 недели |
| Проектирование | Архитектура инфоблоков, схема кеширования, прототипы | 2–3 недели |
| Дизайн | Сетка публикаций, шаблоны материалов, мобильная версия | 3–4 недели |
| Фронтенд | Вёрстка, AMP-шаблоны, рекламные контейнеры | 4–5 недель |
| Backend | Инфоблоки, workflow, RSS/Turbo, интеграция Ad Manager | 4–6 недель |
| Инфраструктура | CDN, кластер БД, Redis, мониторинг, нагрузочное тестирование | 2–3 недели |
| Миграция контента | Импорт архива публикаций, редиректы со старых URL | 2–4 недели |
| Запуск | Плавный переход, мониторинг первых дней | 1 неделя |
Общий срок — от 20 недель. Миграция контента часто оказывается самым непредсказуемым этапом: старая CMS может хранить данные в нестандартных форматах, а редиректы со старых URL критичны для сохранения поискового трафика.







