Astrocalendar_today28 февр. 2026 г.schedule3 мин

Astro vs Hugo в 2026: SSG на JavaScript vs Go

Детальное сравнение Astro.js и Hugo: скорость сборки, экосистема, шаблоны, гибкость. Когда Hugo быстрее Astro, а когда Astro выигрывает по возможностям.

Фото Дмитрий Соколов
Дмитрий Соколов
технический редактор и консультант по быстрым сайтам
Astro vs Hugo — сравнение генераторов статических сайтов

Hugo и Astro — оба отличные генераторы статических сайтов, оба создают быстрые HTML-файлы. Но различия между ними фундаментальны: один написан на Go и делает ставку на скорость сборки, другой — на JavaScript и ставит во главу угла экосистему и удобство компонентной разработки.

Философия двух подходов

Hugo — написан на Go. Он существует с 2013 года и до сих пор удерживает рекорды скорости сборки. Шаблонизатор Go-templates мощный, но синтаксически далёк от привычного HTML/JSX.

Astro — написан на JavaScript/TypeScript, использует Vite. Синтаксис .astro-файлов максимально похож на HTML. Поддерживает компоненты React, Vue, Svelte.

Скорость сборки: безоговорочная победа Hugo

Это единственный параметр, где Hugo не имеет конкурентов:

Кол-во страниц Hugo Astro
1 000 0.1 с ~3 с
10 000 0.8 с ~30 с
100 000 6 с ~5 мин

Если у вас новостной портал с 50 000+ статьями и деплой должен занимать секунды — Hugo вне конкуренции.

Возможности и экосистема

Параметр Astro Hugo
Язык шаблонов .astro (похоже на HTML) Go-templates (специфический синтаксис)
Компоненты React/Vue/Svelte ✅ Да ❌ Нет
TypeScript ✅ Нативно ❌ Не поддерживается
Npm-пакеты ✅ Любые ⚠️ Ограниченно через Hugo Pipes
MDX (JSX в Markdown) ✅ Нативно ❌ Нет
Tailwind CSS ✅ 1 команда ⚠️ Возможно, но сложнее
Content Collections (типизация) ✅ Zod-валидация ❌ Базовый фронтматтер
Модули/плагины npm-интеграции Hugo Modules (Go modules)
JS-острова (частичная гидратация) ✅ Да ❌ Нет
Активное развитие ✅ Cloudflare ✅ Независимо

Шаблонизация: сравнение синтаксиса

<!-- Hugo: Go-шаблоны -->
{{ range .Pages }}
<article>
  <h2><a href="{{ .Permalink }}">{{ .Title }}</a></h2>
  <time>{{ .Date.Format "02.01.2006" }}</time>
  {{ .Summary }}
</article>
{{ end }}
<!-- Astro: знакомый JSX-синтаксис -->{
  posts.map((post) => (
    <article>
      <h2>
        <a href={post.url}>{post.data.title}</a>
      </h2>
      <time>{post.data.date.toLocaleDateString('ru-RU')}</time>
      <p>{post.data.description}</p>
    </article>
  ))
}

Для разработчиков, знакомых с React или Vue, синтаксис Astro освоить в разы проще.

Кривая обучения

Hugo требует изучения:

  • Go-templates (условия, циклы, функции — свой синтаксис)
  • Hugo-специфической структуры папок (archetypes, layouts, partials)
  • Hugo Pipes для обработки ресурсов

Astro требует изучения:

  • Frontmatter в .astro-файлах (фактически TypeScript)
  • Директивы client:* для островов
  • Остальное — привычный HTML/CSS/JS

Большинство JS-разработчиков начинают продуктивно работать с Astro в первый же день.

Экосистема тем и шаблонов

У Hugo огромная библиотека бесплатных тем — тысячи вариантов на themes.gohugo.io. Это преимущество для не-разработчиков.

Astro themes (astro.build/themes) активно растёт: 300+ тем в 2026 году. Подробнее — в статье Шаблоны для Astro.

Когда выбрать Hugo?

storage

Гигантские сайты

100 000+ страниц? Hugo соберёт за секунды. Astro будет строиться минутами, что критично при CI/CD на больших редакциях.

code

Go-разработчики

Если команда знает Go — Go-templates будут органичны. Не нужно погружаться в JavaScript-экосистему.

block

Нет React/Vue

Если проект — чистый HTML/CSS без интерактивных компонентов, Hugo достаточно и работает надёжно.

Когда выбрать Astro?

  • Нужны компоненты React, Vue или Svelte
  • Используется Tailwind CSS, npm-пакеты
  • Контент в MDX с кастомными компонентами в тексте
  • Команда — JS/TS разработчики
  • Нужны TypeScript и строгая типизация контента (Zod)
  • Меньше 50 000 страниц (сборка комфортная)

Миграция Hugo → Astro

Если у вас есть проект на Hugo и вы хотите перейти на Astro:

  1. Markdown-файлы совместимы — frontmatter тот же формат
  2. Нужно переписать Go-шаблоны на .astro-компоненты
  3. config.tomlastro.config.mjs
  4. Маршрутизация: content/blog/post.mdsrc/content/articles/post.mdx

Итог

Hugo — непобедимый чемпион по скорости сборки для порталов с сотнями тысяч страниц. Astro — гораздо более современный DX, полная JS-экосистема, компонентная модель и типизация. Для большинства новых проектов с объёмом до 50 000 страниц Astro предпочтительнее. Для гигантских порталов — Hugo незаменим.

Фото Дмитрий Соколов
Автор материалов

Frontend Engineer и Astro-консультант

Помогает бизнесу запускать быстрые сайты на Astro, переносить проекты с CMS и готовить страницы к SEO/GEO-продвижению.

Комментарии

Загрузка комментариев...

Оставить комментарий

Комментарии проходят модерацию перед публикацией. Правила

Рекомендуем к прочтению