Flerspråkig webbplats-SEO och hreflang: bästa praxis

Hur du sätter upp flerspråkig SEO med hreflang, URL-struktur och lokaliseringsval som undviker duplicerat innehåll och slösat crawlbudget.

glob och språktaggar-metafor sketchnote, ingen text
På den här sidan

Att skeppa ett andra språk känns som en vinst tills Search Console fylls med “Incorrect return tags” och Google fortsätter servera engelska till shoppare i Tyskland. Flerspråkig SEO handlar mindre om att översätta strängar och mer om att ge varje marknad en stabil URL, en tydlig språk- eller locale-signal och content som matchar vad folk där faktiskt köper.

Den här guiden täcker URL-strukturval, hur hreflang fungerar (inklusive reciprocitet och x-default), språk kontra locale, översättning kontra lokalisering, vanliga felsätt, crawlbudget, CMS-fällor, ett genomarbetat scenario och en ship-checklista.

Välj URL-struktur innan du annoterar något

Hreflang pekar bara på URL:er. Om de URL:erna är röriga, parameterbaserade eller halv-migrerade kan annoteringar inte rädda projektet. Googles vägledning om att hantera multi-regionala och flerspråkiga sajter lägger ut de vanliga mönstren. Du väljer ett primärt mönster och håller dig till det.

Mönster Exempel Styrka Kostnad
ccTLD example.de, example.fr Stark landssignal, lokal trust Separata sajter, mer ops, länk-equity split
Subdomän de.example.com Tydlig separation, flexibel hosting Svagare landssignal än en ccTLD
Undermapp example.com/de/ En domän, delad auktoritet, enklare CMS Landssignal förlitar sig mer på content och hreflang

Undermappar vinner för de flesta produkt- och contentsajter som fortfarande bygger auktoritet på en branddomän. ccTLD:er är meningsfulla när juridiska entiteter, prissättning eller compliance verkligen skiljer sig per land och du kan bemanna varje sajt. Subdomäner sitter i mitten när du behöver separata stackar (till exempel en Kina-facing origin) utan att köpa varje TLD.

Undvik språk som query string (?lang=de). De URL:erna är lätta att duplicera, svåra att dela och jobbiga för analytics. Google kan fortfarande förstå dem när de annoteras korrekt, men operators som lever med parameter-locales ångrar det vanligtvis när filter och kampanjer krockar.

Dokumentera det valda mönstret på ett ställe som både ingenjörer och översättare läser. Att byta från /de/ till de.example.com senare betyder en full redirectkarta och hreflang-omskrivning. Den migrationsskatten är varför URL-beslutet hör hemma innan den första översatta sidan skeppas.

Tre URL-mönster för flerspråkiga sajter: ccTLD, subdomän och undermapp

Figur 1: Sida vid sida ccTLD-, subdomän- och undermappslayouter för samma brand.

Hur hreflang faktiskt fungerar

Hreflang talar om för Google vilken URL som är den avsedda versionen för en given språk- eller språk-region-kombination. Den skapar inte rankningar av sig själv. Den hjälper Google välja rätt alternate när flera nära-matchande sidor finns, så att tyska användare hellre ser den tyska URL:en när den URL:en är en giltig alternate till den engelska.

Du kan deklarera alternates på tre sätt Google dokumenterar:

  1. HTML <link rel="alternate" hreflang="..." href="..."> i sidans <head>
  2. HTTP-headers för icke-HTML-filer (PDF:er och liknande)
  3. XML-sitemap-annoteringar för stora kataloger

De flesta marketingsajter använder HTML-taggar eller sitemap-poster. Stora ecommerce-kataloger föredrar ofta sitemaps så att mallar stannar tunna. Välj en primär metod för en given URL-uppsättning och håll den konsekvent. Att blanda partiell HTML och partiella sitemap-annoteringar för samma siduppsättning är en vanlig källa till drift.

Koder följer BCP 47-stilvärden Google accepterar: en språkkod som en eller de, valfritt med en region som en-GB eller pt-BR. Använd ISO 639-1-språkkoder och, när du behöver en region, ISO 3166-1 Alpha 2-landskoder. Hitta inte på shorthand som uk för engelska i Storbritannien (en-GB är det vanliga valet). Använd inte region-only-koder.

