Страны и языки в Google: параметры gl и hl

· google · регионы

Регион и язык выдачи Google задаются двумя параметрами: gl - страна, hl - язык интерфейса. Город к ним добавляется третьим - uule или числовым ID региона. Ниже - что делает каждый, кто побеждает при споре и полные списки значений: 252 стран и 155 языков.

Страна задаёт выдачу

gl - двухбуквенный код страны: ru, by, de, us. Это главный рычаг: он решает, из какой страны Google берёт выдачу. По запросу «новости» с gl=ru, gl=by и gl=kz получаются три выдачи без единого общего адреса: ria.ru и lenta.ru, belta.by и onliner.by, tengrinews.kz и ktk.kz.

Выбор домена на это не влияет: google.de и google.com.br давно отдают то же, что google.com, - подробнее в статье про домены Google по странам. Страну задаёт gl, а не адрес в строке браузера.

Что с чем сочетается

Когда параметры тянут в разные стороны, выигрывает не тот, что стоит раньше в запросе. Проверено так же, как для Bing: каждому параметру давалось своё значение, и по выдаче видно, чью сторону взял Google. Каждый случай прогонялся дважды, сравнивались наборы адресов целиком.

Спор Кто побеждает Что видно в выдаче
город из uule против gl другой страны gl Москва в uule с gl=by по запросу «пицца доставка» даёт pzz.by и dodopizza.by, с gl=ru - dodopizza.ru и papajohns.ru: ни одного общего адреса
город внутри страны uule при gl=by Москва и Минск в uule дают выдачи, совпадающие на 0.82: страна общая, городские адреса свои
gl без города место запроса «пицца доставка» с gl=de без uule даёт смесь из немецких пиццерий и российских сайтов: город Google берёт из адреса, с которого пришёл запрос
hl против gl каждый своё gl=de&hl=en по запросу «hotel berlin» - та же немецкая выдача, что с hl=de, только интерфейс английский

Вывод из первых трёх строк: страну задавайте через gl, а город - через uule или ID региона, и следите, чтобы они не спорили. Проще всего передавать только region: API сам соберёт из него и город, и gl той же страны. Как Google привязывает выдачу к городу, разобрано в статье про UULE.

Язык интерфейса - не только надписи

hl прежде всего переводит интерфейс: «Все», «Картинки», «Новости» становятся «All», «Images», «News» или «Alle», «Bilder». Но на выдачу он тоже влияет - слабее, чем страна, и не на всех запросах.

Поэтому hl лучше ставить на языке, на котором ищут ваши пользователи, а не на том, на котором удобнее читать интерфейс.

Формы записи

Язык можно передать голым кодом (en) или локалью в том виде, в каком её пишет браузер (en-GB, en-US): вторая часть - страна из списка ниже. На выдачу страна в локали не влияет - hl=en-GB и hl=en при gl=gb дают одно и то же, страну по-прежнему решает gl.

Несколько вариантов - отдельные языки Google, а не язык со страной: pt-br и pt-pt, zh-cn, zh-tw и zh-hk, es-419. Голый pt Google понимает как бразильский португальский. Иврит у Google исторически iw, но he тоже принимается.

Незнакомый язык и язык по умолчанию

На незнакомый код Google не отвечает ошибкой: hl=zz молча превращается в английский. Со стороны это выглядит как работающий запрос. Наш API такой код не пропускает - отвечает ошибкой 422 до обращения к поисковику, так что опечатка не станет английской выдачей.

Если hl не передан, интерфейс будет русским при gl=ru (и когда страна тоже не указана) и английским для остальных стран.

Страны: 252 кодов

gl - код страны по ISO 3166-1 alpha-2 в нижнем регистре. Для Великобритании подходят оба кода: и стандартный gb, и привычный Google uk - выдача у них одна.

