WebEngine

0%
Веб-розробка

Headless CMS: коли варто, а коли це зайве ускладнення

Як працює headless-архітектура, що вона дає бізнесу і в яких випадках звичайна CMS дешевша та зручніша. Порівняння популярних рішень.

Pavlo8 хв читання

Headless CMS продають як обов’язковий крок у «сучасну архітектуру». Насправді це компроміс: ви отримуєте швидкий фронтенд і нормальний API, а платите другим сервісом в інфраструктурі, складнішим прев’ю й вищим порогом входу для редактора. Нижче — як воно влаштоване технічно, у яких сценаріях реально окупається, коли перетворюється на зайве ускладнення, і чим популярні рішення відрізняються за вартістю володіння, а не за маркетинговою сторінкою.

~30%

надбавка до вартості розробки на старті

$0–99

типова місячна вартість хмарної headless CMS

1 API

на сайт, застосунок і партнерські інтеграції

3+

канали контенту, з яких підхід починає окупатися

Що таке headless і чим воно відрізняється від звичайної CMS

Класична CMS — це три речі в одній коробці: база контенту, адмінка й шаблони, які перетворюють контент на HTML. Headless прибирає третю частину. Лишається сховище та адмінка, а назовні вони віддають контент структурованим JSON через API. Що з цим робити далі — справа фронтенду: зібрати сайт на Next.js, віддати той самий текст у мобільний застосунок або на екран у шоурумі.

  1. 1

    Редактор публікує матеріал

    В адмінці він бачить не сторінку, а поля: заголовок, анонс, галерея, ціна, теги. Поля описані схемою, тож зламати верстку неможливо в принципі — її тут просто немає.

  2. 2

    Контент стає доступним через API

    CMS віддає структуровані дані по REST або GraphQL. Той самий запис одночасно доступний для сайту, застосунку, розсилки й будь-якої зовнішньої системи, яка вміє ходити по HTTP.

  3. 3

    Фронтенд забирає дані й будує сторінки

    Або під час збірки, або за першим запитом із подальшим кешуванням. Це ключовий момент: користувач отримує вже готовий HTML, а не результат запиту до бази в реальному часі.

  4. 4

    CDN віддає готове

    Сторінка лежить на межі мережі, поруч із користувачем. Звідси й типова відповідь за 100–300 мс без жодного кешувального плагіна — кешувати просто нічого, все вже статичне.

// Один і той самий запис — для сайту, застосунку й розсилки.
// revalidate тримає сторінку статичною, але не старшою за годину.
const post = await fetch(
  `${CMS_URL}/api/posts?slug=${slug}&locale=${locale}`,
  { next: { revalidate: 3600 } },
).then((r) => r.json());

Що це реально дає бізнесу

  • Швидкість без боротьби. Сторінка віддається статикою, тому Core Web Vitals виходять зеленими за замовчуванням, а не після трьох ітерацій оптимізації плагінів.
  • Один контент — багато каналів. Каталог, який ви ведете в CMS, годує сайт, застосунок, прайс для маркетплейсу й імпорт для партнера. Без копіювання вручну й без розбіжностей у цінах.
  • Редизайн без переїзду контенту. Фронтенд можна переписати з нуля, не торкаючись бази. Це економить 30–50% бюджету наступного редизайну — контент і структура лишаються на місці.
  • Менша поверхня атаки. Немає публічної адмінки на відомій адресі й немає плагінів із правами на запис у файли сайту. Сама CMS живе за окремим доменом і закрита автентифікацією.
  • Реальна багатомовність. Локалі — це поле в схемі, а не третій плагін поверх двох попередніх. Що з цим робити далі, ми розбирали в матеріалі про багатомовні сайти.

Коли headless — зайве ускладнення

Це та частина, яку зазвичай не пишуть. Headless має цілком реальну ціну, і найчастіше її платять проєкти, яким вона не потрібна. Ознаки, за яких ми самі відмовляємо клієнту в headless.

Ознаки, що вам вистачить звичайної CMS

  • Один канал — тільки сайт, і застосунку в планах немає
  • До 30 сторінок, які оновлюються кілька разів на рік
  • Немає розробника на підтримці: кожна дрібна правка вимагатиме деплою
  • Редактор звик до візуального конструктора й категорично не хоче полів
  • Бюджет проєкту до $2 000 — надбавка з’їдає чверть кошторису
  • Потрібні складні форми, розрахунки чи членство «з коробки», де готова екосистема виграє
Headless вирішує проблему масштабу контенту. Якщо у вас її немає, він додає вам проблему масштабу інфраструктури — і жодної вигоди натомість.

Найболючіший пункт — прев’ю. У звичайній CMS редактор натискає «Переглянути» і бачить сторінку. У headless прев’ю треба окремо реалізувати на фронтенді, і зроблене абияк воно перетворює редакторську роботу на гру в вгадайку. Закладайте на це 8–16 годин розробки одразу, інакше через місяць отримаєте «поверніть нам як було». Загальне порівняння двох підходів за витратами є в розборі Next.js проти WordPress.

Рішення, які реально доходять до продакшена