Varje sida i en uppsättning ska lista varje alternate, inklusive en självrefererande post för sig själv. Om https://example.com/pricing/ är engelska och https://example.com/de/pricing/ är tyska behöver båda sidorna (eller deras sitemap-rader) en- och de-poster som pekar på de slutgiltiga, indexerbara URL:erna.

Ömsesidig bekräftelse mellan alternates

Googles dokumentation om lokaliserade versioner är explicit med att annoteringar måste bekräftas från andra sidan. Om sida A pekar på sida B som de måste sida B peka tillbaka på sida A som en (eller vad A:s språk är). Enkelriktade länkar ignoreras för den relationen.

Reciprocitet misslyckas tyst när ett CMS genererar taggar bara på den “primära” localen, när en översättare publicerar ett nytt språk utan att uppdatera de gamla sidorna, eller när ett CDN cachar en gammal head medan live-sidan flyttade. Search Consoles International Targeting / hreflang-rapporter (där de finns för din property) och en crawl som extraherar link[rel=alternate][hreflang] fångar båda det här snabbare än att ögna HTML.

Ömsesidiga hreflang-pilar mellan engelska och tyska sidor

Figur 2: Varje alternate måste peka tillbaka. En enkelriktad pil räknas inte som ett bekräftat par.

x-default och den omatchade besökaren

x-default markerar URL:en du vill ha när inget av de andra hreflang-värdena matchar användarens språk- eller regionsinställningar. Google beskriver den i samma dokumentation om lokaliserade versioner som fallback för omatchade språk.

Typiska användningar:

  • En språkväxlare eller global gateway-sida
  • Din primära engelska (eller annan hubb) URL när du inte kör en separat växlare
  • En noggrant vald “rest of world”-storefront

x-default är inte “sidan för folk som talar engelska.” Engelska behöver fortfarande sin egen hreflang="en" (eller en-US, en-GB, och så vidare). x-default kan peka på samma URL som en när det är ärligt. Den kan också peka på en växlare som är indexerbar och användbar. Vad den inte ska göra är att peka på en soft 404, en geo-IP-redirect-interstitial som aldrig landar, eller ett slumpmässigt blogginlägg.

Om du auto-redirectar efter IP innan användaren (eller Googlebot) kan se en stabil URL slåss du mot både användbarhet och crawling. Googles multi-regionala vägledning varnar för att förlita sig på IP ensam för att visa content. Föredra en stabil URL per locale plus en synlig språkväxlare, och låt hreflang göra matchningsarbetet.

x-default som fallback när språket inte matchar en, de eller fr

Figur 3: x-default fångar besökare vars språk ligger utanför den annoterade uppsättningen.

Språkkoder kontra locale-koder

de betyder tyska, oavsett land. de-DE betyder tyska som används i Tyskland. de-AT betyder tyska som används i Österrike. Det är olika avsikter när valuta, frakt, juridisk copy eller stavning divergerar.

Använd språk-only-koder när en URL ärligt betjänar alla talare av det språket. Använd språk-region-koder när sidorna skiljer sig per marknad även om språksträngen ser likadan ut. En enda engelska sida för globala läsare är ofta en plus x-default. Separata UK- och US-storefronts med olika priser och stavning är vanligtvis en-GB och en-US, var och en med egen URL.

Skapa inte en-US- och en-GB-dubbletter som bara skiljer sig genom en flaggikon och en CDN-edge. Hreflang kan inte hitta på en meningsfull skillnad. Om sidorna är nästan identiska, konsolidera eller lokalisera ordentligt.

Skript och regional kinesiska behöver omsorg. Förenklad kinesiska för fastlands-audiences och traditionell kinesiska för Taiwan eller Hongkong är olika läsupplevelser. Föredra distinkta URL:er och precisa koder (zh-Hans, zh-Hant, eller regionsformer din stack stödjer konsekvent) snarare än en zh-sida som blandar skript. Vad du än väljer, håll samma kodfamilj över HTML, sitemaps och språkväxlaren.

Språk-only-taggar kontra språk-region-locale-taggar

Figur 4: Språkkoder täcker talare brett. Locale-koder fäster en marknad när content faktiskt skiljer sig.

Där översättning slutar och lokalisering börjar

Maskin- eller människoöversättning som byter ord medan USD, US-fraktmatriser, US-case studies och US-juridiska footers lämnas kvar underpresterar även om hreflang är perfekt. Lokalisering ändrar den kommersiella ytan. Valuta, skattevisning, betalningsmetoder, supporttimmar, trust-signaler, exempel och regulatorisk text behöver alla en marknadsrunda.

