Hreflang country codes

The optional second part of an hreflang value is an ISO 3166-1 alpha-2 region code. It narrows a language to one country, never replaces it.

Write the region after the language, separated by a hyphen: de-CH is German for Switzerland, fr-CH French for Switzerland. Upper case is the convention, though Google accepts either. The table lists 249 assigned codes, generated from Unicode CLDR data, with the most widely used language in each place as a starting example. Countries with several major languages (Belgium, Switzerland, Canada, India) need one entry per language you actually publish.

CodeCountry or territoryMain languageExample hreflang
AFAfghanistanPersian (fa)fa-AF
AXÅland IslandsSwedish (sv)sv-AX
ALAlbaniaAlbanian (sq)sq-AL
DZAlgeriaArabic (ar)ar-DZ
ASAmerican SamoaSamoan (sm)sm-AS
ADAndorraCatalan (ca)ca-AD
AOAngolaPortuguese (pt)pt-AO
AIAnguillaEnglish (en)en-AI
AQAntarcticaEnglish (en)en-AQ
AGAntigua & BarbudaEnglish (en)en-AG
ARArgentinaSpanish (es)es-AR
AMArmeniaArmenian (hy)hy-AM
AWArubaDutch (nl)nl-AW
AUAustraliaEnglish (en)en-AU
ATAustriaGerman (de)de-AT
AZAzerbaijanAzerbaijani (az)az-AZ
BSBahamasEnglish (en)en-BS
BHBahrainArabic (ar)ar-BH
BDBangladeshBangla (bn)bn-BD
BBBarbadosEnglish (en)en-BB
BYBelarusRussian (ru)ru-BY
BEBelgiumDutch (nl)nl-BE
BZBelizeEnglish (en)en-BZ
BJBeninFrench (fr)fr-BJ
BMBermudaEnglish (en)en-BM
BTBhutanDzongkha (dz)dz-BT
BOBoliviaSpanish (es)es-BO
BABosnia & HerzegovinaBosnian (bs)bs-BA
BWBotswanaEnglish (en)en-BW
BVBouvet IslandNorwegian (no)no-BV
BRBrazilPortuguese (pt)pt-BR
IOBritish Indian Ocean TerritoryEnglish (en)en-IO
VGBritish Virgin IslandsEnglish (en)en-VG
BNBruneiMalay (ms)ms-BN
BGBulgariaBulgarian (bg)bg-BG
BFBurkina FasoFrench (fr)fr-BF
BIBurundiRundi (rn)rn-BI
KHCambodiaKhmer (km)km-KH
CMCameroonFrench (fr)fr-CM
CACanadaEnglish (en)en-CA
CVCape VerdePortuguese (pt)pt-CV
BQCaribbean Netherlands—en-BQ
KYCayman IslandsEnglish (en)en-KY
CFCentral African RepublicSango (sg)sg-CF
TDChadArabic (ar)ar-TD
CLChileSpanish (es)es-CL
CNChinaChinese (zh)zh-CN
CXChristmas IslandEnglish (en)en-CX
CCCocos (Keeling) IslandsMalay (ms)ms-CC
COColombiaSpanish (es)es-CO
KMComorosArabic (ar)ar-KM
CGCongo - BrazzavilleFrench (fr)fr-CG
CDCongo - KinshasaFrench (fr)fr-CD
CKCook IslandsEnglish (en)en-CK
CRCosta RicaSpanish (es)es-CR
CICôte d’IvoireFrench (fr)fr-CI
HRCroatiaCroatian (hr)hr-HR
CUCubaSpanish (es)es-CU
CWCuraçao—en-CW
CYCyprusGreek (el)el-CY
CZCzechiaCzech (cs)cs-CZ
DKDenmarkDanish (da)da-DK
DJDjiboutiFrench (fr)fr-DJ
DMDominicaEnglish (en)en-DM
DODominican RepublicSpanish (es)es-DO
ECEcuadorSpanish (es)es-EC
EGEgyptArabic (ar)ar-EG
SVEl SalvadorSpanish (es)es-SV
GQEquatorial GuineaSpanish (es)es-GQ
EREritreaTigrinya (ti)ti-ER
EEEstoniaEstonian (et)et-EE
SZEswatiniEnglish (en)en-SZ
ETEthiopiaAmharic (am)am-ET
FKFalkland IslandsEnglish (en)en-FK
FOFaroe IslandsFaroese (fo)fo-FO
FJFijiEnglish (en)en-FJ
FIFinlandFinnish (fi)fi-FI
FRFranceFrench (fr)fr-FR
GFFrench GuianaFrench (fr)fr-GF
PFFrench PolynesiaFrench (fr)fr-PF
TFFrench Southern TerritoriesFrench (fr)fr-TF
GAGabonFrench (fr)fr-GA
GMGambiaEnglish (en)en-GM
GEGeorgiaGeorgian (ka)ka-GE
DEGermanyGerman (de)de-DE
GHGhanaAkan (ak)ak-GH
GIGibraltarEnglish (en)en-GI
GRGreeceGreek (el)el-GR
GLGreenlandKalaallisut (kl)kl-GL
GDGrenadaEnglish (en)en-GD
GPGuadeloupeFrench (fr)fr-GP
GUGuamEnglish (en)en-GU
GTGuatemalaSpanish (es)es-GT
GGGuernseyEnglish (en)en-GG
GNGuineaFrench (fr)fr-GN
GWGuinea-BissauPortuguese (pt)pt-GW
GYGuyanaEnglish (en)en-GY
HTHaitiHaitian Creole (ht)ht-HT
HMHeard & McDonald IslandsEnglish (en)en-HM
HNHondurasSpanish (es)es-HN
HKHong Kong SAR ChinaChinese (zh)zh-HK
HUHungaryHungarian (hu)hu-HU
ISIcelandIcelandic (is)is-IS
INIndiaHindi (hi)hi-IN
IDIndonesiaIndonesian (id)id-ID
IRIranPersian (fa)fa-IR
IQIraqArabic (ar)ar-IQ
IEIrelandEnglish (en)en-IE
IMIsle of ManEnglish (en)en-IM
ILIsraelHebrew (he)he-IL
ITItalyItalian (it)it-IT
JMJamaicaEnglish (en)en-JM
JPJapanJapanese (ja)ja-JP
JEJerseyEnglish (en)en-JE
JOJordanArabic (ar)ar-JO
KZKazakhstanRussian (ru)ru-KZ
KEKenyaSwahili (sw)sw-KE
KIKiribatiEnglish (en)en-KI
KWKuwaitArabic (ar)ar-KW
KGKyrgyzstanKyrgyz (ky)ky-KG
LALaosLao (lo)lo-LA
LVLatviaLatvian (lv)lv-LV
LBLebanonArabic (ar)ar-LB
LSLesothoSouthern Sotho (st)st-LS
LRLiberiaEnglish (en)en-LR
LYLibyaArabic (ar)ar-LY
LILiechtensteinGerman (de)de-LI
LTLithuaniaLithuanian (lt)lt-LT
LULuxembourgFrench (fr)fr-LU
MOMacao SAR ChinaChinese (zh)zh-MO
MGMadagascarMalagasy (mg)mg-MG
MWMalawiEnglish (en)en-MW
MYMalaysiaMalay (ms)ms-MY
MVMaldivesDivehi (dv)dv-MV
MLMaliBambara (bm)bm-ML
MTMaltaMaltese (mt)mt-MT
MHMarshall IslandsEnglish (en)en-MH
MQMartiniqueFrench (fr)fr-MQ
MRMauritaniaArabic (ar)ar-MR
MUMauritiusFrench (fr)fr-MU
YTMayotteFrench (fr)fr-YT
MXMexicoSpanish (es)es-MX
FMMicronesiaEnglish (en)en-FM
MDMoldovaRomanian (ro)ro-MD
MCMonacoFrench (fr)fr-MC
MNMongoliaMongolian (mn)mn-MN
MEMontenegroSerbian (sr)sr-ME
MSMontserratEnglish (en)en-MS
MAMoroccoArabic (ar)ar-MA
MZMozambiquePortuguese (pt)pt-MZ
MMMyanmar (Burma)Burmese (my)my-MM
NANamibiaAfrikaans (af)af-NA
NRNauruEnglish (en)en-NR
NPNepalNepali (ne)ne-NP
NLNetherlandsDutch (nl)nl-NL
NCNew CaledoniaFrench (fr)fr-NC
NZNew ZealandEnglish (en)en-NZ
NINicaraguaSpanish (es)es-NI
NENigerHausa (ha)ha-NE
NGNigeriaEnglish (en)en-NG
NUNiueEnglish (en)en-NU
NFNorfolk IslandEnglish (en)en-NF
KPNorth KoreaKorean (ko)ko-KP
MKNorth MacedoniaMacedonian (mk)mk-MK
MPNorthern Mariana IslandsEnglish (en)en-MP
NONorwayNorwegian Bokmål (nb)nb-NO
OMOmanArabic (ar)ar-OM
PKPakistanUrdu (ur)ur-PK
PWPalau—en-PW
PSPalestinian TerritoriesArabic (ar)ar-PS
PAPanamaSpanish (es)es-PA
PGPapua New Guinea—en-PG
PYParaguayGuarani (gn)gn-PY
PEPeruSpanish (es)es-PE
PHPhilippines—en-PH
PNPitcairn IslandsEnglish (en)en-PN
PLPolandPolish (pl)pl-PL
PTPortugalPortuguese (pt)pt-PT
PRPuerto RicoSpanish (es)es-PR
QAQatarArabic (ar)ar-QA
RERéunionFrench (fr)fr-RE
RORomaniaRomanian (ro)ro-RO
RURussiaRussian (ru)ru-RU
RWRwandaKinyarwanda (rw)rw-RW
WSSamoaSamoan (sm)sm-WS
SMSan MarinoItalian (it)it-SM
STSão Tomé & PríncipePortuguese (pt)pt-ST
SASaudi ArabiaArabic (ar)ar-SA
SNSenegalWolof (wo)wo-SN
RSSerbiaSerbian (sr)sr-RS
SCSeychellesFrench (fr)fr-SC
SLSierra LeoneEnglish (en)en-SL
SGSingaporeEnglish (en)en-SG
SXSint MaartenEnglish (en)en-SX
SKSlovakiaSlovak (sk)sk-SK
SISloveniaSlovenian (sl)sl-SI
SBSolomon IslandsEnglish (en)en-SB
SOSomaliaSomali (so)so-SO
ZASouth AfricaEnglish (en)en-ZA
GSSouth Georgia & South Sandwich IslandsEnglish (en)en-GS
KRSouth KoreaKorean (ko)ko-KR
SSSouth SudanArabic (ar)ar-SS
ESSpainSpanish (es)es-ES
LKSri LankaSinhala (si)si-LK
BLSt. BarthélemyFrench (fr)fr-BL
SHSt. HelenaEnglish (en)en-SH
KNSt. Kitts & NevisEnglish (en)en-KN
LCSt. LuciaEnglish (en)en-LC
MFSt. MartinFrench (fr)fr-MF
PMSt. Pierre & MiquelonFrench (fr)fr-PM
VCSt. Vincent & GrenadinesEnglish (en)en-VC
SDSudanArabic (ar)ar-SD
SRSurinameDutch (nl)nl-SR
SJSvalbard & Jan MayenNorwegian Bokmål (nb)nb-SJ
SESwedenSwedish (sv)sv-SE
CHSwitzerlandGerman (de)de-CH
SYSyriaArabic (ar)ar-SY
TWTaiwanChinese (zh)zh-TW
TJTajikistanTajik (tg)tg-TJ
TZTanzaniaSwahili (sw)sw-TZ
THThailandThai (th)th-TH
TLTimor-LestePortuguese (pt)pt-TL
TGTogoFrench (fr)fr-TG
TKTokelau—en-TK
TOTongaTongan (to)to-TO
TTTrinidad & TobagoEnglish (en)en-TT
TNTunisiaArabic (ar)ar-TN
TRTürkiyeTurkish (tr)tr-TR
TMTurkmenistanTurkmen (tk)tk-TM
TCTurks & Caicos IslandsEnglish (en)en-TC
TVTuvalu—en-TV
UMU.S. Outlying IslandsEnglish (en)en-UM
VIU.S. Virgin IslandsEnglish (en)en-VI
UGUgandaSwahili (sw)sw-UG
UAUkraineUkrainian (uk)uk-UA
AEUnited Arab EmiratesArabic (ar)ar-AE
GBUnited KingdomEnglish (en)en-GB
USUnited StatesEnglish (en)en-US
UYUruguaySpanish (es)es-UY
UZUzbekistanUzbek (uz)uz-UZ
VUVanuatuBislama (bi)bi-VU
VAVatican CityItalian (it)it-VA
VEVenezuelaSpanish (es)es-VE
VNVietnamVietnamese (vi)vi-VN
WFWallis & FutunaFrench (fr)fr-WF
EHWestern SaharaArabic (ar)ar-EH
YEYemenArabic (ar)ar-YE
ZMZambiaEnglish (en)en-ZM
ZWZimbabweShona (sn)sn-ZW