РішенняМодельКому підходитьПідводний камінь
SanityХмара, безкоштовний тариф, оплата за трафік APIКонтентні сайти, блоги, складні структуриРахунок росте разом із трафіком, схема описується кодом
ContentfulХмара, корпоративні тарифиВеликі компанії, кілька команд і мовРізкий стрибок ціни після безкоштовного тарифу
StrapiSelf-hosted, відкритий кодКоли дані мають лишатися на вашому серверіВи самі відповідаєте за оновлення, бекапи й аптайм
PayloadSelf-hosted, живе поруч із Next.jsПроєкти, де потрібна кастомна логіка в адмінціМолодша екосистема, менше готових рішень
WordPress як headlessSelf-hosted, звичний редакторМіграція з наявного WordPress без переїзду контентуВи тягнете за собою всі мінуси WordPress, крім швидкості
Ціни й обмеження перевіряйте перед стартом — тарифні сітки хмарних CMS змінюються щороку.

Практичне правило вибору: якщо у вас немає людини, яка відповідає за сервери, беріть хмарне рішення й закладайте підписку в бюджет. Якщо є вимога тримати дані у себе або ви вже платите за VPS — self-hosted дешевший на дистанції, але переносить на вас оновлення й резервне копіювання. Ці години теж треба порахувати, і найчесніше зробити це разом із річним бюджетом підтримки.

Скільки це коштує і як ухвалити рішення

На старті headless дорожчий приблизно на 20–35% від вартості аналогічного сайту на звичайній CMS. Різниця йде на опис схем контенту, налаштування прев’ю, окреме середовище для CMS і зв’язування двох частин. Далі математика розвертається: наступний редизайн коштує менше, додавання каналу коштує майже нічого, а щомісячні витрати на плагіни зникають.

  1. 1Порахуйте канали. Один — беріть звичайну CMS. Два й більше або застосунок у планах на рік — headless виправданий.
  2. 2Порахуйте частоту публікацій. До десяти оновлень на місяць різниці не відчуєте; від сотні — структуровані поля економлять редактору години.
  3. 3Перевірте, хто підтримуватиме сайт. Без постійного розробника self-hosted headless стає покинутим сервісом за пів року.
  4. 4Заплануйте прев’ю та ролі доступу на етапі кошторису, а не «додамо потім». Потім це коштує вдвічі дорожче.
  5. 5Зафіксуйте формат експорту контенту в договорі. Головна перевага підходу — переносність, і вона має бути записана, а не малась на увазі.

Часті питання про headless CMS

Чи можна перевести наявний сайт на headless без втрати позицій у пошуку?

Так, якщо зберегти структуру URL, мета-теги, мікророзмітку й внутрішні посилання один в один. Ризик виникає тоді, коли разом із переїздом змінюють адреси сторінок і структуру розділів — тоді просідання майже гарантоване без коректних редиректів. Порядок дій і перелік того, що треба звірити до й після перемикання, зібрані в чеклісті SEO-міграції.

Чи зручно редакторам працювати з headless CMS?

Це залежить від того, наскільки добре описали схему полів і чи зробили прев’ю. Редактор працює з полями замість візуального конструктора: менше свободи, зате неможливо зламати верстку. Люди, які раніше вручну фарбували заголовки в редакторі, перший тиждень скаржаться, а потім зазвичай публікують швидше, ніж раніше.

Скільки коштує headless CMS щомісяця?

Хмарні рішення мають безкоштовні тарифи, яких вистачає невеликому сайту, а платні починаються приблизно від $15–99 на місяць і залежать від кількості користувачів та обсягу запитів до API. Self-hosted варіанти безкоштовні за ліцензією, але вимагають VPS від $10–20 на місяць плюс час на оновлення. Реальна вартість — це підписка або сервер плюс години розробника на обслуговування.

Чи підходить headless для інтернет-магазину?

Підходить, і для великих каталогів це часто найкращий варіант: товари віддаються з API, сторінки статичні, а залишки й ціни підтягуються окремим запитом. Складність у тому, що кошик, оплата й особистий кабінет потребують окремого рішення, тож бюджет на магазин зростає помітніше, ніж на контентний сайт. Що саме входить у такий проєкт, розписано в гайді з розробки інтернет-магазину.

Чи можна залишити WordPress і використовувати його як headless?

Так, WordPress має REST API з коробки, і це нормальний шлях міграції, коли редактори звикли до знайомої адмінки. Ви отримуєте швидкий фронтенд, але зберігаєте всі обов’язки з оновлення WordPress і його плагінів. Це компроміс для переходу, а не кінцева архітектура.

Коротко

  • Headless розділяє сховище контенту й фронтенд: контент віддається як структурований JSON, сторінки збираються заздалегідь і лежать на CDN.
  • Підхід окупається за двох умов: контент іде більш ніж в один канал або обсяг публікацій достатньо великий, щоб структуровані поля економили час.
  • На старті це на 20–35% дорожче, натомість наступний редизайн і додавання каналів коштують суттєво менше.
  • Прев’ю, ролі доступу й формат експорту контенту треба закласти в кошторис одразу — це три речі, через які проєкти повертаються назад на звичайну CMS.
Поділитися
  • CMS
  • архітектура
  • веб-розробка

Схожі матеріали