För SEO specifikt inkluderar lokalisering också:

  • Titles och meta descriptions skrivna för hur folk söker på det språket, snarare än en kalk av det engelska sökordet
  • Interna länkar som stannar inuti samma-språk-hubben när en ekvivalent finns
  • Bilder och skärmdumpar med lokal UI eller captions där det spelar roll
  • Att hoppa över tunna “coming soon”-locale-skal som ändå annoteras som fulla alternates

Om en marknad inte är redo, lämna den utanför hreflang tills sidan är genuint ekvivalent. Att annotera en platshållare som fr lär Google att den franska alternaten är svag.

Bästa praxis: Skeppa färre locales som är kommersiellt kompletta innan du sprayar tio halvöversatta mappar över sitemapen.

Lokaliseringslager bortom ren översättning: valuta, juridik, exempel, sökfraser

Figur 5: Bortom ordbyte. Valuta, bevispunkter och juridiska ytor får också en marknadsrunda.

Vanliga hreflang- och internationella SEO-fel

De här dyker upp i nästan varje flerspråkig crawlgranskning.

Trasig reciprocitet. Nya locales lanseras med taggar som listar de gamla språken, men de gamla språken uppdateras aldrig. Fixa med en enda sanningsskälla (build-steg eller CMS-fält) som regenererar hela alternate-uppsättningen på varje locale.

Fel koder. eng, uk, zh-CN blandat med zh-Hans inkonsekvent, eller regionskoder där språk var avsett. Validera mot kodlistan du standardiserade i URL-docen.

Annotering av icke-kanoniska eller icke-indexerbara URL:er. Hreflang måste peka på den slutgiltiga föredragna URL:en. Om den tyska sidan kanonikaliserar till engelska, eller returnerar noindex, ljuger alternate-uppsättningen. Fixa canonical och indexering först.

HTTP- och HTTPS-mixar, eller www- och non-www-mixar. Varje href i alternate-uppsättningen ska använda samma host och protokoll du valde som kanonisk.

Partiell täckning. Bara startsidan har hreflang medan produktmallar saknar det. Eller bara sitemapen har poster medan HTML motsäger dem. Täck mallarna som tjänar trafik, end to end.

Språkväxlare som skapar parameterdubbletter. En växlare som lägger till ?currency=EUR ovanpå /de/ utan canonical-disciplin multiplicerar nära-dubbletter och slösar crawl.

Auto-redirect-loopar. Detektera språk, 302 till en annan mapp, sedan skickar en annan regel boten någon annanstans. Ge Googlebot en 200 på en stabil locale-URL.

Varning: Hreflang-fel kastar sällan en synlig on-page-bugg. Användare kan fortfarande surfa medan Google ignorerar alternate-kartan. Behandla Search Console och crawl-diffs som övervakningsytan.

Vanliga felfigurer: enkelriktade taggar, dåliga koder, noindex-mål, mixade hosts

Figur 6: De vanliga brotten är reciprocitet, koder, indexerbarhet och host-inkonsistens.

Crawlbudget på flerspråkiga sajter

Varje ny locale multiplicerar URL-antalet. Det kan vara okej när sidor är unika och länkade. Det skadar när du klonar tunna mallar, facetterade filter på varje språk och taggarkiv ingen ville översätta.

Crawlbudget är inte en mystisk score. I praktiken bryr du dig om Googlebot lägger tid på intäkts-URL:er eller på skräp. Flerspråkigt skräp ser ut som:

  • Översatta filterkombinationer som skapar tusentals nästan tomma listningar
  • Pagineringade arkiv av tunna inlägg på varje språk
  • Staging- eller preview-locales kvar länkade från footern
  • Alternates som 404:ar eller soft-404:ar efter ett CMS-publiceringsfel

Konsolidera eller noindexa lågvärdesytorna i varje locale på samma sätt som i en monolingual audit. Håll sitemaps begränsade till kanoniska, 200, indexerbara URL:er som hör hemma i alternate-kartan. När du lägger till ett språk, lägg bara till mallarna du kan underhålla.

Interna länkar bör föredra samma-locale-sökvägar. En tysk artikel som bara länkar till engelska kategorihubbar tvingar extra hopp och spädar språkklustret.

Crawlvägar som föredrar intäkts-locale-URL:er framför tunna översatta filter

