Интеграции calendar_today Apr 21, 2026

Экосистема Astro: Лучшие готовые интеграции и плагины

Полный обзор экосистемы плагинов Astro. Разбираем UI-фреймворки, адаптеры SSR, SEO-утилиты, поиск по сайту (Pagefind), оффлоадинг скриптов (Partytown) и Markdoc.

person
Журналист
Автор
Схема работы интеграций в Astro

Одной из причин феноменального успеха Astro стала его система Интеграций. В отличие от классических плагинов других сборщиков (Webpack, Rollup), которые могут делать только одну вещь, интеграции Astro — это умные расширения, которые могут:

  • Добавлять поддержку новых UI-фреймворков (React, Vue, Svelte).
  • Изменять конфигурацию Vite.
  • Генерировать файлы в папку dist при сборке (sitemap.xml, manifest).
  • Добавлять middleware и менять логику серверного роутинга.

Устанавливается любая интеграция одной командой. Astro сам добавляет её в конфиг и предлагает создать нужные конфигурационные файлы:

code
npx astro add tailwind        # Tailwind CSS
npx astro add react           # Острова на React
npx astro add cloudflare      # SSR-адаптер для Cloudflare

Давайте пройдемся по ключевым категориям.


1. UI-фреймворки (Острова интерактивности)

Agnosticism (агностичность) — главная идеология Astro. Вы не привязаны к одному UI-фреймворку. Более того, вы можете использовать несколько на одной странице.

ФреймворкПакетРазмер рантайма
React@astrojs/react~45 КБ
Preact@astrojs/preact~4 КБ
Vue@astrojs/vue~30 КБ
Svelte@astrojs/svelte~1.5 КБ
SolidJS@astrojs/solid-js~7 КБ
Alpine.js@astrojs/alpinejs~15 КБ

Практический совет: Если вам нужна небольшая интерактивность (мобильное меню, аккордеон, счетчик), выбирайте Alpine.js — он работает прямо в HTML-атрибутах без JSX и весит в 10 раз меньше React. Для сложных форм с состоянием — React или Svelte.


2. SEO и Производительность

@astrojs/sitemap

Автоматически генерирует sitemap.xml при каждом npm run build. Поддерживает:

  • Динамические маршруты (из Content Collections).
  • Исключение страниц через filter.
  • Поддержку i18n (генерирует sitemap-index.xml с дочерними картами для каждого языка).
code
// astro.config.mjs
import sitemap from '@astrojs/sitemap';

export default defineConfig({
  site: 'https://yoursite.com',
  integrations: [
    sitemap({
      filter: (page) => !page.includes('/admin/'), // Исключаем страницы админки
      changefreq: 'weekly',
      priority: 0.7,
    }),
  ],
});

Partytown — магия Web Workers

Partytown

(@astrojs/partytown) решает одну из главных болей PageSpeed: тяжелые сторонние скрипты.

Google Analytics 4 (gtag.js), Яндекс.Метрика, Facebook Pixel, HotJar — всё это скрипты, которые загружаются и выполняются в главном потоке браузера, конкурируя за ресурсы с вашим интерфейсом. Именно они съедают 20-40 баллов в PageSpeed.

Partytown перемещает эти скрипты в фоновый Web Worker. Браузер выполняет их изолированно, не блокируя рендеринг UI.

code
---
// src/layouts/BaseLayout.astro
import { Partytown } from '@astrojs/partytown/components';
---

<head>
  <!-- Все скрипты с type="text/partytown" переедут в Web Worker -->
  <Partytown debug={false} forward={['dataLayer.push', 'gtag']} />

  <!-- Google Analytics теперь не тормозит страницу! -->
  <script type="text/partytown">
    window.dataLayer = window.dataLayer || [];
    function gtag() {
      dataLayer.push(arguments);
    }
    gtag('js', new Date());
    gtag('config', 'G-XXXXXXXXXX');
  </script>
</head>

Результат: +15-25 баллов PageSpeed при той же аналитике.


3. Адаптеры для SSR-деплоя

При включении серверного рендеринга (output: 'server' или 'hybrid') Astro нужен адаптер, объясняющий ему, как запускаться на конкретной платформе.

ПлатформаПакетЧто делает
Cloudflare Workers/Pages@astrojs/cloudflareСобирает под workerd-рантайм
Vercel@astrojs/vercelEdge Functions + Image Optimization
Netlify@astrojs/netlifyNetlify Functions + Edge
Node.js (VPS/Docker)@astrojs/nodeExpress-подобный standalone сервер