Код (gl) Страна Код (gl) Страна
ad Андорра la Лаосская Народно-Демократическая Республика
ae Объединенные Арабские Эмираты lb Ливан
af Афганистан lc Сент-Люсия
ag Антигуа и Барбуда li Лихтенштейн
ai Ангилья lk Шри-Ланка
al Албания lr Либерия
am Армения ls Лесото
an Нидерландские Антильские острова lt Литва
ao Ангола lu Люксембург
aq Антарктида lv Латвия
ar Аргентина ly Ливийская Арабская Джамахирия
as Американское Самоа ma Марокко
at Австрия mc Монако
au Австралия md Молдова, Республика
aw Аруба me Черногория
az Азербайджан mf Сен-Мартен
ba Босния и Герцеговина mg Мадагаскар
bb Барбадос mh Маршалловы острова
bd Бангладеш mk Македония, бывшая Югославская Республика
be Бельгия ml Мали
bf Буркина-Фасо mm Мьянма
bg Болгария mn Монголия
bh Бахрейн mo Макао
bi Бурунди mp Северные Марианские острова
bj Бенин mq Мартиника
bl Сен-Бартелеми mr Мавритания
bm Бермуды ms Монтсеррат
bn Бруней-Даруссалам mt Мальта
bo Боливия mu Маврикий
bq Бонэйр, Синт-Эстатиус и Саба mv Мальдивы
br Бразилия mw Малави
bs Багамы mx Мексика
bt Бутан my Малайзия
bv Остров Буве mz Мозамбик
bw Ботсвана na Намибия
by Беларусь nc Новая Каледония
bz Белиз ne Нигер
ca Канада nf Остров Норфолк
cc Кокосовые острова (Килинг) ng Нигерия
cd Конго, Демократическая Республика ni Никарагуа
cf Центральноафриканская Республика nl Нидерланды
cg Конго no Норвегия
ch Швейцария np Непал
ci Берег Слоновой Кости nr Науру
ck Острова Кука nu Ниуэ
cl Чили nz Новая Зеландия
cm Камерун om Оман
cn Китай pa Панама
co Колумбия pe Перу
cr Коста-Рика pf Французская Полинезия
cs Сербия и Черногория (старый код) pg Папуа-Новая Гвинея
cu Куба ph Филиппины
cv Кабо-Верде pk Пакистан
cw Кюрасао pl Польша
cx Остров Рождества pm Сен-Пьер и Микелон
cy Кипр pn Питкэрн
cz Чешская Республика pr Пуэрто-Рико
de Германия ps Палестинская территория, оккупированная
dj Джибути pt Португалия
dk Дания pw Палау
dm Доминика py Парагвай
do Доминиканская Республика qa Катар
dz Алжир re Воссоединение (Reunion)
ec Эквадор ro Румыния
ee Эстония rs Сербия
eg Египет ru Россия
eh Западная Сахара rw Руанда
er Эритрея sa Саудовская Аравия
es Испания sb Соломоновы острова
et Эфиопия sc Сейшельские острова
fi Финляндия sd Судан
fj Фиджи se Швеция
fk Фолклендские острова (Мальвинские острова) sg Сингапур
fm Микронезия, Федеративные Штаты sh Остров Святой Елены
fo Фарерские острова si Словения
fr Франция sj Шпицберген и Ян-Майен
ga Габон sk Словакия
gb Великобритания (ISO) sl Сьерра-Леоне
gd Гренада sm Сан-Марино
ge Грузия sn Сенегал
gf Французская Гвиана so Сомали
gg Гернси sr Суринам
gh Гана ss Южный Судан
gi Гибралтар st Сан-Томе и Принсипи
gl Гренландия sv Сальвадор
gm Гамбия sx Синт-Мартен
gn Гвинея sy Сирийская Арабская Республика
gp Гваделупа sz Свазиленд
gq Экваториальная Гвинея tc Острова Тёркс и Кайкос
gr Греция td Чад
gs Южная Георгия и Южные Сандвичевы острова tf Южные территории Франции
gt Гватемала tg Того
gu Гуам th Таиланд
gw Гвинея-Бисау tj Таджикистан
gy Гайана tk Токелау
hk Гонконг tl Тимор-Лешти
hm Остров Херд и острова Макдональд tm Туркменистан
hn Гондурас tn Тунис
hr Хорватия to Тонга
ht Гаити tr Турция
hu Венгрия tt Тринидад и Тобаго
id Индонезия tv Тувалу
ie Ирландия tw Тайвань, провинция Китая
il Израиль tz Танзания, Объединенная Республика
im Остров Мэн ua Украина
in Индия ug Уганда
io Британская территория в Индийском океане uk Великобритания
iq Ирак um Малые отдаленные острова США
ir Иран, Исламская Республика us Соединенные Штаты
is Исландия uy Уругвай
it Италия uz Узбекистан
je Джерси va Святой Престол (Ватикан)
jm Ямайка vc Сент-Винсент и Гренадины
jo Иордания ve Венесуэла
jp Япония vg Виргинские острова, Британская
ke Кения vi Виргинские острова, США
kg Кыргызстан vn Вьетнам
kh Камбоджа vu Вануату
ki Кирибати wf Уоллис и Футуна
km Коморские Острова ws Самоа
kn Сент-Китс и Невис xk Косово
kp Корея, Народно-Демократическая Республика ye Йемен
kr Корея, Республика yt Майотта
kw Кувейт za Южная Африка
ky Каймановы острова zm Замбия
kz Казахстан zw Зимбабве

