Du har byggt en svensk version av din sajt. Sen en norsk. Sen en dansk. Allt såg bra ut tills du upptäckte att svenska kunder landar på den norska sidan, prisen visas i NOK, och köpkonverteringen kollapsar.
Det är hreflang-problemet. Och 80% av svenska sajter som expanderar internationellt gör det fel.
Den här guiden går igenom vad hreflang är, hur du implementerar det rätt för svensk + nordisk marknad, och de vanligaste felen som sänker konvertering.
Vad hreflang faktiskt gör
Hreflang är ett HTML-attribut som talar om för Google: "Den här sidan finns även i versionerna X, Y och Z. Visa rätt version för rätt språk/land."
Det ser ut så här:
<link rel="alternate" hreflang="sv-SE" href="https://exempel.se/" />
<link rel="alternate" hreflang="no-NO" href="https://exempel.se/no/" />
<link rel="alternate" hreflang="da-DK" href="https://exempel.se/dk/" />
<link rel="alternate" hreflang="x-default" href="https://exempel.se/" />
När en norsk användare söker på Google plockar Google ut den norska versionen istället för den svenska. Utan hreflang gissar Google — och gissar ofta fel.
När du behöver hreflang
✅ Du behöver hreflang om:
- Du har samma innehåll på flera språk (svenska + norska + danska)
- Du har samma språk men anpassat för olika länder (svenska för SE vs svenska för FI)
- Du har olika priser/valutor per land
- Du har juridiska skillnader (returrätt, GDPR-formuleringar)
❌ Du behöver INTE hreflang om:
- Du har en sajt på ett språk för ett land
- Du har olika språk på helt olika domäner som inte är översättningar
- Du har bara delvis översatta sektioner (då är det andra problem)
Format: språk + land-kodning
Hreflang använder standarder från ISO:
Språk (ISO 639-1): sv, no, da, fi, en, de
Land (ISO 3166-1 alpha-2): SE, NO, DK, FI, US, DE
Kombineras med bindestreck:
| Värde | Betyder |
|---|---|
sv | Svenska, oavsett land |
sv-SE | Svenska för Sverige |
sv-FI | Svenska för Finland (svenskpratande finländare) |
no | Norska, oavsett land |
no-NO | Norska för Norge |
en-US | Engelska för USA |
en-GB | Engelska för Storbritannien |
x-default | Fallback för okända kombinationer |
Tumregel för Sverige + Norden: ange både språk OCH land. sv-SE är säkrare än bara sv.
Tre sätt att implementera hreflang
1. HTML head (vanligast)
I varje sidas <head>:
<head>
<link rel="alternate" hreflang="sv-SE" href="https://exempel.se/sida/" />
<link rel="alternate" hreflang="no-NO" href="https://exempel.no/side/" />
<link rel="alternate" hreflang="da-DK" href="https://exempel.dk/side/" />
<link rel="alternate" hreflang="x-default" href="https://exempel.se/sida/" />
</head>
Fördelar: lätt att implementera, standard. Nackdelar: kräver att varje sida har alla varianter listade.
2. HTTP-headers (för icke-HTML)
För PDF:er och andra icke-HTML-resurser. Sällan relevant för svensk sajt.
3. XML sitemap
För stora sajter med tusentals sidor.
<url>
<loc>https://exempel.se/sida/</loc>
<xhtml:link rel="alternate" hreflang="sv-SE" href="https://exempel.se/sida/" />
<xhtml:link rel="alternate" hreflang="no-NO" href="https://exempel.no/side/" />
<xhtml:link rel="alternate" hreflang="da-DK" href="https://exempel.dk/side/" />
</url>
Fördelar: centraliserad hantering, lättare att underhålla på stor skala. Nackdelar: kräver fungerande sitemap-process.
För 90% av svenska sajter: HTML head är rätt val.
Reciprocitet: den viktigaste regeln
Om sida A pekar på sida B med hreflang — måste sida B peka tillbaka på sida A. Annars ignorerar Google båda taggarna.
Fel:
<!-- På svenska sidan: -->
<link rel="alternate" hreflang="no-NO" href="https://exempel.no/side/" />
<!-- På norska sidan: -->
<!-- INGEN hreflang till svenska -->
Rätt:
<!-- På svenska sidan: -->
<link rel="alternate" hreflang="sv-SE" href="https://exempel.se/sida/" />
<link rel="alternate" hreflang="no-NO" href="https://exempel.no/side/" />
<!-- På norska sidan: -->
<link rel="alternate" hreflang="sv-SE" href="https://exempel.se/sida/" />
<link rel="alternate" hreflang="no-NO" href="https://exempel.no/side/" />
Båda sidorna ska peka på alla varianter — inklusive sig själv.
Domänstrategier: ccTLD, subdomain eller subdirectory
Innan du implementerar hreflang måste du välja URL-struktur:
| Struktur | Exempel | För | Mot |
|---|---|---|---|
| ccTLD | exempel.se, exempel.no | Tydligast geo-signal, lokala brand | Splitt SEO-kraft, dyrare att underhålla |
| Subdomain | se.exempel.com, no.exempel.com | Kan separera tekniskt | Splitt SEO-kraft, mindre tydlig geo-signal |
| Subdirectory | exempel.com/se/, exempel.com/no/ | Behåller samlad SEO-kraft | Mindre stark geo-signal |
För svenska företag som expanderar nordiskt: subdirectory är oftast bäst. Du behåller länkkraften samlad på en domän, och hreflang sköter geo-signaleringen.
Vanliga fel som sänker hreflang
Fel 1: Felaktig språkkod
Vanligaste misstaget. sv-SV finns inte (SV = Salvador). Det är sv-SE (SE = Sverige).
Snabbreferens för Norden:
- Svenska:
sv-SE - Norska:
no-NOellernb-NO(bokmål) - Danska:
da-DK - Finska:
fi-FI - Svenska i Finland:
sv-FI - Isländska:
is-IS
Fel 2: Saknar x-default
x-default är fallback för språk/länder du inte har specificerat. Lämna inte den ute:
<link rel="alternate" hreflang="x-default" href="https://exempel.se/" />
Pekar oftast på din huvudversion (svenska, eller engelska om internationell).
Fel 3: Pekar på 301-redirects
Om hreflang pekar på en URL som 301:ar någon annanstans — taggen ignoreras.
Felaktigt:
<link rel="alternate" hreflang="no-NO" href="https://exempel.no/gamla-url/" />
<!-- /gamla-url/ → 301 → /ny-url/ -->
Korrekt: peka direkt på final-URL.
Fel 4: Pekar på noindex-sidor
En sida med <meta name="robots" content="noindex"> ska inte vara i hreflang. Google indexerar den inte, så det är meningslöst — och kan skada hela hreflang-klustrets trovärdighet.
Fel 5: Översätter inte alla sidor
Om du har 500 svenska sidor men bara 50 norska — sätt hreflang på de 50 som faktiskt har norska översättningar. Inte på de 450 som bara finns på svenska.
Fel 6: Glömmer self-reference
Den svenska sidan måste lista sig själv:
<!-- På den svenska sidan: -->
<link rel="alternate" hreflang="sv-SE" href="https://exempel.se/sida/" />
Saknas self-reference = brutet hreflang-kluster.
Fel 7: Mixar absolute och relative URLs
Använd alltid absoluta URL:er (https://...) i hreflang. Relativa URL:er fungerar inte tillförlitligt.
Hreflang vs canonical: skilj dem åt
Canonical: "Den här sidan är dubblett av X — indexera X istället." Hreflang: "Den här sidan finns i flera versioner — visa rätt version per språk/land."
De kombineras ibland. På varje språkversion:
<!-- Self-reference canonical -->
<link rel="canonical" href="https://exempel.se/sida/" />
<!-- Hreflang för alla varianter -->
<link rel="alternate" hreflang="sv-SE" href="https://exempel.se/sida/" />
<link rel="alternate" hreflang="no-NO" href="https://exempel.no/side/" />
Fel: sätta canonical till den svenska versionen på den norska sidan. Då tar Google bort den norska från index — du har sabbat din egen översättning.
Verktyg för validering
| Verktyg | Funktion |
|---|---|
| Google Search Console | "International Targeting"-rapport (även om delvis utfasad) |
| Ahrefs Site Audit | Flaggar saknade reciprocity, felaktiga koder |
| Screaming Frog | Crawla sajten, exportera hreflang-tabell |
| hreflang.org | Gratis online-validerare |
| Sistrix Hreflang Validator | Validerar reciprocity automatiskt |
För svensk sajt: börja med Search Console + Screaming Frog. Snäll setup räcker långt.
Implementeringscheck för nordisk sajt
Vanligaste setupen för svenskt företag som även säljer till Norge och Danmark:
<!-- På sv.exempel.com/sida/ -->
<link rel="canonical" href="https://exempel.com/sv/sida/" />
<link rel="alternate" hreflang="sv-SE" href="https://exempel.com/sv/sida/" />
<link rel="alternate" hreflang="no-NO" href="https://exempel.com/no/side/" />
<link rel="alternate" hreflang="da-DK" href="https://exempel.com/da/side/" />
<link rel="alternate" hreflang="x-default" href="https://exempel.com/sv/sida/" />
Samma tags på /no/side/ och /da/side/ med self-canonical justerat.
Vad hreflang INTE löser
Hreflang löser vilken språkversion som visas. Det löser inte:
- ❌ Vilken sida som visas (det är vanlig SEO)
- ❌ Lokal ranking-styrka (varje version behöver egna backlinks)
- ❌ Innehållskvaliteten (dålig översättning rankar fortfarande dåligt)
- ❌ Geo-targeting (det görs i Search Console separat)
För specifik geo-targeting: använd ccTLD eller justera "International Targeting" i Search Console för subdomains/subdirectories.
Snabb checklista
- Alla språkversioner identifierade (sv-SE, no-NO, da-DK, etc.)
- URL-struktur vald (ccTLD/subdomain/subdirectory)
- hreflang implementerat på alla översatta sidor
- Self-reference på varje sida (sidan listar sig själv)
- Reciprocity — varje sida listar alla varianter
-
x-defaultsatt till huvudversion - Absoluta URL:er används (inte relativa)
- Pekar inte på 301:s eller noindex-sidor
- Canonical konfigurerad korrekt per språk
- Validerat med Screaming Frog eller Sistrix
Det här på 30 sekunder
Hreflang talar om för Google vilken språkversion av en sida som ska visas i vilket land. Reciprocity (alla varianter listar varandra) och korrekt språk-land-kod är de två viktigaste sakerna. Self-reference, x-default och absoluta URL:er är resten. Implementera. Validera. Övervaka.
Ranqo genererar innehåll på svenska — om du expanderar nordiskt, översätt artiklarna och implementera hreflang innan du publicerar. Logga in på Ranqo.