Reserved codes Google ignores

Google names these explicitly: using EU, UN or UK in hreflang has no effect. They are reserved in ISO 3166-1 rather than assigned to a country. Others in the same family:

  • UK → use GB (United Kingdom)
  • EU, EZ, UN → target individual countries or the plain language
  • XK (Kosovo) is a user-assigned code, not an official ISO 3166-1 element; use the plain language (sq, sr)
  • AC, TA → part of SH; IC, EA → part of ES
  • Numeric UN M.49 areas such as 419 (Latin America) aren't supported at all

One language, many countries

Splitting a language by country? Google recommends adding a catch-all for everyone else who speaks it:

<link rel="alternate" hreflang="es-ES" href="https://example.com/es-es/" />
<link rel="alternate" hreflang="es-MX" href="https://example.com/es-mx/" />
<link rel="alternate" hreflang="es" href="https://example.com/es/" />

A Spanish speaker in Colombia gets /es/. Build your own set in the hreflang generator, which offers all of these regions in its dropdowns, or look up the language codes.

Country code questions

Which country codes can I use in hreflang?

Officially assigned ISO 3166-1 alpha-2 codes, such as US, GB, DE or BR, always after a language code (en-US). Google ignores reserved codes such as EU, UN or UK.

Can I use a country code without a language?

No. Google states you cannot specify the country code by itself; the first part must be a language. For all visitors in Belgium you would list de-BE, fr-BE and nl-BE as needed.

What is the hreflang code for the United Kingdom?

GB, as in en-GB. UK is exceptionally reserved in ISO 3166-1 and has no effect in hreflang.

How do I target the whole EU or Latin America?

There is no single supported code. es-419 and en-EU are not supported. Use the plain language (es, en) as a catch-all and add specific countries where you have dedicated pages.

Does a country code in hreflang geotarget my site?

Hreflang tells Google which URL to show to users with a given language in a given region. It is not a ranking boost in that country; Google also looks at signals such as ccTLDs and local content.