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.
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.
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/sitemapz 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.
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
Brak komentarzy.