Разработка кастомного шаблона Hugo (Go Templates)

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Разработка кастомного шаблона Hugo (Go Templates)
Средний
~3-5 дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1358
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1250
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    956
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1188
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    929
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    947

Разработка кастомного шаблона Hugo (Go Templates)

Допустим, вам нужно добавить нестандартный сайдбар с динамической навигацией на основе таксономий. Готовая тема Hugo этого не умеет: придётся переписывать партиалы, а после обновления темы изменения съедутся. Или требуется мультиязычный блог с hreflang и Schema.org Article — стандартные шаблоны не дают такой гибкости. Мы создаём кастомные шаблоны на Go Templates, где каждый тег от <html> до финального скрипта под вашим контролем. На счету — более 30 проектов на Hugo, некоторые с нулевой задержкой на генерацию.

Почему Go Templates, а не Twig или Liquid?

Go Templates — это встроенный движок шаблонов Hugo, работающий на компилируемом Go. В отличие от Twig (PHP), Liquid (Ruby) или Jinja2 (Python), он не требует дополнительных интерпретаторов и генерирует страницы в десятки раз быстрее. Строгая типизация и чёткая иерархия lookup order исключают «магические» ошибки. Подробнее о синтаксисе можно прочитать в спецификации Go Templates.

Параметр Go Templates Twig Liquid Jinja2
Скорость генерации 0.5–1 мс на страницу 5–15 мс 3–10 мс 4–12 мс
Типизация Строгая Динамическая Динамическая Динамическая
Кеширование партиалов partialCached (встроено) Нет Нет Нет
Интеграция с Hugo data Полная Через плагины Через плагины Через плагины
Learning curve Средняя (своя логика) Низкая Низкая Низкая

Согласно документации Hugo, lookup order определяет, какой шаблон будет использован для каждого типа страниц. Мы настраиваем этот порядок так, чтобы избежать конфликтов и добиться максимальной производительности.

Какие возможности даёт кастомный шаблон Hugo?

Полный контроль над разметкой без оглядки на готовую тему. SEO-шаблоны с OG, Twitter Cards, Schema.org, canonical и hreflang настраиваются один раз и работают на всех страницах. Производительность: кеширование partialCached, webp-изображения через resources, минификация — Core Web Vitals под контролем. Документация и обучение команды (2–3 часа воркшопа). Гарантия 30 дней на бесплатные правки.

Как создаются кастомные шаблоны Hugo с нуля?

Разработка идёт по этапам:

  1. Анализ контентной модели: типы контента, таксономии, связи.
  2. Проектирование lookup order: какие шаблоны для каких страниц. Hugo ищет шаблон в порядке: layouts/<тип>/<вид>.html, layouts/<тип>/single.html, layouts/<раздел>/single.html, layouts/_default/single.html. Правильная настройка этой иерархии позволяет переиспользовать общие шаблоны и переопределять только нужные.
  3. Вёрстка лейаутов, партиалов и шорткодов.
  4. Тестирование на всех типах страниц (single, list, section, homepage).
  5. Деплой и финальная оптимизация.

В результате вы получаете полный комплект: baseof.html, шаблоны для каждого типа контента, переиспользуемые партиалы, кастомные шорткоды и документацию.

Базовая структура через baseof.html задаёт скелет сайта, а дочерние шаблоны переопределяют блоки:

{{/* layouts/_default/baseof.html */}}
<!DOCTYPE html>
<html lang="{{ .Site.Language.Lang }}">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title>
  {{ block "head" . }}{{ end }}
  {{ partial "head/styles.html" . }}
</head>
<body class="{{ block "body-class" . }}{{ end }}">
  {{ partial "header.html" . }}
  <main>
    {{ block "main" . }}{{ end }}
  </main>
  {{ partial "footer.html" . }}
  {{ partial "head/scripts.html" . }}
</body>
</html>

Дочерний шаблон для отдельного поста:

{{/* layouts/blog/single.html */}}
{{ define "title" }}{{ .Title }} | {{ .Site.Title }}{{ end }}
{{ define "body-class" }}page-post{{ end }}
{{ define "main" }}
<article class="post">
  <header class="post__header">
    <h1>{{ .Title }}</h1>
    <time datetime="{{ .Date.Format "2006-01-02" }}">
      {{ .Date.Format "2 January 2006" }}
    </time>
    {{ with .Params.authors }}
    <div class="post__authors">
      {{ range . }}
        {{ $author := index $.Site.Data.authors . }}
        <span>{{ $author.name }}</span>
      {{ end }}
    </div>
    {{ end }}
  </header>
  {{ if .Params.featured_image }}
  <figure class="post__cover">
    {{ $img := resources.Get .Params.featured_image }}
    {{ if $img }}
      {{ $webp := $img | images.Resize "1200x630 WebP" }}
      {{ $fallback := $img | images.Resize "1200x630" }}
      <picture>
        <source srcset="{{ $webp.Permalink }}" type="image/webp">
        <img src="{{ $fallback.Permalink }}" alt="{{ .Title }}" loading="eager">
      </picture>
    {{ end }}
  </figure>
  {{ end }}
  <div class="post__body">{{ .Content }}</div>
  {{ partial "blog/related-posts.html" . }}
</article>
{{ end }}

Какие проблемы решаем в шаблонах Hugo

Сложная группировка данных. Например, страница команды с сортировкой по отделам. Go Templates легко группируют страницы через groupByParam и слайсы. Производительность партиалов. Тяжёлые компоненты (сайдбар, навигация) кешируются через partialCached по уникальному ключу — генерация ускоряется до 50 %. Мультиязычность. Используем встроенные .Site.Home.Translations и кастомные relLangURL.

Кеширование партиалов:

{{/* Кешировать по slug страницы */}}
{{ partialCached "components/sidebar.html" . .Page.Slug }}

{{/* Кешировать глобально (один раз для всего сайта) */}}
{{ partialCached "components/footer-nav.html" . }}

Больше о partialCached — в официальной документации.

Что входит в разработку кастомного шаблона?

Компонент Описание
Лейауты baseof.html и шаблоны для всех типов страниц (single, list, section, homepage)
Партиалы Переиспользуемые блоки: header, footer, sidebar, навигация, SEO-вставки
Шорткоды Кастомные вставки для контента (таблицы, галереи, кнопки)
SEO-шаблоны OG, Twitter Cards, Schema.org, canonical, hreflang
Оптимизация Кеширование partialCached, webp-изображения, минификация
Документация Описание структуры, инструкция по добавлению контента
Обучение Воркшоп для команды (2–3 часа)
Гарантия 30 дней на бесплатные правки

Сроки и как начать

Тип проекта Сроки
Типовой сайт (5–15 страниц, блог, базовая SEO) 1–2 недели
Сложный проект (мультиязычность, кастомные таксономии, интеграции) 3–5 недель
Корпоративный портал с интеграциями 4–6 недель

Оценим ваш проект бесплатно: напишите нам — пришлём сроки и бюджет.

Свяжитесь для консультации — мы более 5 лет создаём кастомные шаблоны Hugo под ключ. Закажите разработку и получите полностью управляемый шаблон, который не подведёт в продакшене.

Выбор типа сайта — техническая задача, а не маркетинг

Мы видим, как команды тратят бюджет на неподходящий стек. Лендинг на Next.js со статической генерацией и корпоративный сайт с CMS — принципиально разные инфраструктуры, даже если внешне похожи. Ошибка на старте ведёт к переплате за хостинг в 5–10 раз и низкой скорости загрузки. Core Web Vitals (LCP, INP, TTFB) для каждого типа сайта — свой набор приоритетов.

Ниже разберём четыре типа сайтов, их типичные технические ошибки и как мы их исправляем.

Как не ошибиться с выбором CMS?

Сайт-визитка

Самый компактный формат: 1–5 страниц, минимум динамики. Основная задача — дать контактную информацию и создать первое впечатление. Технически здесь нет сложности, но есть типичные ошибки.

Слишком тяжёлый стек. WordPress с 15 плагинами для 5 страниц — это 800ms TTFB на shared хостинге. Мы предлагаем статику: HTML/CSS/JS или Next.js с output: 'export', задеплоенное на Vercel или Cloudflare Pages. Никакого PHP, никакой базы данных — только CDN. TTFB < 50ms гарантированно. Экономия на хостинге — до 50 000 ₽ в год.

Нет контактной формы с backend-валидацией. Форма только с JS-валидацией — это декорация. Бэкенд должен валидировать, rate-limit и отправлять уведомление. Для статического сайта используем Formspree или серверлесс endpoint.

Отсутствие Schema.org разметки. Google Knowledge Panel строится на разметке LocalBusiness или Organization — адрес, телефон, часы работы. Для визитки это критично. Мы делаем её встроенной в шаблон.

Срок разработки: 2–3 недели с дизайном.

Почему скорость лендинга напрямую влияет на конверсию?

