Hreflang: teljes útmutató
A hreflang egy jelzés, amellyel megmondod a keresőknek, hogy egy oldalnak milyen nyelvi vagy regionális változatai vannak, és melyiket kinek mutassák. Három módon adhatod meg: HTML link elemmel, HTTP-fejlécben vagy XML sitemapben. Működéséhez kölcsönös hivatkozás, önhivatkozás, helyes ISO-kódok és indexelhető, kanonikus URL-ek kellenek.
Alapfogalmak
A hreflang attribútum azt írja le, hogy ugyanannak a tartalomnak létezik más nyelvű vagy más országnak szánt megfelelője. Nem rangsorolási tényező abban az értelemben, hogy jobb helyezést hozna. A szerepe az, hogy a már rangsoroló oldalak közül a felhasználó nyelvének és helyének megfelelő URL jelenjen meg a találati listában. Ha egy osztrák felhasználó a német nyelvű termékoldaladra keres, a hreflang segít, hogy a /de-at/ változatot lássa a /de-de/ helyett.
Fontos különbséget tenni nyelv és régió között. A nyelv kötelező eleme a kódnak, a régió opcionális. Egy hu kód minden magyarul beszélő felhasználónak szól, országtól függetlenül. A hu-HU már konkrétan a Magyarországon tartózkodó, magyar nyelvű közönséget célozza. Régiót önmagában nem adhatsz meg, a HU önállóan érvénytelen.
A kódok felépítése
A nyelvkód az ISO 639-1 szabvány kétbetűs kódja (hu, de, en, sk), a régiókód az ISO 3166-1 alpha-2 szabvány szerinti országkód (HU, AT, GB, RO). A kettőt kötőjel választja el. A kis- és nagybetű a feldolgozásnál nem számít, de a konvenció a kisbetűs nyelv és nagybetűs ország.
| Kód | Jelentés | Érvényes? |
|---|---|---|
| hu | Magyar nyelv, bármely ország | Igen |
| hu-RO | Magyar nyelv, Romániában | Igen |
| en-GB | Angol nyelv, Egyesült Királyságban | Igen |
| en-UK | Az UK nem ISO országkód | Nem |
| HU | Csak országkód | Nem |
| x-default | Alapértelmezett, egyik változat sem illik | Igen |
Önhivatkozás és kölcsönösség
Minden változatnak fel kell sorolnia önmagát és az összes többi változatot. Ha az A oldal B-re mutat, B-nek vissza kell mutatnia A-ra. Ezt nevezzük visszahivatkozásnak (return link). Ha a visszahivatkozás hiányzik, a kereső figyelmen kívül hagyhatja a párost, mert nem tudja eldönteni, hogy a két oldal tulajdonosa valóban összetartozónak szánja-e őket.
Az x-default szerepe
Az x-default azt az URL-t jelöli, amelyet akkor kell mutatni, ha a felhasználó nyelve vagy helye egyik megadott változathoz sem illik. Tipikusan egy nyelvválasztó oldal vagy a nemzetközi angol változat. Nem kötelező, de nagyon ajánlott, ha nem fedsz le minden piacot. A tágabb stratégiai keretet a Nemzetközi SEO: teljes útmutató foglalja össze.
Hreflang és canonical viszonya
A canonical azt mondja meg, melyik URL az elsődleges egy duplikált csoporton belül. A hreflang azt, hogy a különböző nyelvű csoportok hogyan kapcsolódnak. A két jelzésnek összhangban kell lennie: minden változat önmagára kanonizáljon, és a hreflang mindig kanonikus URL-re mutasson. Ha a német oldal a canonicalban az angolra mutat, azzal azt üzened, hogy a német oldal nem önálló, így a hreflang-jelzés ellentmondásba kerül.
Hogyan működik?
A keresőmotor feltérképezéskor összegyűjti a hreflang-jelzéseket, és ezekből úgynevezett klasztert épít: egy olyan URL-csoportot, amelynek tagjai ugyanannak a tartalomnak a nyelvi változatai. Amikor a klaszter bármely tagja rangsorol egy lekérdezésre, a kereső megnézi a felhasználó nyelvi beállítását és helyét, majd a klaszterből a legjobban illő URL-t teszi a helyére.
Ebből következik egy gyakran félreértett pont: a hreflang nem hozza be az oldalt az indexbe, és nem ad neki rangsorolási erőt. Ha a szlovák oldalad nincs indexelve, mert gyenge vagy noindex van rajta, a hreflang nem segít. Csak a meglévő, indexelt változatok közötti cserét irányítja.
A feldolgozás lépései
- A robot letölti az oldalt, és kiolvassa a hreflang-jelzéseket (HTML-ből, fejlécből vagy sitemapből).
- Ellenőrzi, hogy a hivatkozott URL-ek elérhetők, indexelhetők és kanonikusak-e.
- Megnézi, hogy a hivatkozott oldalak visszamutatnak-e.
- Az érvényes, kölcsönös párokból klasztert épít.
- Kereséskor a felhasználó nyelve és helye alapján kiválasztja a klaszter megfelelő tagját.
Jelzés, nem utasítás
A Google a hreflangot jelzésként kezeli. Ha más jelek erősebben mást mutatnak (például a tartalom valójában nem az adott nyelven íródott, vagy a canonical ellentmond), előfordulhat, hogy figyelmen kívül hagyja. Ezért a hreflang mellett a tartalom nyelvének, a pénznemnek, a szállítási információknak és a belső linkelésnek is egy irányba kell mutatnia.
Kidolgozott példa: négy piac
Vegyünk egy szemléltető webáruházat, amely Magyarországon, Romániában (magyar és román nyelven) és Ausztriában árul. A termékoldal változatai:
- https://pelda.hu/termek/ (hu-HU)
- https://pelda.hu/ro-hu/termek/ (hu-RO, magyarul, lejben)
- https://pelda.hu/ro/produs/ (ro-RO)
- https://pelda.hu/at/produkt/ (de-AT)
- https://pelda.hu/en/product/ (x-default)
Mind az öt oldal fejlécében ugyanaz az öt sor szerepel, köztük az önhivatkozás is. Egy kolozsvári felhasználó, akinek a böngészője magyarra van állítva, a hu-RO változatot kapja, lejes árakkal. Egy svájci német felhasználó nem illik egyik kódra sem pontosan; a Google ilyenkor a nyelvi egyezést részesítheti előnyben, így jó eséllyel a de-AT változatot látja. Egy brazil felhasználó az x-default angol oldalra kerül.
Nyelvi tartalék logika
Ha csak országos kódokat adsz meg (de-AT, de-DE), egy svájci felhasználónál nincs pontos egyezés. Érdemes ezért egy nyelvi szintű, általános kódot is megadni (de), amely valamelyik német változatra mutat. Így a nem lefedett német nyelvű országok is kiszámítható oldalt kapnak, nem a kereső találgatására vagy az x-defaultra bízod őket.
Fő módszerek
Háromféleképpen adhatod meg a hreflangot. Hatásukat tekintve egyenértékűek, a választás a technikai környezeteden és az oldalak számán múlik. Egy dolgot kerülj: ugyanazt a klasztert ne add meg párhuzamosan több módszerrel, mert ha eltérnek egymástól, nehezen debugolható ellentmondás keletkezik.
HTML link elem a head részben
A legelterjedtebb megoldás. Minden oldal head szekciójába bekerül egy-egy link elem rel="alternate" és hreflang attribútummal, abszolút URL-lel. A mi példánkban ez öt sort jelent oldalanként. Előnye, hogy átlátható, a forráskódban azonnal ellenőrizhető. Hátránya, hogy sok nyelvnél (például 30 piac) minden oldal head része jelentősen megnő, és a sablonhibák minden oldalon egyszerre jelentkeznek.
HTTP-fejléc
Nem HTML fájloknál, például PDF-eknél ez az egyetlen járható út. A szerver a válasz Link fejlécében küldi a változatokat, vesszővel elválasztva. Előnye, hogy nem igényli a HTML módosítását. Hátránya, hogy böngészőből nehezebb ellenőrizni, fejlécvizsgáló eszköz vagy parancssor kell hozzá, és a CDN vagy cache réteg könnyen elnyelheti a fejlécet.
XML sitemap
Az oldaltérképben minden url elemen belül xhtml:link elemekkel sorolod fel a változatokat. Ehhez a sitemap gyökérelemében deklarálni kell az xhtml névteret. Nagy, sok nyelvű oldalaknál ez a legjobban skálázható: a hreflang egy helyen, generált fájlban él, nem terheli az oldalakat. Hátránya, hogy a robot csak a sitemap feldolgozásakor látja, és a hibák rejtve maradnak, ha senki nem validálja a fájlt.
Összehasonlítás
| Szempont | HTML | HTTP-fejléc | XML sitemap |
|---|---|---|---|
| Nem HTML fájlok | Nem | Igen | Igen |
| Ellenőrizhetőség | Könnyű | Közepes | Közepes |
| Skálázás sok nyelvre | Gyenge | Gyenge | Jó |
| Fejlesztői igény | Sablonszint | Szerverszint | Generálás |
| Oldalsúly | Nő | Nem változik | Nem változik |
Döntési szabály
- Ha 5 vagy kevesebb nyelvi változatod van, és a CMS sablonja kezelhető: HTML.
- Ha PDF-et vagy más nem HTML erőforrást is párosítanál: HTTP-fejléc ezekre.
- Ha sok piacod és nagy oldalszámod van, vagy a sablonhoz nehéz hozzányúlni: XML sitemap.
- Ha vegyes a helyzet, módszert URL-típusonként válassz, de egy klaszteren belül egyet használj.
A határeset a részleges fordítás: ha a blogod csak magyarul létezik, de a termékoldalaid öt nyelven, a blogcikkekre ne tegyél hreflangot, vagy csak önhivatkozást. Nem létező megfelelőt soha ne jelölj meg, és ne mutass a másik nyelv főoldalára helyettesítésként. A nyelvi verziók tartalmi és szerkezeti tervezéséről a Többnyelvű SEO: teljes útmutató ír részletesebben.
Gyakori hibák
A hreflang-implementációk jelentős része hibás valamilyen ponton, főleg nagyobb oldalaknál, ahol sablonok és fordítási folyamatok generálják a jelzéseket. A legtöbb hiba nem szintaktikai, hanem logikai: a kód formailag rendben van, csak rossz URL-re mutat vagy nincs párja.
Hiányzó visszahivatkozás
A leggyakoribb probléma. Tipikusan akkor fordul elő, ha egy új nyelvet kiadsz, és csak az új oldalakra kerül fel a hreflang, a régiekre nem. Ilyenkor a régi változatok nem ismerik el az újat, és a párok érvénytelenek lehetnek. A javítás: a hreflang-listát egy központi adatforrásból (fordítási táblából) generáld, ne oldalanként kézzel.
Hibás kódok
Az en-UK, a jp a ja helyett, vagy a nyelv és ország felcserélése (HU-hu helyett például us-en) mind érvénytelen. Gyakori a cz a cs helyett a cseh nyelvnél, mert a cz az országkód. Hasonlóan a görögnél el a helyes nyelvkód, nem gr. Ezek csendben hibáznak, a kereső egyszerűen eldobja az adott sort.
Nem kanonikus vagy nem elérhető cél
A hreflang átirányított URL-re (301), 404-es oldalra, noindexelt vagy máshova kanonizált oldalra mutat. Gyakori ok a végpontosperjel-eltérés (/termek vs /termek/) vagy a http és https keveredése. A célnak mindig a végleges, 200-as státuszú, önmagára kanonizáló URL-nek kell lennie.
Automatikus átirányítás IP vagy nyelv alapján
Ha a szerver a látogató helye alapján kényszerítően átirányít, a robot (amely jellemzően amerikai IP-ről érkezik) soha nem látja a többi változatot. Ilyenkor a hreflang hiába van ott. A jobb megoldás egy nem tolakodó ajánló sáv ("Úgy tűnik, Romániából látogatsz, váltasz a lejes oldalra?"), amely a választást a felhasználóra hagyja.
Ellenpélda: azonos tartalom, különböző kód
Ha a de-DE és de-AT oldal tartalma betűre azonos, az nem hiba, a hreflang pont erre való. Hiba viszont, ha az "angol" oldal valójában magyar szöveget tartalmaz, mert a fordítás még nem készült el. A kereső felismerheti, hogy a tartalom nyelve nem egyezik a kóddal, és a jelzést ilyenkor gyengébben veheti figyelembe.
Gyakori tévhitek
- "A hreflang javítja a rangsorolást." Nem, a meglévő helyezésen belül cseréli a változatot.
- "A hreflang megoldja a duplikált tartalmat." Részben segít, mert jelzi, hogy a hasonló oldalak szándékos változatok, de rossz canonicallal együtt nem ment meg semmitől.
- "Elég a főoldalra tenni." Nem, oldalszinten működik, minden megfelelő párosra külön kell.
- "A lang attribútum ugyanezt csinálja." A html lang a böngészőnek és akadálymentesítési eszközöknek szól, a Google hreflang-kezelésében nem helyettesíti a hreflangot.
Mérés
A hreflang sikerét nem a forgalom puszta növekedésén méred, hanem azon, hogy a megfelelő piacon a megfelelő URL jelenik-e meg. A cél az illesztés: osztrák keresőknél a /at/ oldalak kapják a megjelenéseket, nem a /de/ oldalak. Ezt több forrásból kell összerakni.
Search Console ország- és oldalszűrés
A Teljesítmény jelentésben szűrj országra, majd nézd meg az Oldalak fület. Ha Ausztriában jelentős megjelenést kapnak a /de/ URL-ek, a hreflang nem működik megfelelően. Szemléltető példa: ha egy osztrák szűrésnél a kattintások 60 százaléka a német piacos oldalakra megy, ott hibát kell keresni; ha ez az arány a javítás után néhány hét alatt jelentősen csökken, a jelzés érvényesült. A konkrét számok oldalanként nagyon eltérnek, a trend a lényeg.
Feltérképező eszközök
Az asztali és felhőalapú SEO-crawlerek többsége tud hreflang-jelentést készíteni: hiányzó visszahivatkozások, nem 200-as célok, hibás kódok, hiányzó önhivatkozás. Futtasd minden nagyobb kiadás után, és mentsd el az eredményt, hogy összehasonlíthasd az előző állapottal.
URL-vizsgálat és élő teszt
A Search Console URL-vizsgálatánál láthatod, melyik URL-t választotta a Google kanonikusnak. Ha a hu-RO oldalnál a Google a hu-HU oldalt jelöli kanonikusnak, a két oldal túl hasonló lehet, vagy ellentmondásos jelzések vannak. Ilyenkor érdemes erősebben lokalizálni (pénznem, elérhetőség, helyi adatok).
Ellenőrzőlista
- Minden változat tartalmaz önhivatkozást.
- Minden pár kölcsönös.
- Minden kód érvényes ISO nyelv (és opcionálisan ország).
- Minden cél 200-as, indexelhető, önmagára kanonizál.
- Abszolút URL-ek, egységes protokoll és perjel.
- Van x-default, ha nem fedsz le minden piacot.
- Egy klaszter egy módszerrel van megadva.
- Nincs kényszerített IP-alapú átirányítás.
- A tartalom nyelve egyezik a kóddal.
- Országos szűrésnél a helyi URL-ek kapják a megjelenéseket.
Ütemezés
Új implementáció vagy jelentős javítás után ne várj azonnali változást. A feldolgozás a feltérképezés ütemétől függ, ami oldalanként eltér. Érdemes először egy héttel később ellenőrizni a crawlert, aztán néhány héttel később a Search Console országos bontását. Havi rendszerességű, kiadásokhoz kötött audit a leghatékonyabb.
Kapcsolódó részletes útmutatók
A hreflang a nemzetközi SEO egyik technikai pillére, de csak akkor működik jól, ha mögötte átgondolt piaci és nyelvi stratégia áll. Mielőtt kódot írsz, döntsd el, melyik piacokat célzod, milyen URL-struktúrával (alkönyvtár, aldomain vagy országos domain), és mennyire lokalizálod a tartalmat. Ezek a döntések határozzák meg, hány változatod lesz, és hogyan épül fel a klaszter.
Ha a struktúra megvan, a hreflang már inkább karbantartási feladat: központi forrásból generált lista, rendszeres crawl és országos bontású mérés. Az alábbi anyagok segítenek a tágabb kontextus felépítésében.
Ajánlott olvasnivaló
- Nemzetközi SEO: a témakör áttekintő oldala, minden kapcsolódó anyaggal.
- Nemzetközi SEO: teljes útmutató: piacválasztás, URL-struktúra, országos célzás.
- Többnyelvű SEO: teljes útmutató: fordítás, lokalizáció és nyelvi kulcsszókutatás.
Merre tovább?
Ha most indulsz, a sorrend: stratégia, struktúra, tartalom, majd hreflang. Ha már van élő, többnyelvű oldalad, kezdd a fenti ellenőrzőlistával és egy teljes crawllal, mert a meglévő hibák javítása gyakran gyorsabban hoz eredményt, mint egy új nyelv bevezetése.
Csináltassuk meg helyetted
Ha ez sok, mi elvégezzük. Egy munkanapon belül konkrét ajánlatot kapsz.