Перейти к содержимому
Astro

Astro

Кратко о движке

Семействоastro
Назначениеssg
ЛицензияMIT
Ценабесплатно
Сайтhttps://astro.build
Статуспроверен
PHP? · PHP 8.5: ?
БД? · без сервера БД: да Node.js нужен только для сборки; на сервер выкладывается готовая папка dist/, её отдаёт nginx (2026-10-17, источник)

В самом Astro поиска нет. В теме Starlight он встроен (Pagefind).

Где работаетвстроенного поиска нет
Проверено2026-10-17

Темы

ТемаЦенаГотовность для мультиязычного проектаМнение автора
Starlight — описание темы ↗бесплатно
вики 64 % проверено 15 из 31
сайт 70 % проверено 16 из 34
не выберу Из заметок: «разочарован в Astro Starlight в первую очередь в архитектуре мультиязычности». Вторая попытка 2026-10-16 (перенос вики с Hugo) — тоже отказ, сайт делается на Hugo + Hextra. (2026-10-16)

Результаты по требованиям

ТребованиеStarlight
Мультиязычность
Материал можно начать на неосновном языке ml-author-any-langда
Рубрики, теги и меню независимы по языкам ml-taxonomy-per-lang?
Переключатель языков показывает только существующие переводы ml-switcher-existingнет
hreflang только на существующие переводы ml-hreflang-existing проверить ↗нет
Нет автостраниц с контентом основного языка ml-no-fallback-pages проверить ↗нет
Основной язык в корне, остальные с префиксом ml-default-rootда
У каждого перевода свой slug ml-translated-slugsнет
Перевод может иметь тот же slug, что и оригинал ml-same-slug?
Атрибут lang в нужном формате ml-html-langда
Тема поддерживает выбранный плагин мультиязычности theme-i18n-compat?
Переводы интерфейса для en, uk, ru, pt-BR ml-ui-stringsда
Контент доступен для автоматического перевода ИИ ml-ai-translatable?
Статьи, навигация и поиск
Управление боковым меню sidebar-control?
Оглавление статьи toc-control?
Перелинковка как в DokuWiki internal-links?
Таксономии (теги, рубрики, свои классификаторы) taxonomies?
Поиск по сайту site-searchда
Гибкость поиска search-replaceable?
Подсветка кода code-highlightда
Пошаговые инструкции content-stepsда
Свой код в шаблоны без правки темы (Inject Partials) theme-inject-partials?
Генерация страниц из данных (pSEO) data-pages?
Визуальная админка admin-ui?
SEO
title, description и OG на уровне записи seo-meta проверить ↗?
sitemap с языковыми версиями seo-sitemapда
Корректный canonical seo-canonical проверить ↗да
Микроразметка schema.org seo-schemaнет
Полный контроль URL seo-url-control?
Адреса латиницей, даже если текст на кириллице seo-url-translit?
Скорость (Core Web Vitals) seo-cwv?
Хранение и окружение
Работает без сервера БД no-dbда
Работает в окружении Nginx + PHP-FPM 8.5 runtime-phpда
Стоимость
Стоимость (движок + тема + платные плагины) cost-total?
Работа с ИИ
Насколько хорошо ИИ работает с фреймворком ai-fluency?

Заметки

Кроме Starlight достойных тем не найдено.

Проверено дважды. В сентябре 2026 — по заметкам: «разочарован в Astro Starlight в первую очередь в архитектуре мультиязычности». 2026-10-16 вики dieg.net целиком перенесли с Hugo на Astro 7 + Starlight 0.42 и от проекта снова отказались — подробности в тесте 2026-10-16--astro--starlight-dnet.

Что важно знать про Astro 7: Markdown по умолчанию обрабатывает Sätteri, привычные remark- и rehype-плагины с ним не работают. Переадресации в статической сборке — только meta refresh, настоящий 301 делается в nginx.

История проверок

2026-10-16 — Astro + Starlight: перенос вики dieg.net с Hugo · отклонён · в рабочем проекте

astro 7.4.0; starlight 0.42.6;

