Write the language in lower case, then optionally a hyphen and a country code: pt for all Portuguese speakers, pt-BR for Brazil. 78 of these language codes are spelled like an unrelated country's code, which is the source of classic mistakes such as hreflang="be" for Belgium (it means Belarusian). They are marked in the table.
183 shown
| Code | Language | Native name | Example hreflang |
|---|---|---|---|
| ab | Abkhazian | Abkhazian | ab, ab-GE |
| aa | Afar | Afar | aa, aa-ET |
| af | AfrikaansNot Afghanistan: as a language code "af" means Afrikaans. | Afrikaans | af, af-ZA |
| ak | Akan | Akan | ak, ak-GH |
| tw | AkanNot Taiwan: as a language code "tw" means Akan. | Akan | tw, tw-GH |
| sq | Albanian | shqip | sq, sq-AL |
| am | AmharicNot Armenia: as a language code "am" means Amharic. | አማርኛ | am, am-ET |
| ar | ArabicNot Argentina: as a language code "ar" means Arabic. | العربية | ar, ar-EG |
| an | Aragonese | Aragonese | an, an-ES |
| hy | Armenian | հայերեն | hy, hy-AM |
| as | AssameseNot American Samoa: as a language code "as" means Assamese. | অসমীয়া | as, as-IN |
| av | Avaric | Avaric | av, av-RU |
| ae | AvestanNot United Arab Emirates: as a language code "ae" means Avestan. | Avestan | ae, ae-IR |
| ay | Aymara | Aymara | ay, ay-BO |
| az | Azerbaijani | azərbaycan | az, az-AZ |
| bm | BambaraNot Bermuda: as a language code "bm" means Bambara. | bamanakan | bm, bm-ML |
| bn | BanglaNot Brunei: as a language code "bn" means Bangla. | বাংলা | bn, bn-BD |
| ba | BashkirNot Bosnia & Herzegovina: as a language code "ba" means Bashkir. | башҡорт | ba, ba-RU |
| eu | Basque | euskara | eu, eu-ES |
| be | BelarusianNot Belgium: as a language code "be" means Belarusian. | беларуская | be, be-BY |
| bh | BhojpuriNot Bahrain: as a language code "bh" means Bhojpuri. | Bhojpuri | bh, bh-IN |
| bi | BislamaNot Burundi: as a language code "bi" means Bislama. | Bislama | bi, bi-VU |
| bs | BosnianNot Bahamas: as a language code "bs" means Bosnian. | bosanski | bs, bs-BA |
| br | BretonNot Brazil: as a language code "br" means Breton. | brezhoneg | br, br-FR |
| bg | Bulgarian | български | bg, bg-BG |
| my | BurmeseNot Malaysia: as a language code "my" means Burmese. | မြန်မာ | my, my-MM |
| ca | CatalanNot Canada: as a language code "ca" means Catalan. | català | ca, ca-ES |
| ch | ChamorroNot Switzerland: as a language code "ch" means Chamorro. | Chamorro | ch, ch-GU |
| ce | Chechen | нохчийн | ce, ce-RU |
| zh | Chinese | 中文 | zh, zh-CN |
| cu | Church SlavicNot Cuba: as a language code "cu" means Church Slavic. | Church Slavic | cu, cu-RU |
| cv | ChuvashNot Cape Verde: as a language code "cv" means Chuvash. | чӑваш чӗлхи | cv, cv-RU |
| kw | CornishNot Kuwait: as a language code "kw" means Cornish. | kernewek | kw, kw-GB |
| co | CorsicanNot Colombia: as a language code "co" means Corsican. | Corsican | co, co-FR |
| cr | CreeNot Costa Rica: as a language code "cr" means Cree. | Cree | cr, cr-CA |
| hr | Croatian | hrvatski | hr, hr-HR |
| cs | Czech | čeština | cs, cs-CZ |
| da | Danish | dansk | da, da-DK |
| dv | Divehi | Divehi | dv, dv-MV |
| nl | Dutch | Nederlands | nl, nl-NL |
| dz | DzongkhaNot Algeria: as a language code "dz" means Dzongkha. | རྫོང་ཁ | dz, dz-BT |
| en | English | English | en, en-US |
| eo | Esperanto | Esperanto | eo |
| et | EstonianNot Ethiopia: as a language code "et" means Estonian. | eesti | et, et-EE |
| ee | EweNot Estonia: as a language code "ee" means Ewe. | eʋegbe | ee, ee-GH |
| fo | Faroese | føroyskt | fo, fo-FO |
| fj | FijianNot Fiji: as a language code "fj" means Fijian. | Fijian | fj, fj-FJ |
| fi | Finnish | suomi | fi, fi-FI |
| fr | French | français | fr, fr-FR |
| ff | Fula | Pulaar | ff, ff-SN |
| gl | GalicianNot Greenland: as a language code "gl" means Galician. | galego | gl, gl-ES |
| lg | Ganda | Luganda | lg, lg-UG |
| ka | Georgian | ქართული | ka, ka-GE |
| de | German | Deutsch | de, de-DE |
| el | Greek | Ελληνικά | el, el-GR |
| gn | GuaraniNot Guinea: as a language code "gn" means Guarani. | Guarani | gn, gn-PY |
| gu | GujaratiNot Guam: as a language code "gu" means Gujarati. | ગુજરાતી | gu, gu-IN |
| ht | Haitian Creole | Haitian Creole | ht, ht-HT |
| ha | Hausa | Hausa | ha, ha-NG |
| he | Hebrew | עברית | he, he-IL |
| hz | Herero | Herero | hz, hz-NA |
| hi | Hindi | हिन्दी | hi, hi-IN |
| ho | Hiri Motu | Hiri Motu | ho, ho-PG |
| hu | Hungarian | magyar | hu, hu-HU |
| is | Icelandic | íslenska | is, is-IS |
| io | IdoNot British Indian Ocean Territory: as a language code "io" means Ido. | Ido | io |
| ig | Igbo | Igbo | ig, ig-NG |
| id | Indonesian | Indonesia | id, id-ID |
| ia | Interlingua | interlingua | ia |
| ie | InterlingueNot Ireland: as a language code "ie" means Interlingue. | Interlingue | ie, ie-EE |
| iu | Inuktitut | Inuktitut | iu, iu-CA |
| ik | Inupiaq | Inupiaq | ik, ik-US |
| ga | IrishNot Gabon: as a language code "ga" means Irish. | Gaeilge | ga, ga-IE |
| it | Italian | italiano | it, it-IT |
| ja | Japanese | 日本語 | ja, ja-JP |
| jv | Javanese | Jawa | jv, jv-ID |
| kl | Kalaallisut | kalaallisut | kl, kl-GL |
| kn | KannadaNot St. Kitts & Nevis: as a language code "kn" means Kannada. | ಕನ್ನಡ | kn, kn-IN |
| kr | KanuriNot South Korea: as a language code "kr" means Kanuri. | Kanuri | kr, kr-NG |
| ks | Kashmiri | کٲشُر | ks, ks-IN |
| kk | Kazakh | қазақ тілі | kk, kk-KZ |
| km | KhmerNot Comoros: as a language code "km" means Khmer. | ខ្មែរ | km, km-KH |
| ki | KikuyuNot Kiribati: as a language code "ki" means Kikuyu. | Gikuyu | ki, ki-KE |
| rw | Kinyarwanda | Ikinyarwanda | rw, rw-RW |
| kv | Komi | Komi | kv, kv-RU |
| kg | KongoNot Kyrgyzstan: as a language code "kg" means Kongo. | Kongo | kg, kg-CD |
| ko | Korean | 한국어 | ko, ko-KR |
| kj | Kuanyama | Kuanyama | kj, kj-NA |
| ku | Kurdish | kurdî (kurmancî) | ku, ku-TR |
| ky | KyrgyzNot Cayman Islands: as a language code "ky" means Kyrgyz. | кыргызча | ky, ky-KG |
| lo | Lao | ລາວ | lo, lo-LA |
| la | LatinNot Laos: as a language code "la" means Latin. | Latin | la, la-VA |
| lv | Latvian | latviešu | lv, lv-LV |
| li | LimburgishNot Liechtenstein: as a language code "li" means Limburgish. | Limburgish | li, li-NL |
| ln | Lingala | lingála | ln, ln-CD |
| lt | Lithuanian | lietuvių | lt, lt-LT |
| lu | Luba-KatangaNot Luxembourg: as a language code "lu" means Luba-Katanga. | Tshiluba | lu, lu-CD |
| lb | LuxembourgishNot Lebanon: as a language code "lb" means Luxembourgish. | Lëtzebuergesch | lb, lb-LU |
| mk | Macedonian | македонски | mk, mk-MK |
| mg | Malagasy | Malagasy | mg, mg-MG |
| ms | MalayNot Montserrat: as a language code "ms" means Malay. | Melayu | ms, ms-MY |
| ml | MalayalamNot Mali: as a language code "ml" means Malayalam. | മലയാളം | ml, ml-IN |
| mt | Maltese | Malti | mt, mt-MT |
| gv | Manx | Gaelg | gv, gv-IM |
| mi | Māori | Māori | mi, mi-NZ |
| mr | MarathiNot Mauritania: as a language code "mr" means Marathi. | मराठी | mr, mr-IN |
| mh | MarshalleseNot Marshall Islands: as a language code "mh" means Marshallese. | Marshallese | mh, mh-MH |
| mn | Mongolian | монгол | mn, mn-MN |
| na | NauruNot Namibia: as a language code "na" means Nauru. | Nauru | na, na-NR |
| nv | Navajo | Navajo | nv, nv-US |
| ng | NdongaNot Nigeria: as a language code "ng" means Ndonga. | Ndonga | ng, ng-NA |
| ne | NepaliNot Niger: as a language code "ne" means Nepali. | नेपाली | ne, ne-NP |
| nd | North Ndebele | isiNdebele | nd, nd-ZW |
| se | Northern SamiNot Sweden: as a language code "se" means Northern Sami. | davvisámegiella | se, se-NO |
| no | NorwegianNot Norway: as a language code "no" means Norwegian. | norsk | no, no-NO |
| nb | Norwegian Bokmål | norsk bokmål | nb, nb-NO |
| nn | Norwegian Nynorsk | norsk nynorsk | nn, nn-NO |
| ny | Nyanja | Nyanja | ny, ny-MW |
| oc | Occitan | occitan | oc, oc-FR |
| or | Odia | ଓଡ଼ିଆ | or, or-IN |
| oj | Ojibwa | Ojibwa | oj, oj-CA |
| om | OromoNot Oman: as a language code "om" means Oromo. | Oromoo | om, om-ET |
| os | Ossetic | ирон | os, os-GE |
| pi | Pali | Pali | pi, pi-GB |
| ps | PashtoNot Palestinian Territories: as a language code "ps" means Pashto. | پښتو | ps, ps-AF |
| fa | Persian | فارسی | fa, fa-IR |
| pl | Polish | polski | pl, pl-PL |
| pt | Portuguese | português | pt, pt-BR |
| pa | PunjabiNot Panama: as a language code "pa" means Punjabi. | ਪੰਜਾਬੀ | pa, pa-IN |
| qu | Quechua | Runasimi | qu, qu-PE |
| ro | Romanian | română | ro, ro-RO |
| rm | Romansh | rumantsch | rm, rm-CH |
| rn | Rundi | Ikirundi | rn, rn-BI |
| ru | Russian | русский | ru, ru-RU |
| sm | SamoanNot San Marino: as a language code "sm" means Samoan. | Samoan | sm, sm-WS |
| sg | SangoNot Singapore: as a language code "sg" means Sango. | Sängö | sg, sg-CF |
| sa | SanskritNot Saudi Arabia: as a language code "sa" means Sanskrit. | संस्कृत भाषा | sa, sa-IN |
| sc | SardinianNot Seychelles: as a language code "sc" means Sardinian. | sardu | sc, sc-IT |
| gd | Scottish GaelicNot Grenada: as a language code "gd" means Scottish Gaelic. | Gàidhlig | gd, gd-GB |
| sr | SerbianNot Suriname: as a language code "sr" means Serbian. | српски | sr, sr-RS |
| sn | ShonaNot Senegal: as a language code "sn" means Shona. | chiShona | sn, sn-ZW |
| ii | Sichuan Yi | ꆈꌠꉙ | ii, ii-CN |
| sd | SindhiNot Sudan: as a language code "sd" means Sindhi. | سنڌي | sd, sd-PK |
| si | SinhalaNot Slovenia: as a language code "si" means Sinhala. | සිංහල | si, si-LK |
| sk | Slovak | slovenčina | sk, sk-SK |
| sl | SlovenianNot Sierra Leone: as a language code "sl" means Slovenian. | slovenščina | sl, sl-SI |
| so | Somali | Soomaali | so, so-SO |
| nr | South NdebeleNot Nauru: as a language code "nr" means South Ndebele. | South Ndebele | nr, nr-ZA |
| st | Southern SothoNot São Tomé & Príncipe: as a language code "st" means Southern Sotho. | Sesotho | st, st-ZA |
| es | Spanish | español | es, es-ES |
| su | Sundanese | Basa Sunda | su, su-ID |
| sw | Swahili | Kiswahili | sw, sw-TZ |
| ss | SwatiNot South Sudan: as a language code "ss" means Swati. | Swati | ss, ss-ZA |
| sv | SwedishNot El Salvador: as a language code "sv" means Swedish. | svenska | sv, sv-SE |
| ty | Tahitian | Tahitian | ty, ty-PF |
| tg | TajikNot Togo: as a language code "tg" means Tajik. | тоҷикӣ | tg, tg-TJ |
| ta | Tamil | தமிழ் | ta, ta-IN |
| tt | TatarNot Trinidad & Tobago: as a language code "tt" means Tatar. | татар | tt, tt-RU |
| te | Telugu | తెలుగు | te, te-IN |
| th | Thai | ไทย | th, th-TH |
| bo | TibetanNot Bolivia: as a language code "bo" means Tibetan. | བོད་སྐད་ | bo, bo-CN |
| ti | Tigrinya | ትግርኛ | ti, ti-ET |
| to | Tongan | lea fakatonga | to, to-TO |
| ts | Tsonga | Tsonga | ts, ts-ZA |
| tn | TswanaNot Tunisia: as a language code "tn" means Tswana. | Setswana | tn, tn-ZA |
| tr | Turkish | Türkçe | tr, tr-TR |
| tk | TurkmenNot Tokelau: as a language code "tk" means Turkmen. | türkmen dili | tk, tk-TM |
| uk | Ukrainian | українська | uk, uk-UA |
| ur | Urdu | اردو | ur, ur-PK |
| ug | UyghurNot Uganda: as a language code "ug" means Uyghur. | ئۇيغۇرچە | ug, ug-CN |
| uz | Uzbek | o‘zbek | uz, uz-UZ |
| ve | VendaNot Venezuela: as a language code "ve" means Venda. | Venda | ve, ve-ZA |
| vi | VietnameseNot U.S. Virgin Islands: as a language code "vi" means Vietnamese. | Tiếng Việt | vi, vi-VN |
| vo | Volapük | Volapük | vo |
| wa | Walloon | Walloon | wa, wa-BE |
| cy | WelshNot Cyprus: as a language code "cy" means Welsh. | Cymraeg | cy, cy-GB |
| fy | Western Frisian | Frysk | fy, fy-NL |
| wo | Wolof | Wolof | wo, wo-SN |
| xh | Xhosa | IsiXhosa | xh, xh-ZA |
| yi | Yiddish | ייִדיש | yi, yi-UA |
| yo | Yoruba | Èdè Yorùbá | yo, yo-NG |
| za | ZhuangNot South Africa: as a language code "za" means Zhuang. | Vahcuengh | za, za-CN |
| zu | Zulu | isiZulu | zu, zu-ZA |
Script subtags
For languages written in more than one script, Google accepts an ISO 15924 script between language and region:
zh-HansChinese (Simplified),zh-HantChinese (Traditional)zh-Hans-SGSimplified Chinese for Singapore,zh-Hant-HKTraditional for Hong Kongsr-Latn/sr-CyrlSerbian in Latin or Cyrillic script
If you use zh-TW, Google derives the script automatically (Traditional), so a script subtag is only needed when the region doesn't settle it.
Codes people get wrong
jpis Japan; Japanese isja.seis Northern Sami; Swedish issv.dkisn't a language; Danish isda.grisn't a language; Greek isel.czisn't a language; Czech iscs.uaisn't a language; Ukrainian isuk, which also explains whyen-UKis so tempting and so wrong.iw,inandjiare withdrawn codes; usehe,idandyi.
The validator catches all of these and suggests the right code.
Language code questions
Which language codes does hreflang use?
Two-letter ISO 639-1 codes, such as en, de, ja or pt. Google says only codes listed in ISO 639-1 are supported for the language part.
Can I use three-letter codes like fil or yue?
Not as the language part of hreflang. Google’s documentation limits it to ISO 639-1. Languages that only have three-letter codes cannot be targeted with their own hreflang value.
How do I target Simplified vs Traditional Chinese?
Use an ISO 15924 script subtag: zh-Hans for Simplified and zh-Hant for Traditional, optionally followed by a region such as zh-Hant-HK. zh-TW and zh-CN also work because Google derives the script from those regions.
Is it en-us or en-US?
Either. Hreflang values are case-insensitive. en-US follows the ISO convention of upper-case regions.
What is the hreflang code for Norwegian?
no (Norwegian), with nb (Bokmål) and nn (Nynorsk) also in ISO 639-1. Pick the one that matches the page; many Norwegian sites use no or nb.