Powrót do strony głównej

Astro 6 SSG na VPS: stack strony 2026

Case statycznej dwujęzycznej strony na Astro 6 SSG z Nginx na VPS. Opisano stack, i18n, infrastruktura SEO, analityka z consent, TypeScript strict. Szczegółowy rozbiór konfiguracji i ograniczeń dla senior-deweloperów.

Jak zbudować stronę na Astro 6 + VPS za 300 RUB
Advertisement 728x90

Architektura statycznej strony na Astro 6 z VPS w 2026 roku

Strona "Na Drzewo" wykorzystuje Astro 6 w trybie SSG do generowania czystej statyki: strona główna projektu, landing page produktu MENO oraz blog. Obsługa dwujęzyczna (pl/en) zaimplementowana bez SPA lub SSR. Na serwerze — Nginx na VPS za 300 rubli, SSL przez Certbot. Analityka — Yandex.Metrika z mechanizmem zgody.

Stos technologiczny zminimalizowany dla wydajności:

  • Framework: Astro 6 (SSG)
  • Język: TypeScript (strict)
  • Treść: Astro Content Collections + Markdown/MDX
  • Serwer: Nginx
  • SSL: Certbot (Let's Encrypt)
  • Analityka: Yandex.Metrika (opcjonalnie)

Astro generuje folder dist z HTML, CSS, JS — bez Node.js w produkcji. Nginx serwuje pliki bezpośrednio, co jest szybsze niż SSR.

Google AdInline article slot

Lokalizacja i struktura URL

Konfiguracja Astro dla i18n:

locales: ['pl', 'en'],
prefixDefaultLocale: true,
redirectToDefaultLocale: false

Struktura:

  • naderevo.com/pl/ — strona główna (PL)
  • naderevo.com/en/ — strona główna (EN)
  • naderevo.com/pl/blog/ — blog (PL)
  • naderevo.com/en/blog/ — blog (EN)
  • naderevo.com/ — strona przekierowania (noindex)

Katalog główny określa język na podstawie localStorage, ciasteczka lub nagłówka Accept-Language i przekierowuje. Prefiks w obu językach upraszcza hreflang i canonical. Content Collections zapewniają typowanie frontmatter — build kończy się niepowodzeniem przy braku wymaganych pól.

Google AdInline article slot

Infrastruktura SEO

Każda strona zawiera:

  • Podstawowe tagi: canonical, hreflang (w tym x-default), Open Graph, Twitter Card.
  • Structured Data: JSON-LD w <head> (WebSite dla strony głównej, SoftwareApplication dla landing page, BlogPosting dla artykułów).
  • Mapa strony: generowana przez @astrojs/sitemap z filtrem stron serwisowych.
  • robots.txt:
User-agent: *
Allow: /
Sitemap: https://naderevo.com/sitemap-index.xml

Otwarte dla crawlerów AI. astro.config.mjs ustawia site: 'https://naderevo.com' dla bezwzględnych URL w sitemap/OG.

Wdrożenie i konfiguracja serwera

VPS serwuje statykę przez Nginx. Dlaczego nie Vercel/Netlify: pełna kontrola nad przekierowaniami, nagłówkami, bez uzależnienia od dostawcy.

Google AdInline article slot

Przekierowania w nginx.conf:

# http -> https
server {
    listen 80;
    return 301 https://$host$request_uri;
}

# www -> apex
server {
    server_name www.naderevo.com;
    return 301 https://naderevo.com$request_uri;
}

Buforowanie zasobów:

Cache-Control: public, max-age=31536000, immutable

Hashe w nazwach plików (Astro) unieważniają cache przy wdrożeniu.

Nagłówki bezpieczeństwa:

X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Referrer-Policy: strict-origin-when-cross-origin

SSL automatycznie odnawiany przez Certbot. Przekierowania legacy dla starych slugów postów.

Analityka z uwzględnieniem prywatności

Yandex.Metrika ładuje się po wyrażeniu zgody. Baner cookie zapisuje wybór w cookie/localStorage. W przypadku odmowy:

  • Skrypt nie jest ładowany.
  • Ciasteczka analityczne są czyszczone.

Cele przez data-metrika-goal. ID z PUBLIC_YANDEX_METRIKA_ID — opcjonalnie dla dev.

Webvisor/clickmap wyłączone dla zmniejszenia obciążenia.

TypeScript i konfiguracja

tsconfig.json:

{
  "extends": "astro/tsconfigs/strict",
  "compilerOptions": {
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}

Tryb strict łapie błędy w komponentach, kolekcjach, konfigach i18n.

Ograniczenia implementacji

  • Strona przekierowania / (noindex) — kompromis SEO: waga idzie na /pl/, /en/.
  • Uniwersalny obraz OG dla wszystkich stron (unikalne w planach).
  • Brak zapisu sesji w Metrice.

Co jest ważne

  • Astro SSG + Nginx — maksymalna prędkość i niezawodność dla statyki.
  • Pełne typowanie treści przez Content Collections.
  • Gotowe na SEO: hreflang, JSON-LD, otwarty robots.txt.
  • Prywatność: analityka tylko za zgodą.
  • VPS tańszy niż PaaS, pełna kontrola konfiguracji.

— Editorial Team

Advertisement 728x90

Czytaj dalej