What is a valid #Hreflang ?
What is a valid Hreflang?
Sometimes users of our Hreflang testing tool see an error like this and get baffled:
Invalid hreflang (en_US) found in HTML.
Why is en_US incorrect? Because the correct way to write a language code is with dashes, not underscores. The correct value is en-US.
What are valid values for Hreflang?
A valid hreflang can be specified as:
A 2-character language code (e.g. āenā), or
a combination of language and region code (e.g. āen-USā), or
a combination of language and script code (e.g. āsr-Cyrlā or āsr-Latnā), or
a combination of language, script and region codes (e.g. āsr-hu-Latnā)
A special value of āx-defaultā, used for country/language selectors and redirector pages. These pages are not specific to any language/locale. Users either choose their language/country (e.g. from a map or dropdown box), or the website uses the IP address of the visitor to this page and automatically redirects them to the page that is appropriate for them.
Examples of invalid Hreflang
Here are some examples of invalid language codes found recently by the online testing tool. See if you can figure out why these codes are incorrect:
en_US: Underscore used instead of hyphen
en-en: The second āenā is incorrect because āenā is not a valid region code.
en-UK: āukā is not a valid region code. Use āen-GBā.
us-en: The order is inverted. It should be āen-USā.
ua: ua is not a language code. It is a region code. So it is incorrect to use it by itself, i.e. without a language code.
cmn-CN: The country code for China is correct (this page was in Chinese and the URL was a .cn URL. The language code is incorrect.
Valid Codes for Reference
Valid Language Codes (2-character ISO-639-1 Codes)
A list of valid 2-character language codes is as follows (the format is ISO 639-1): aa, ab, ae, af, ak, am, an, ar, as, av, ay, az, ba, be, bg, bh, bi, bm, bn, bo, br, bs, ca, ce, ch, co, cr, cs, cu, cv, cy, da, de, dv, dz, ee, el, en, eo, es, et, eu, fa, ff, fi, fj, fo, fr, fy, ga, gd, gl, gn, gu, gv, ha, he, hi, ho, hr, ht, hu, hy, hz, ia, id, ie, ig, ii, ik, io, is, it, iu, ja, jv, ka, kg, ki, kj, kk, kl, km, kn, ko, kr, ks, ku, kv, kw, ky, la, lb, lg, li, ln, lo, lt, lu, lv, mg, mh, mi, mk, ml, mn, mr, ms, mt, my, na, nb, nd, ne, ng, nl, nn, no, nr, nv, ny, oc, oj, om, or, os, pa, pi, pl, ps, pt, qu, rm, rn, ro, ru, rw, sa, sc, sd, se, sg, si, sk, sl, sm, sn, so, sq, sr, ss, st, su, sv, sw, ta, te, tg, th, ti, tk, tl, tn, to, tr, ts, tt, tw, ty, ug, uk, ur, uz, ve, vi, vo, wa, wo, xh, yi, yo, za, zh, zu
Valid Region Codes (2-character ISO-3166-1 Codes)
And here are all the valid region codes (ISO 3166-1 Alpha 2 format; note that the code for the United Kingdom is āGBā, not āUKā): AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, YE, YT, ZA, ZM, ZW
Valid Script Codes (4-character ISO 15924 Codes)
All valid script codes are as follows (the format is ISO 15924): Adlm, Afak, Aghb, Ahom, Arab, Aran, Armi, Armn, Avst, Bali, Bamu, Bass, Batk, Beng, Bhks, Blis, Bopo, Brah, Brai, Bugi, Buhd, Cakm, Cans, Cari, Cham, Cher, Cirt, Copt, Cprt, Cyrl, Cyrs, Deva, Dsrt, Dupl, Egyd, Egyh, Egyp, Elba, Ethi, Geok, Geor, Glag, Goth, Gran, Grek, Gujr, Guru, Hang, Hani, Hano, Hans, Hant, Hatr, Hebr, Hira, Hluw, Hmng, Hrkt, Hung, Inds, Ital, Java, Jpan, Jurc, Kali, Kana, Khar, Khmr, Khoj, Kitl, Kits, Knda, Kore, Kpel, Kthi, Lana, Laoo, Latf, Latg, Latn, Leke, Lepc, Limb, Lina, Linb, Lisu, Loma, Lyci, Lydi, Mahj, Mand, Mani, Marc, Maya, Mend, Merc, Mero, Mlym, Modi, Mong, Moon, Mroo, Mtei, Mult, Mymr, Narb, Nbat, Nkgb, Nkoo, Nshu, Ogam, Olck, Orkh, Orya, Osge, Osma, Palm, Pauc, Perm, Phag, Phli, Phlp, Phlv, Phnx, Plrd, Prti, Rjng, Roro, Runr, Samr, Sara, Sarb, Saur, Sgnw, Shaw, Shrd, Sidd, Sind, Sinh, Sora, Sund, Sylo, Syrc, Syre, Syrj, Syrn, Tagb, Takr, Tale, Talu, Taml, Tang, Tavt, Telu, Teng, Tfng, Tglg, Thaa, Thai, Tibt, Tirh, Ugar, Vaii, Visp, Wara, Wole, Xpeo, Xsux, Yiii