Переезд с Vercel на Cloudflare — это буквально замена одной строки в astro.config.mjs и смена пакета. Никакого рефакторинга кода.


4. Контент и Стилизация

@astrojs/mdx

Добавляет поддержку MDX-файлов — возможность писать JSX-компоненты прямо внутри Markdown-текстов. Поддерживает плагины remark и rehype для расширения синтаксиса.

@astrojs/markdoc

Интеграция с Markdoc — форматом от команды Stripe. Это более строгая, типизированная альтернатива MDX. В Markdoc теги ({% %}) явно отделены от JSX-синтаксиса, что делает его безопаснее для использования в многопользовательских CMS (редактор не может случайно выполнить произвольный код).

@astrojs/tailwind / @astrojs/db

  • @astrojs/tailwind — моментально подключает Tailwind CSS v4 с правильно настроенным PostCSS.
  • @astrojs/db — официальная интеграция с Astro DB (на базе libSQL/Turso).

5. Поиск по статическому сайту: Pagefind

Реализовать быстрый полнотекстовый поиск по статическому сайту всегда было сложно. Платный Algolia или тяжелый ElasticSearch — единственные варианты в прошлом.

Pagefind (интеграция astro-pagefind) решает это элегантно и бесплатно:

  1. После npm run build Pagefind сканирует все HTML-файлы и создает бинарный индекс (обычно 50-200 КБ для большого сайта).
  2. В браузере поиск выполняется локально через WebAssembly — никаких серверных запросов, никаких задержек.
  3. Результаты появляются мгновенно, с подсветкой найденных слов.
code
# Установка
npm install astro-pagefind

# Запуск индексации (после сборки)
npm run build
code
---
// src/components/Search.astro
import PagefindUI from 'astro-pagefind/components/PagefindUI';
---

<PagefindUI id="search" showImages={false} />

6. Экосистема сообщества (Community Integrations)

Помимо официальных интеграций, на astro.build/integrations собрано более 1 000 плагинов от сообщества:

  • astro-compress — автоматически минимизирует HTML, CSS, JS и оптимизирует SVG при сборке.
  • astro-robots-txt — генерирует файл robots.txt на основе конфигурации.
  • astro-seo — удобный компонент для настройки всех SEO-метатегов (OpenGraph, Twitter Cards, JSON-LD).
  • @astro-community/astro-embed-youtube — ленивая загрузка YouTube-видео (только превью до первого клика).
  • astro-icon — доступ к 200 000+ иконок (через Iconify) прямо в Astro-компонентах без npm-зависимостей.

Итог

Экосистема Astro — это одна из ключевых причин выбора фреймворка. Вам не нужно «изобретать велосипед» для решения типовых задач: карта сайта, поиск по статике, оффлоадинг аналитики, SSR на Edge — для всего этого есть готовые, хорошо поддерживаемые интеграции. Установка любой из них занимает одну команду в терминале.

edit

Как работает MDX?

Узнайте, как использовать интерактивные компоненты в тексте в статье про MDX.

database

Выбор базы данных

Обзор Astro DB, PocketBase и PostgreSQL в нашем сравнении баз данных.

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

Senior Frontend Engineer / Tech Writer

Senior Frontend Engineer с 9-летним опытом. Специализируется на Astro.js и JAMstack.

Комментарии (4)

АГ
18 апр 2026

Попробовал перенести проект с Next.js на Astro. Оказалось, что статическая генерация (SSG) и islands architecture действительно ускоряют загрузку (PageSpeed стал 95+). Подход с частичной гидратацией просто отличный!

МЕ
19 апр 2026

Подскажите, а как лучше настроить SSR адаптер для деплоя Astro на Vercel или Cloudflare? Вроде бы Node.js адаптер тоже подходит, но хочется использовать edge functions для максимальной скорости.

ПЗ
20 апр 2026

Спасибо за разбор! Особенно полезна часть про интеграцию Tailwind CSS v4 и работу с MDX коллекциями (content collections) через схемы Zod. Строгая типизация контента очень помогает при разработке.

ВЛ
21 апр 2026

Подключила PocketBase к Astro по вашей схеме. View Transitions (плавные переходы между страницами) работают шикарно, но возник вопрос: как правильно кэшировать запросы к БД на этапе сборки статического сайта?

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

Оставляя комментарий, вы соглашаетесь с правилами.

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