Figur 7: Fler språk betyder fler URL:er. Föredra crawl på kommersiella mallar framför översatt filternoise.

CMS- och plugin-fällor

WordPress, Shopify, Webflow, custom Next.js-appar och enterprise-CMS:er växer alla hreflang-buggar olika. Mönstret under är detsamma: systemet som renderar sidan är inte det enda systemet som tror att det äger alternates.

Titta efter:

  • Två plugins som båda skriver ut link rel="alternate" och är oense
  • Ett headless CMS som lagrar locale-slugs medan frontenden skriver om sökvägar annorlunda i produktion
  • Sitemap-plugins som listar varje locale medan HTML-taggar listar en subset
  • “Hreflang”-moduler som utelämnar självreferenser
  • Copy-to-new-locale-workflows som klonar noindex eller staging-kanonikaler
  • CDN- eller reverse-proxy-lager som serverar annan HTML till bots än till användare (sällsynt när avsiktligt, rörigt när oavsiktligt)

För webbplatsinternationalisering-arbete, behandla hreflang som en release-checklistpunkt du omvaliderar vid varje större förändring. Särskilt på WordPress flerspråkiga stackar, verifiera live HTML för en intäktssida i varje locale efter varje större plugin- eller temauppdatering.

Om du genererar taggar i appen, lägg till en CI-check eller crawl-assert som räknar förväntade alternates per mall. Manuella stickprov missar det tionde språket.

CMS-lager i konflikt om hreflang-output: tema, plugin, sitemap, CDN

Figur 8: Teman, plugins, sitemaps och CDN-HTML kan var och en emittera en annan alternate-story.

Implementationsväg som överlever releasedagen

En hållbar utrullning ser ut så här.

  1. Frys URL-mönstret och listan över locales som är kommersiellt redo.
  2. Mappa ekvivalenter i ett kalkylblad eller databas. Varje rad är en contentenhet. Kolumner är locale-URL:er. Tomma celler betyder “ingen alternate ännu” (utelämna från hreflang tills ifyllda).
  3. Välj HTML, HTTP eller sitemap som sanningsskälla för den mallklassen.
  4. Generera självrefererande, ömsesidiga taggar inklusive x-default där du har en medveten fallback.
  5. Aligna kanonikaler så att varje locale-URL kanonikaliserar till sig själv när den ska indexeras.
  6. Uppdatera språkväxlare så att varje locale länkar till sin mappade ekvivalent i stället för att gissa startsidan.
  7. Skicka in eller uppdatera sitemaps i Search Console för varje property du hanterar.
  8. Crawla och diffa efter deploy. Fäll releasen om reciprocitet eller kodvalidering misslyckas på intäktsmallar.
  9. Övervaka Search Console efter hreflang-problem och efter oväntade landningsmönster för land eller språk i performance-rapporter.

Googles dokumentation för lokaliserade sidversioner är den normativa referensen för tagsyntax och reciprocitet. Tredjepartsvalidatorer hjälper, och de officiella reglerna avgör fortfarande vad Google accepterar.

Implementationssteg från URL-freeze genom crawlvalidering

Figur 9: Mappa ekvivalenter först, generera ömsesidiga taggar, validera sedan med en crawl efter deploy.

Genomarbetat scenario för en SaaS-sajt som lägger till tyska och franska

Acme skeppar en B2B-analyticsprodukt på https://www.acme.example/ med blogg och pricing på engelska. Marketing vill ha tyska och franska för EU-expansion. Engineering föredrar en domän. De väljer undermappar: /de/ och /fr/.

De översätter inte varje gammalt bloggtaggarkiv. De lokaliserar startsida, pricing, produktöversikt, docs-entrypoints och de tjugo inlägg som fortfarande tjänar pipeline. Juridik skriver ett EU-redo privacy-addendum. Pricing visar EUR med momsanteckningar där det krävs. Case studies byter in EU-loggor de faktiskt har tillstånd att använda.

Ekvivalentkarta (förenklad):

Enhet en de fr
Hem / /de/ /fr/
Pricing /pricing/ /de/pricing/ /fr/pricing/
Produkt /product/ /de/product/ /fr/product/

Var och en av de sex URL:erna (plus själv) emitterar en, de, fr och x-default pekande på den engelska starten eller en liten regionsväxlare de bestämmer sig för att behålla indexerbar. Blogginlägg som bara finns på engelska utelämnar de/fr tills översatta. De pekar aldrig tysk hem på en fransk pricing-URL.

