Розробка сайту ЗМІ на 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, читання з реплік. Бітрікс підтримує DB-кластер через модуль
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, DB-кластер, Redis, моніторинг, навантажувальне тестування | 2–3 тижні |
| Міграція контенту | Імпорт архіву публікацій, редиректи зі старих URL | 2–4 тижні |
| Запуск | Плавний перехід, моніторинг перших днів | 1 тиждень |
Загальний термін — від 20 тижнів. Міграція контенту часто виявляється найнепередбачуванішим етапом: стара CMS може зберігати дані в нестандартних форматах, а редиректи зі старих URL критичні для збереження поскового трафіку.