ТребованиеРезультатОт чего зависитПримечание
Материал можно начать на неосновном языке ml-author-any-langдатемастатья только на ru собирается без заглушки en
Переключатель языков показывает только существующие переводы ml-switcher-existingнеттемана статье только на ru меню языков ведёт на /guides/lemp/, /uk/…, /pt/… — таких страниц нет (404)
hreflang только на существующие переводы ml-hreflang-existingнеттемаhreflang в head на все 4 языка и x-default, даже без перевода — ссылки на 404. В sitemap при этом alternate верные
Нет автостраниц с контентом основного языка ml-no-fallback-pagesнеттемапо коду Starlight (utils/routing): для страницы основного языка без перевода создаётся страница с английским текстом и плашкой; в этой сборке не проявилось — все en-страницы переведены
Основной язык в корне, остальные с префиксом ml-default-rootдатемаlocale root = en без префикса, uk/ru/pt — /uk/ /ru/ /pt/
У каждого перевода свой slug ml-translated-slugsнеттемасвой slug меняет ID записи и рвёт связь переводов (меню языков, hreflang) — проверено в проекте
Атрибут lang в нужном формате ml-html-langдатемаhtml lang = ru, uk, pt-BR
Переводы интерфейса для en, uk, ru, pt-BR ml-ui-stringsдатемапереводы интерфейса есть для uk, ru и pt (бразильский: «Pular para o conteúdo»)
Работает без сервера БД no-dbдадвижокстатическая сборка, контент в Markdown
Работает в окружении Nginx + PHP-FPM 8.5 runtime-phpдадвижокnginx отдаёт dist/; php-fpm 8.5 только для своего excuse.php
sitemap с языковыми версиями seo-sitemapдаплагин@astrojs/sitemap: alternate только на существующие переводы
Корректный canonical seo-canonicalдатемаcanonical на саму страницу
Микроразметка schema.org seo-schemaнеттемаJSON-LD и хлебных крошек нет
Поиск по сайту site-searchдатемаPagefind строится при сборке, отдельный индекс на язык (en, uk, ru, pt-br), ищет на языке страницы; формы слов для ru и pt понимает, для uk — нет
Подсветка кода code-highlightдатемаExpressive Code: заголовок блока, кнопка копирования
Пошаговые инструкции content-stepsдатемакомпонент Steps (только в .mdx); есть Tabs, Aside, Card, FileTree

Вики dieg.net перенесена с Hugo (hugo-book) на Astro 7 + Starlight 0.42: адреса сохранены (trailingSlash: 'always'), вставка скриптов в статьи — свой плагин Sätteri, генератор отмазок — компонент + excuse.php через php-fpm, изменённые адреса — 301 в nginx (redirects Astro в статике дают meta refresh). Проект удалён, сайт делается на Hugo + Hextra.

Что выяснилось:

  • В Astro 7 Markdown обрабатывает Sätteri: remark- и rehype-плагины не работают, нужны плагины Sätteri.
  • Тема Nova заменяет 15 компонентов Starlight и сломала светлую тему и заголовки блоков кода — отказались; цвета Gruvbox подключены только CSS.
  • Кэш контента (.astro/data-store.json) не сбрасывается при изменении плагина; файл без title роняет сборку.
  • Статья lemp весит 185 КБ.

Хостинг для Astro

Astro собирает сайт в обычные HTML-файлы, поэтому ему не нужны ни PHP, ни база данных. Подойдёт любой хостинг для статики: бесплатные сервисы вроде Cloudflare Pages и GitHub Pages, обычный виртуальный хостинг или недорогой VPS с Nginx. Главное при выборе — скорость отдачи файлов, бесплатный HTTPS и удобная выкладка новых версий сайта. Сравнить предложения по этим параметрам можно в каталогах TOP-10 Hosting:

  • Виртуальный хостинг — самый недорогой вариант: сервер настраивает и обслуживает провайдер, подходит для небольших сайтов.
  • VPS — свой виртуальный сервер: любая версия PHP, Nginx и доступ по SSH под вашим управлением.
  • Выделенные серверы — целый физический сервер для проектов с высокой нагрузкой.

Как установить Astro самостоятельно и правильно обновлять

Нужны Node.js и npm. Проект создаётся мастером npm create astro@latest, с темой Starlight — npm create astro@latest -- --template starlight имя-проекта.

Подробности — в официальной документации: https://docs.astro.build/.

Проверено: 2026-10-17