Vecka ett efter lansering hittar en crawl att engelsk pricing fortfarande saknar de nya alternates eftersom cachinglagret serverade en gammal head. De purgar, omcrawlar och bekräftar reciprocitet. Search Console slutar rapportera return-tag-fel på de URL:erna efter bearbetning.

De mäter framgång som tyska och franska queries som landar på /de/- och /fr/-intäktssidor. Indexerat URL-antal ensamt är en svag successmetrik här.

SaaS-sajt som lägger till /de/ och /fr/ med mappade hem-, pricing- och produkt-URL:er

Figur 10: Acme mappar några kompletta ekvivalenter, skeppar ömsesidiga taggar och hoppar över tunn arkivöversättning.

Checklista för flerspråkig SEO

Använd det här innan du kallar projektet klart.

  • Ett dokumenterat URL-mönster (ccTLD, subdomän eller undermapp) använt konsekvent
  • Bara kommersiellt redo locales är live och annoterade
  • Varje annoterad URL returnerar 200, är indexerbar och själv-kanonikaliserar när den ska ranka
  • Hreflang-koder matchar din språk- vs locale-policy (de vs de-DE, och så vidare)
  • Full alternate-uppsättning på varje medlemsida eller sitemap-rad, inklusive självreferenser
  • Ömsesidig bekräftelse över uppsättningen
  • x-default pekar på en avsiktlig fallback
  • Språkväxlare länkar till riktiga ekvivalenter utan att skapa parameterdubbletter
  • Sitemaps listar bara kanoniska locale-URL:er du vill ha crawlad
  • Tunna översatta filter, taggar och staging-locales är utanför alternate-kartan
  • Post-deploy-crawl validerar taggar på intäktsmallar
  • Search Console-properties och sitemaps uppdaterade för hostarna du hanterar

Checklista-klippbräde för flerspråkig SEO och hreflang-lanseringsberedskap

Figur 11: Lanseringsberedskap täcker URL:er, koder, reciprocitet, indexerbarhet och post-deploy-validering.

Vanliga frågor

Behöver jag hreflang om jag bara har ett språk?

Nej. Hreflang är för alternativa språk- eller locale-versioner av samma content. En enspråkig sajt ska fokusera på rena kanonikaler och crawlåtkomst. Att lägga till dekorativ hreflang som inte pekar någonstans användbart skapar bara övervakningsbrus.

Kan hreflang fixa duplicerat innehåll av sig själv?

Den hjälper Google välja rätt alternate bland giltiga versioner. Den ersätter inte canonical-disciplin, och den rehabiliterar inte tunna kopierade sidor. Fixa dubbletter och kvalitet först, annotera sedan de riktiga ekvivalenterna.

Ska varje blogginlägg finnas på varje språk?

Bara om du kommer underhålla dem. Partiell täckning är okej. Annotera språken som finns för den enheten och lämna resten utanför alternate-listan tills de skeppas.

Är en ccTLD alltid bättre för internationell SEO?

Nej. En ccTLD är en stark landssignal och ofta en trust-signal för lokala användare, men den kostar mer att driva och splittrar auktoritet om du inte investerar i varje property. Många globala varumärken klarar sig bra med undermappar plus korrekt hreflang. Välj utifrån juridik, hosting och resursconstraints snarare än en tumregel från en forumtråd.

Var ska jag lägga hreflang för en stor katalog?

XML-sitemaps skalar bättre när du har tiotusentals SKU:er. Håll sitemap-posterna synkroniserade med kanoniska produkt-URL:er. Stickprovkontrollera HTML om din stack också skriver ut head-taggar, och ta bort konflikter.

Vad är skillnaden mellan hreflang och en content-language meta-tagg?

Hreflang mappar alternativa URL:er för språk och regioner för Google Search. En content-language meta-tagg är inte ett substitut för den kartan. Följ Googles mekanism för lokaliserade versioner för alternates.

Avslutning

Flerspråkig SEO håller ihop när URL:er är stabila, locales är riktiga produkter och hreflang är en ömsesidig karta över de URL:erna. Teamen som kämpar annoterade vanligtvis först och lokaliserade senare, eller lät ett plugin emittera taggar ingen omvaliderade efter att det tredje språket lanserat.

Om du planerar en locale-utrullning eller städar en befintlig alternate-karta kan du nå mig via kontaktformuläret.