Языки интерфейса: 155

Список собран из меню языков в настройках Google и из таблицы языков интерфейса в его документации. Меню у Google зависит от того, откуда его открывают, поэтому в таблице языков больше, чем вы увидите в своих настройках. Редкие из них Google может не поддерживать в интерфейсе - тогда страница будет на английском, а выдача останется той же.

Код (hl) Язык Код (hl) Язык
ach Ачоли mfe Маврикийский креольский
af Африкаанс mg Малагасийский
ak Акан mi Маори
am Амхарский mk Македонский
ar Арабский ml Малаялам
az Азербайджанский mn Монгольский
ban Балийский mo Молдавский
be Белорусский mr Маратхи
bem Бемба ms Малайский
bg Болгарский mt Мальтийский
bh Бихари mv Мальдивский (дивехи)
bn Бенгальский my Бирманский
br Бретонский ne Непальский
bs Боснийский nl Нидерландский
ca Каталанский nn Норвежский (нюнорск)
ceb Себуано no Норвежский
chr Чероки nso Северный сото
ckb Курдский (сорани) ny Ньянджа
co Корсиканский nyn Ньянколе
crs Сейшельский креольский oc Окситанский
cs Чешский om Оромо
cy Валлийский or Ория
da Датский pa Панджаби
de Немецкий pcm Нигерийский пиджин
ee Эве pl Польский
el Греческий ps Пушту
en Английский pt Португальский
eo Эсперанто pt-br Португальский (Бразилия)
es Испанский pt-pt Португальский (Португалия)
es-419 Испанский (Латинская Америка) qu Кечуа
et Эстонский rm Романшский
eu Баскский rn Рунди
fa Персидский ro Румынский
fi Финский ru Русский
fil Филиппинский rw Киньяруанда
fo Фарерский sd Синдхи
fr Французский sh Сербохорватский
fy Западнофризский si Сингальский
ga Ирландский sk Словацкий
gaa Га sl Словенский
gd Гэльский (шотландский) sm Самоанский
gl Галисийский sn Шона
gn Гуарани so Сомали
gu Гуджарати sq Албанский
ha Хауса sr Сербский
haw Гавайский sr-latn Сербский (латиница)
he Иврит sr-me Черногорский
hi Хинди st Южный сото
hr Хорватский su Сунданский
ht Гаитянский sv Шведский
hu Венгерский sw Суахили
hy Армянский ta Тамильский
ia Интерлингва te Телугу
id Индонезийский tg Таджикский
ig Игбо th Тайский
is Исландский ti Тигринья
it Итальянский tk Туркменский
iw Иврит tl Тагалог
ja Японский tn Тсвана
jw Яванский to Тонганский
ka Грузинский tr Турецкий
kg Конго tt Татарский
kk Казахский tum Тумбука
kl Гренландский tw Тви
km Кхмерский ug Уйгурский
kn Каннада uk Украинский
ko Корейский ur Урду
kri Крио uz Узбекский
ku Курдский (курманджи) vi Вьетнамский
ky Киргизский wo Волоф
la Латинский xh Коса
lg Ганда yi Идиш
ln Лингала yo Йоруба
lo Лаосский zh-cn Китайский (упрощённый)
loz Лози zh-hk Китайский (Гонконг)
lt Литовский zh-tw Китайский (традиционный)
lua Луба-лулуа zu Зулу
lv Латышский

Что выбрать под задачу

Если не передать ничего о месте - ни страну, ни язык, ни регион, ни uule, ни координаты, - API подставит Москву с gl=ru и hl=ru. Подробности - в документации.

Примеры

curl "https://jsonseo.ru/api/google?q=новости&gl=by&hl=ru&key=ВАШ_КЛЮЧ"
curl "https://jsonseo.ru/api/google?q=hotel+berlin&gl=de&hl=de&key=ВАШ_КЛЮЧ"
curl "https://jsonseo.ru/api/google?q=weather&gl=in&hl=hi&key=ВАШ_КЛЮЧ"

Таблицы строятся из того же справочника, по которому API проверяет параметры gl и hl.


Читайте дальше

Страны, рынки и языки в Bing: mkt, cc и setlang

Можно запросить Катар и получить московскую выдачу. Разбираем, кто из трёх параметров за что отвечает, и даём полные списки — те же, по которым API проверяет запросы.