Лендинг

Лендинг — страница с одной целью: конверсия. Всё, что не ведёт к целевому действию, лишнее. Core Web Vitals здесь критичны, потому что платный трафик, а Google использует CWV как фактор в Quality Score.

Конкретный кейс: лендинг с hero-видео 8MB autoplay в MP4 без preload="none" + три сторонних скрипта аналитики синхронно в <head>. LCP 9.4s, INP 780ms. Мы заменили видео на poster image с отложенной загрузкой по scroll, скрипты перевели на async/defer и частично в Web Workers через Partytown. LCP 1.8s, INP 140ms. Конверсия выросла на 23% — только за счёт скорости, не дизайна.

A/B тестирование — стандартная практика. Google Optimize закрылся, но есть Growthbook (open source), PostHog, VWO. Для Next.js используем edge middleware для распределения трафика на уровне CDN без лишнего JS.

Срок: 2–4 недели. Закажите разработку под ключ — мы оценим ваш проект за 1 день.

Корпоративный сайт

Корпоративный — это CMS, несколько разделов, мультиязычность, интеграция с CRM. Ключевой вопрос: кто будет редактировать контент и как часто.

Если редакторы нетехнические — нужен visual editor. WordPress с Gutenberg или ACF Pro закрывает это. Для сложных структур — headless CMS (Strapi, Directus) с фронтендом на Next.js. Если сайт обновляется редко — Markdown в Git с Astro или Next.js. Деплой по push в main — никакой CMS.

Производительность. Страница «О компании» с 40 фотографиями в оригинале — LCP 12 секунд на мобильном. <Image> компонент Next.js с WebP и srcset решает без ручной работы.

Мультиязычность: Astrotomic Translatable на Laravel или next-intl / react-i18next. Структура URL — /ru/about, /en/about с hreflang.

Срок: 6–12 недель в зависимости от объёма.

Промо-сайт

Промо — временный или постоянный сайт под кампанию. Нестандартный дизайн, анимации, интерактив. Стек: GSAP, Framer Motion, Three.js, Lottie, Canvas API.

Главная ловушка — анимации, тормозящие на мобильных. GPU-анимации через transform и opacity — нормально. box-shadow в анимации, filter: blur() на каждом кадре, анимация width/height — причина 20fps на iPhone 12. will-change: transform помогает точечно.

prefers-reduced-motion — обязателен для accessibility. Мы всегда добавляем.

Срок: 3–6 недель, зависит от сложности.

Сравнительная таблица

Параметр Визитка Корпоративный Лендинг Промо
Страниц 1–5 10–50+ 1–3 1–10
CMS Не нужна Нужна Не нужна Редко
SEO-приоритет Средний Высокий Высокий Низкий
Анимации Минимум Умеренно Умеренно Интенсивно
Срок (с дизайном) 2–3 нед 6–12 нед 2–4 нед 3–6 нед

Стоимость в каждом случае рассчитывается индивидуально после изучения технического задания. — Google рекомендует TTFB под 0.8s, у нас <0.2s.

Что входит в работу

  • Аналитика и прототипирование (структура, пользовательские сценарии)
  • Дизайн-концепция (адаптивный, mobile-first)
  • Вёрстка с оптимизацией LCP, CLS, INP
  • Выбор и настройка CMS (если нужна)
  • Интеграция с CRM/маркетинговыми инструментами
  • Тестирование (кроссбраузерное, load-testing)
  • Документация и передача доступов
  • Обучение редакторов (видео + письменно)
  • Гарантия 3 месяца (бесплатные правки)

Наша экспертиза

Мы на рынке 10+ лет, реализовали 200+ проектов — от простых визиток до высоконагруженных лендингов с миллионными аудиториями. Каждый проект проходит аудит на Core Web Vitals перед релизом.

Вторая таблица: сравнение подходов

Подход TTFB (мс) Сложность поддержки Стоимость разработки
Static HTML/CSS <50 Низкая Низкая (от 50 000 ₽)
Next.js + headless CMS <200 Средняя Средняя (от 150 000 ₽)
WordPress + плагины 500–1500 Высокая Высокая (от 300 000 ₽)
Подробнее об оптимизации изображений Мы автоматически конвертируем в WebP/AVIF, генерируем srcset для всех разрешений, используем lazy loading с Intersection Observer. Для фоновых изображений — техника progressive loading.

Свяжитесь с нами, чтобы получить консультацию по вашему проекту. Закажите разработку под ключ — мы оценим сроки и бюджет за 1 день.