Нещодавно ми перенесли сайт-документацію з WordPress на Grav. Клієнт скаржився на повільне завантаження та складність деплою. Після міграції швидкість зросла з 1.5 секунд до 200 мс, а обслуговування звелося до git push. Але багато розробників, починаючи з Grav, повторюють одну й ту саму помилку: не вмикають кеш. У результаті швидкість падає в 2–3 рази. У цій статті розберемо, як уникнути цього та правильно налаштувати Grav.
Замовте розробку сайту на Grav — ми проаналізуємо ваш проєкт і підготуємо комерційну пропозицію протягом одного дня.
Коли варто обрати Grav, а коли — ні?
Grav — це flat-file CMS, де контент зберігається у файлах, а не в базі даних. Вона ідеальна для проєктів, де контент статичний або оновлюється рідко, команда працює з Markdown і git, а хостинг обмежений (немає MySQL/PostgreSQL). Типові приклади: сайти-документації, портфоліо, блоги, лендінги. Grav не підходить для e-commerce з тисячами SKU, складних порталів з користувацьким контентом або сайтів з інтенсивними користувацькими сесіями.
Чому Grav швидший за традиційні CMS?
На відміну від WordPress або Joomla, Grav не виконує запити до бази даних при кожному зверненні. Контент читається з файлів і кешується в /cache/. На слабкому хостингу (наприклад, 512 МБ RAM) Grav видає сторінку за 20–50 мс, тоді як WordPress — 200–400 мс. Це дає виграш у 3–5 разів на типових проєктах. Економія на хостингу складає до 70% порівняно з традиційними CMS.
Як ми розробляємо сайти на Grav: наш підхід
Ми підходимо до кожного проєкту індивідуально. Спочатку аналізуємо вимоги, підбираємо відповідні плагіни (наприклад, Grav Plugin SimpleForm, Admin Plugin). Потім розробляємо кастомну тему на Twig з урахуванням SEO та Core Web Vitals. Обов’язково налаштовуємо кешування та assets pipeline. Приклад: для сайту документації ми створили 5 шаблонів, 2 колекції та інтегрували Elasticsearch через плагін. Це дозволило досягти швидкості завантаження менше 200 мс на дешевому хостингу.
Як налаштувати Grav за 5 кроків?
- Встановіть Grav через Composer:
composer create-project getgrav/grav your-project. - Налаштуйте базовий конфіг system.yaml: увімкніть кеш і налаштуйте обробку assets.
- Створіть структуру сторінок у папці user/pages.
- Розробіть шаблони за допомогою Twig та Blueprints.
- Задеплойте на хостинг через Git.
Ці кроки допоможуть уникнути типових помилок і швидко запустити проєкт.
Як влаштована структура сторінок?
Grav використовує файлову структуру для організації сторінок. Кожна сторінка — це папка з .md файлом. Ім’я папки з числовим префіксом задає порядок сортування. Приклад:
- user/pages/01.home/home.md → шаблон home.html.twig
- user/pages/02.services/services.md → шаблон services.html.twig
- user/pages/03.blog/blog.md → шаблон blog.html.twig
- user/pages/03.blog/my-post/default.md — запис блогу
Папки з підкресленням на початку (наприклад, _service-dev) вважаються прихованими і не відображаються в списках.
Frontmatter та шаблони
Кожен .md-файл містить YAML frontmatter:
--- title: Розробка під замовлення slug: custom-development published: true template: service-detail taxonomy: category: [services] metadata: description: 'Розробка веб-додатків' --- Колекції та лістинги
Для виведення списку дочірніх сторінок використовується Twig:
{% set posts = page.children.visible.order('date', 'desc').slice(0, 10) %} {% for post in posts %} <article class="post-card"> <h2><a href="{{ post.url }}">{{ post.title }}</a></h2> {{ post.content|striptags|slice(0, 200) }} </article> {% endfor %} Blueprints: кастомні поля
Blueprints описують поля сторінки для адмінки:
# user/blueprints/pages/service-detail.yaml form: fields: header.intro: type: textarea label: Вступ header.hero_image: type: filepicker label: Головне зображення Продуктивність та кешування
Налаштування кешу в system.yaml:
cache: enabled: true driver: auto lifetime: 604800 gzip: true assets: css_pipeline: true js_pipeline: true На слабкому хостингу без APC/Redis сторінки роздаються з файлового кешу — швидкість порівнянна зі статичними сайтами.
Типові проєкти та терміни
| Тип сайту | Кількість шаблонів | Термін |
|---|---|---|
| Лендінг / візитка | 3–5 | 1–2 тижні |
| Корпоративний з блогом | 6–10 | 2–4 тижні |
| Документація | 5–8 | 2–3 тижні |
Що входить у розробку
- Аналіз вимог та вибір архітектури (колекції, таксономії)
- Встановлення Grav та необхідних плагінів (форми, SEO, sitemap)
- Розробка кастомної теми на Twig з урахуванням Core Web Vitals
- Налаштування кешування та оптимізація assets
- Тестування та передача доступів
- Гарантія 30 днів підтримки
Порівняння Grav та WordPress
| Характеристика | Grav | WordPress |
|---|---|---|
| База даних | Немає (flat-file) | MySQL |
| Швидкість сторінки | 20–50 мс | 200–400 мс |
| Простота деплою | Git | Потребує міграції БД |
| Безпека | Менше вразливостей | Часті оновлення ядра |
| Обслуговування | Мінімальне | Регулярні оновлення |
Типові помилки та їх вирішення
- Забувають увімкнути кеш — швидкість падає в 2–3 рази. Завжди перевіряйте
cache.enabled: true. - Використовують плагіни, коли достатньо кастомного Twig-коду. Це збільшує складність і час завантаження.
- Не налаштовують assets pipeline — CSS та JS завантажуються окремо, збільшуючи час завантаження. Використовуйте
assets.css_pipeline: true.
Отримайте консультацію прямо зараз — обговоримо завдання та терміни вашого проєкту.







