Безголовий WordPress CMS з Next.js, ACF та архітектурою багаторазових компонентів
Бізнесу потрібен був високопродуктивний, SEO-оптимізований маркетинговий вебсайт з гнучкістю редагування контенту WordPress, але зі швидкістю та досвідом розробників сучасного React фронтенду — без обмежень традиційних тем WordPress.
Обговоріть Ваш Проєкт
Виклик
Традиційні сайти на WordPress мали труднощі з відповідністю сучасним стандартам вебпродуктивності та SEO:
- Монолітні теми WordPress були повільними, важкими та складними в обслуговуванні
- Редактори контенту були прив'язані до жорстких макетів сторінок без гнучкості на рівні компонентів
- PHP-сторінки, що рендерились на сервері, мали низькі показники в Core Web Vitals (LCP, CLS, FID)
- SEO вимагало ручного керування метатегами без автоматизованих структурованих даних
- Повторне використання UI-патернів на різних сторінках вимагало дублювання коду шаблонів, що призводило до розбіжностей та непослідовності
- Лише WordPress REST API не вистачало гнучкості для моделювання складних, вкладених структур контенту
Наше Рішення
Ми розробили архітектуру безголового WordPress + Next.js, використовуючи Advanced Custom Fields (ACF) як гнучкий рівень моделювання контенту, систему багаторазових компонентів на фронтенді та автоматизовану SEO-оптимізацію в цілому.
Архітектура
- CMS: WordPress (безголовий) з ACF Pro для моделювання структурованого контенту
- Рівень API: WPGraphQL + WPGraphQL for ACF для виведення типізованого контенту через GraphQL
- Фронтенд: Next.js з App Router, React Server Components, TypeScript
- Стилізація: Tailwind CSS для стилізації за принципом "utility-first", що відповідає дизайн-системі
- SEO: Next.js Metadata API, структуровані дані JSON-LD, автоматична генерація мапи сайту
- Хостинг: Vercel (фронтенд) + керований WordPress хостинг (CMS)
- Медіа: Next.js Image optimization з медіа-бібліотекою WordPress як джерелом
Моделювання контенту за допомогою ACF
Поля гнучкого контенту
Поля гнучкого контенту ACF дозволяють редакторам створювати сторінки з попередньо визначених блоків контенту. Кожен блок безпосередньо відображається на React компоненті на фронтенді, охоплюючи загальні патерни, такі як секції-герої, сітки функцій, каруселі відгуків, CTA, FAQ-акордеони, лічильники статистики, макети зображення-тексту, вбудовані відео, таблиці цін та стрічки блогів.
Поля-повторювачі та групові поля
- Поля-повторювачі для списків (члени команди, елементи портфоліо, записи хронології)
- Групові поля для структурованих вкладених даних (блоки адрес, посилання на соціальні мережі, перевизначення SEO)
- Поля зв'язків для зв'язування дописів, сторінок та користувацьких типів дописів
- Сторінки опцій для глобальних налаштувань (шапка, футер, посилання на соціальні мережі, кольори бренду)
Архітектура багаторазових компонентів
Принципи дизайну компонентів
Фронтенд дотримується модульної архітектури з окремими шарами:
- Компоненти блоків — Один React компонент на кожен блок гнучкого контенту ACF
- Примітивні UI-компоненти — Елементи багаторазового використання, такі як кнопки, картки та бейджі
- Компоненти макету — Шапка, футер, навігація та обгортки контейнерів
- SEO-компоненти — Генератори схем та утиліти метатегів
Паттерн розв'язання блоків
Центральний розв'язувач зіставляє типи блоків ACF з React компонентами, дозволяючи редакторам створювати сторінки без участі розробників:
- Редактор WordPress вибирає блоки з випадаючого списку та заповнює поля
- WPGraphQL надає сторінку як структурований JSON з типами блоків та даними полів
- Next.js отримує дані сторінки під час збірки (ISR) або під час запиту (SSR)
- Розв'язувач блоків ітерує по масиву блоків та рендерить відповідний React компонент
- Кожен компонент отримує дані свого поля ACF як типізовані props
SEO-оптимізація
Технічне SEO
- Динамічні метатеги — Теги Title, description, Open Graph та Twitter Card, що генеруються для кожної сторінки з даних CMS
- Канонічні URL — Автоматична генерація канонічних тегів, що запобігає дублюванню контенту
- Генерація мапи сайту — Динамічна XML-мапа сайту, побудована з даних сторінок/дописів WordPress під час збірки
- robots.txt — Програмна генерація з правилами, що враховують оточення
- Структуровані дані — JSON-LD схема для типів Organization, Article, FAQ, BreadcrumbList та Product
Продуктивне SEO (Core Web Vitals)
- Статична генерація (ISR) — Сторінки попередньо рендеряться та ревалідуються при зміні контенту через webhook
- Оптимізація зображень — Автоматична конвертація WebP/AVIF, lazy loading, адаптивний srcset
- Оптимізація шрифтів — Завантаження користувацьких шрифтів без зсуву макету
- Розділення коду — Автоматичне розділення коду для кожного маршруту за допомогою React Server Components
- Кешування на периферії — Глобальна периферійна мережа для TTFB менше 100 мс
Контентне SEO
- SEO-поля для кожної сторінки — Перевизначення мета-заголовка, опису та зображення OG через користувацькі поля
- Навігаційні ланцюжки (хлібні крихти) — Автоматично генерована навігація з розміткою схеми
- Внутрішнє посилання — Поля зв'язків дозволяють пропонувати структуровані внутрішні посилання
- Примусове використання Alt Text — Обов'язковий атрибут alt text для всіх полів зображень
Потік даних від WordPress до Next.js
- Зміна контенту — Редактор публікує або оновлює контент в адмінці WordPress
- Trigger Webhook — WordPress надсилає webhook до точки перевалідації Next.js
- ISR Revalidation — Next.js регенерує лише зачеплені сторінки
- CDN Invalidation — Оновлені сторінки подаються з периферії протягом секунд після публікації
Ключові особливості
- Візуальний конструктор сторінок — Редактори створюють сторінки з блоків ACF, не торкаючись коду
- Типізований Content API — WPGraphQL + ACF надає повністю типізовану схему GraphQL
- Бібліотека компонентів — 10+ багаторазових блоків, що охоплюють всі поширені шаблони маркетингових сторінок
- ISR + Webhooks — Оновлення контенту відображаються на сайті протягом секунд
- Автоматизація SEO — Структуровані дані, мапи сайту та метатеги, згенеровані з даних CMS
- Core Web Vitals — Оптимізовані зображення, шрифти та розділення коду для найвищих оцінок Lighthouse
- Режим попереднього перегляду — Кнопка попереднього перегляду WordPress показує чернетку контенту на фронтенді Next.js
- Готовність до багатомовності — Інтеграція ACF + WPML/Polylang для інтернаціоналізованого контенту
Результати
Технологічний Стек
caseStudyDetail.more Кейси
Ознайомтесь з іншими нашими технічними впровадженнями
Вебсайт на Strapi CMS + Next.js з розширеною SEO архітектурою
Зростаючому бізнесу потрібен був швидкий, насичений контентом маркетинговий вебсайт, де їхня нетехнічна маркетингова команда могла б самостійно керувати сторінками, публікаціями в блогах та цільовими сторінками, забезпечуючи при цьому конкурентоспроможне ранжування сайту в органічному пошуку з першого дня.
Обробка рахунків-фактур за допомогою AI, OCR та інтеграції з QuickBooks
Середній бізнес, який щомісяця обробляє сотні рахунків-фактур від постачальників, потребував усунення ручного введення даних шляхом автоматичного вилучення даних рахунків-фактур за допомогою AI/OCR та їх прямої синхронізації з QuickBooks для ведення бухгалтерського обліку та відстеження платежів.
Готові Трансформувати Свій Бізнес?
Давайте обговоримо, як ми можемо застосувати подібні рішення для ваших завдань.