Недавно мы перенесли сайт-документацию с 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 начинается от 30 000 руб.
Как настроить 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.
Получите консультацию прямо сейчас — обсудим задачи и сроки вашего проекта.







