Analytics, sitemap a RSS — web ide do sveta
Ako som pridal Umami analytics, sitemap, robots.txt a RSS feed. Prečo privacy-first tracking a čo mi to dáva. Building in public, druhý diel.
Web beží. Teraz chcem vedieť, či ho niekto číta — a chcem, aby ho vedel niekto vôbec nájsť.
Problém
Po nasadení prvej verzie som mal pekný minimalistický web, ale nulové informácie o návštevnosti. Zároveň neboli žiadne signály pre vyhľadávače — žiadny robots.txt, žiadna sitemap, žiadny RSS.
Tri veci na riešenie:
- Analytics — kto navštívil, odkiaľ, čo čítal
- Discoverability — aby Google a spol. vedeli, čo tu je
- RSS — pre čitateľov, ktorí odoberajú blogy
Analytics: prečo Umami?
Google Analytics je de facto štandard, ale nechcel som ho tu. Dôvody:
- Cookies — GA vyžaduje cookie consent banner. Pre blog so zopár článkami je to absurdné.
- Privacy — dáta idú Googlu, nie mne.
- Bloat — GA script je ťažký a spomaľuje načítanie.
Umami rieši všetky tri problémy:
- Bez cookies → žiadny consent banner
- GDPR-friendly by default
- Jeden ľahký
<script>tag - Dashboard s pageviews, referrers, krajinami, zariadeniami
Použil som Umami Cloud — zadarmo do 100 000 pageviews mesačne, čo pre osobný blog bohato stačí. Integrácia trvala doslova minútu:
<script
defer
src="https://cloud.umami.is/script.js"
data-website-id="..."
></script>
Script som dal do <head> v BaseLayout.astro — raz definovaný, platí pre celý web.
Sitemap: @astrojs/sitemap
Vyhľadávače potrebujú vedieť, aké stránky existujú. Sitemap im to povie.
Astro má oficiálnu integráciu:
npm install @astrojs/sitemap
// astro.config.mjs
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://rebjak.com',
integrations: [sitemap()],
});
Pri každom builde sa automaticky vygeneruje sitemap-index.xml. Všetky stránky vrátane slovenských aj anglických verzií sú zahrnuté — bez manuálnej správy.
robots.txt
Jednoduchý súbor v public/robots.txt — povolí crawlerov a odkáže ich na sitemap:
User-agent: *
Allow: /
Sitemap: https://rebjak.com/sitemap-index.xml
RSS feed
Blog bez RSS je polovičný blog. Čitatelia, ktorí odoberajú desiatky blogov, používajú RSS čítačky — a ak tam nie si, jednoducho ťa minú.
Riešenie cez @astrojs/rss:
npm install @astrojs/rss
Vytvoril som dva endpointy — /rss.xml pre slovenský blog a /en/rss.xml pre anglický. Každý endpoint načíta príslušnú Content Collection, filtruje drafty a vráti validný RSS XML.
Do <head> v BaseLayout som pridal aj <link rel="alternate">, vďaka čomu prehliadače a RSS čítačky feed automaticky detegujú.
Čo mi to dáva?
- Umami dashboard — od prvého dňa viem, koľko ľudí navštívilo web, odkiaľ prišli a čo čítali. Bez cookies, bez consent bannera.
- Sitemap — Google a ostatné vyhľadávače dostanú kompletný zoznam stránok pri každom crawle.
- robots.txt — explicitne hovorím crawlerom, že sú vítaní.
- RSS — čitatelia si môžu odoberať blog vo svojej obľúbenej čítačke.
Celé to zabralo asi hodinu práce a web je teraz o výrazný krok bližšie k tomu, čo má byť — verejne prístupný, merateľný a odoberateľný.
Čo ďalej?
- Reálny obsah v portfóliu
- Články o Linuxe, vývoji a automatizácii
- Open Graph obrázky pre blog posty
Building in public — píšeme spolu.
Zdrojový kód je dostupný na GitHub.