ArtiklarGuiderVibe CodingVerktygResurserOmKontakt
← Alla artiklar

Prestanda och SEO i moderna webbprojekt

Simon Nyström3 min läsning

Jamstack-arkitektur ger dig ett prestandaförsprång – men bara om du vet hur du utnyttjar det.

Modern webbutveckling – headless, API:er och Jamstack
Vad är Jamstack och varför används det?Hur webben fungerar – requests, responses och API:erHeadless CMS – innehåll utan designStatiska sajt-generatorer – Next.js, Astro och andraDeploy och hosting – från lokal kod till live-sajtGit och versionskontroll – grunden för modernt arbetsflöde7Prestanda och SEO i moderna webbprojekt8Bygg ett modernt webbprojekt – från idé till deploy
← FöregåendeNästa →

Varför prestanda är en SEO-fråga

Google använder Core Web Vitals som rankningsfaktor. Långsamma sidor rankar sämre, oavsett hur bra innehållet är. En statiskt genererad Jamstack-sajt har ett naturligt försprång här – men det är möjligt att sabba det med dåliga val kring JavaScript, bilder och tredjepartskod.

Core Web Vitals – de tre måtten som räknas

LCP – Largest Contentful Paint

Hur lång tid tar det tills det största synliga elementet (vanligtvis en hero-bild eller huvudrubrik) är renderat? Google siktar på under 2,5 sekunder. Den vanligaste orsaken till dåligt LCP är en ej optimerad hero-bild.

INP – Interaction to Next Paint

Hur snabbt svarar sidan på interaktion (klick, knapptryck)? Ersatte CLS som det tredje Core Web Vital-måttet 2024. Relevant framför allt för interaktiva applikationer, mindre kritiskt för innehållssajter.

CLS – Cumulative Layout Shift

Hoppar element runt på sidan medan den laddar? Bilder utan definierade dimensioner och lazy-laddade fonter är vanliga orsaker. Sikta på under 0,1.

Bildoptimering – den viktigaste åtgärden

Bilder är ofta den enskilt största orsaken till dålig prestanda. Det finns tre saker du alltid ska göra:

  1. Rätt format: Använd WebP eller AVIF istället för JPEG/PNG. Moderna browsers stöder dem och filstorleken är typiskt 30–50% lägre.
  2. Rätt storlek: Skicka inte en 3000px bred bild till en mobilskärm som är 390px bred. Generera flera storlekar och låt browsern välja.
  3. Lazy loading: Ladda bara bilder när de är på väg att bli synliga i viewport:en. Alla moderna browsers stöder loading="lazy"-attributet.

Astro hanterar bildoptimering med sin inbyggda Image-komponent som automatiskt konverterar format och genererar storlekar. Next.js har next/image som gör detsamma.

// Astro – automatisk bildoptimering
import { Image } from 'astro:assets';
import heroImage from '../assets/hero.jpg';<Image
src={heroImage}
alt="Beskrivning av bilden"
width={1200}
height={600}
format="webp"
/>

Metadata och Open Graph

SEO i moderna webbprojekt handlar mycket om att hantera metadata konsekvent. Varje sida behöver:

I Astro gör du det i din layout-komponent:

---
// layouts/Base.astro
const { title, description, ogImage } = Astro.props;
const canonicalURL = new URL(Astro.url.pathname, Astro.site);
---
<head>
<title>{title}</title>
<meta name="description" content={description} />
<link rel="canonical" href={canonicalURL} />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:image" content={ogImage} />
</head>

Strukturdata (Schema.org)

Strukturdata hjälper Google förstå vad en sida handlar om och kan ge "rich results" i sökresultaten – stjärnbetyg, FAQ-expanderingar, artikelinformation. Det implementeras som JSON-LD i <head>-sektionen:

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Titel på artikeln",
"datePublished": "2026-04-01",
"author": {
"@type": "Person",
"name": "Simon Nyström"
}
}
</script>

Sitemap och robots.txt

En XML-sitemap hjälper sökmotorer hitta och prioritera dina sidor. Astro har ett officiellt @astrojs/sitemap-paket som genererar den automatiskt vid build. Next.js har liknande lösningar via next-sitemap.

robots.txt talar om för crawler-robotar vad de får och inte får indexera. För de flesta sajter räcker:

User-agent: *
Allow: /
Sitemap: https://din-sajt.se/sitemap.xml

JavaScript-mängden spelar roll

En av de vanligaste prestanda-fallgroparna i moderna webbprojekt är att skicka för mycket JavaScript till browsern. JavaScript är det dyraste formatet per byte – det måste laddas, parsas och exekveras, inte bara laddas som bilder.

Astros "zero JS by default"-approach är ett direkt svar på detta. Next.js kräver mer medvetenhet – använd Server Components (App Router) för statisk rendering av komponenter som inte behöver klientside-interaktivitet.

Snabbtest: Kör din sajt genom PageSpeed Insights och Google Search Console. De ger konkreta åtgärdspunkter baserade på dina faktiska sidor. Testa på mobil, inte bara desktop – Google indexerar från mobil.

Nästa steg

Du har nu alla teoribitar på plats. Sista artikeln knyter ihop dem i ett konkret projekt: en sajt byggd med Astro, ett headless CMS och deploy till Vercel – från idé till live.

← FöregåendeGit och versionskontroll – grunden för modernt arbetsflödeNästa →Bygg ett modernt webbprojekt – från idé till deploy

Vill du jämföra verktyg?

Jämför de bästa vibe coding-plattformarna →