Один ринок, дві мови пошуку
Google — головний пошуковик України: за StatCounter, у серпні 2026 року на нього припадало близько 91% переходів із пошуку. Яндекс і Mail.ru заблоковано в Україні в травні 2017 року указом Президента про санкції.
В Україні шукають і українською, і російською, а сайти відповідають обома мовами. З 16 липня 2022 року стаття 27 закону про державну мову вимагає, щоб сайти компаній, які продають в Україні, за замовчуванням відкривалися українською; версії іншими мовами дозволені, і чимало магазинів і сервісів тримають російську.
Для відстеження позицій це означає, що одне товарне ключове слово насправді є двома, а мова інтерфейсу людини, яка шукає, — третьою змінною. Заміри нижче показують, наскільки кожна з них змінює топ-10.
Що ми виміряли
16 жовтня 2026 року між 08:41 і 08:44 UTC ми надіслали дев'ять запитів до API Serper.live з country UA і отримали топ-10 органічних результатів, на desktop, якщо не вказано інше. Український ринок шукає з профілю браузера в Києві з локаллю uk-UA; без параметра language Google отримує hl=uk.
| Пошук | Інтерфейс | Спільне з парою | Російські заголовки |
|---|---|---|---|
купити ноутбук (українською) |
hl=uk |
— | 0 з 10 |
купить ноутбук (російською) |
hl=uk |
6 з 10 доменів | 0 з 10 |
купить ноутбук (російською) |
hl=ru |
5 з 10 доменів | 6 з 10 |
як оформити ФОП (українською) |
hl=uk |
— | 0 з 10 |
как оформить ФОП (російською) |
hl=uk |
7 з 8 доменів | 0 з 10 |
как оформить ФОП (російською) |
hl=ru |
6 з 8 доменів | 2 з 10 |
ремонт телефонів київ (українською) |
hl=uk |
— | 0 з 10 |
ремонт телефонов киев (російською) |
hl=uk |
5 з 10 доменів | 8 з 10 |
купити ноутбук на mobile |
hl=uk |
6 з 10 доменів | 0 з 10 |
Кожен російський пошук з hl=uk порівнюємо з українським над ним, кожен пошук з hl=ru — з тим самим запитом з hl=uk, а mobile — з desktop. У видачі за ФОП вісім різних доменів, бо YouTube займає три місця. Заголовок вважаємо російським, коли він написаний російською; заголовки, однакові обома мовами, як-от «Ноутбуки», не зараховуємо до жодної.
Українські й російські ключі ранжуються по-різному
Найбільше збігаються товарні запити. Для «купити ноутбук» і «купить ноутбук» шість із десяти доменів однакові, і п'ять із них стоять на тих самих позиціях. Проте чотири магазини з кожного топ-10 в іншому немає зовсім.
Інформаційні запити тримають ті самі сайти в іншому порядку. Для «як оформити ФОП» сім із восьми доменів повторюються, але diia.gov.ua опускається з #1 за українським запитом на #5 за російським, а privatbank.ua піднімається з #7 на #1.
Найдужче розходяться локальні послуги. Для ремонту телефонів у Києві повторюються лише п'ять доменів, restore.com.ua переходить із #7 на #1, а вісім із десяти результатів за російським запитом мають російські заголовки. У цій вибірці магазини відповідали на російський запит українськими сторінками, а сервіси — російськими.
Мова інтерфейсу ще раз змінює видачу
Параметр hl — це мова інтерфейсу Google, а не запиту. Після перемикання з uk на ru для того самого російського запиту про ноутбуки лишилося тільки п'ять спільних доменів, шість заголовків стали російськими, а aligator.com.ua, якого з hl=uk не було, вийшов на #1. rozetka.com.ua з'явилася двічі: на #2 з українським заголовком і на #5 з російським.
Для запиту про ФОП перемикання привело в топ-10 два російськомовні посібники, від dilovod.ua і fop.freelancehunt.com, і повернуло diia.gov.ua на #1.
Якою мовою інтерфейсу користується ваша аудиторія, залежить від налаштувань браузера й Google, і жоден API цього не бачить. Якщо не впевнені, відстежуйте обидві: це ще одна перевірка на ключ.
Мобільна видача — окремий рейтинг
На mobile «купити ноутбук» мав шість спільних доменів із desktop. rozetka.com.ua зайняла #1 і #2, kvshop.com.ua опустився з #3 на #7, а три магазини з'явилися лише на mobile. Якщо більшість відвідувачів приходить зі смартфонів, позиція на desktop — не та цифра, яку варто звітувати.
Як налаштувати відстеження позицій для України
- Запишіть кожну потребу обома мовами й зберігайте варіанти як окремі ключові слова: «купити ноутбук» і «купить ноутбук» — це два рядки, а не один.
- Надсилайте
countryUAі задавайтеlanguageявно,ukабоru, а не покладайтеся на типове значення. Зберігайте його з кожною позицією, щоб наступні перевірки порівнювали однакове з однаковим. - Перевіряйте
desktopіmobileокремо, якщо для вас важливий розподіл трафіку. - Шукайте результати за полем
domain. Двомовний сайт може стояти в одному топ-10 двічі, тож зберігайте кожну позицію або хоча б найкращу й кількість. - Повторюйте перевірки за розкладом і звітуйте про тренд, а не про один результат: Google змінює видачу між перевірками.
curl -s -X POST https://api.serper.live/v1/search \
-H "Authorization: Bearer sl_live_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query":"купить ноутбук","country":"UA","language":"ru"}' \
| jq '[.organic[] | select(.domain == "example.com.ua") | .position]'
const checks = [
{ query: 'купити ноутбук', language: 'uk' },
{ query: 'купить ноутбук', language: 'uk' },
{ query: 'купить ноутбук', language: 'ru' },
];
for (const check of checks) {
const response = await fetch('https://api.serper.live/v1/search', {
method: 'POST',
headers: {
Authorization: 'Bearer sl_live_YOUR_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ ...check, country: 'UA', device: 'desktop' }),
signal: AbortSignal.timeout(100000),
});
const { organic } = await response.json();
const positions = organic.filter(row => row.domain === 'example.com.ua').map(row => row.position);
console.log(check.query, check.language, positions);
}
import requests
CHECKS = [
("купити ноутбук", "uk"),
("купить ноутбук", "uk"),
("купить ноутбук", "ru"),
]
for query, language in CHECKS:
response = requests.post(
"https://api.serper.live/v1/search",
headers={"Authorization": "Bearer sl_live_YOUR_TOKEN"},
json={"query": query, "country": "UA", "language": language, "device": "desktop"},
timeout=100,
)
organic = response.json()["organic"]
positions = [row["position"] for row in organic if row["domain"] == "example.com.ua"]
print(query, language, positions)
В Україні перевірка топ-10 коштує $0.01; приклади на JavaScript і Python роблять три перевірки. На сторінці цін є всі ринки. Про розклад і зберігання позицій — у посібнику з відстеження позицій.
Чого ці дані не показують
- Один знімок на пошук. Google змінює видачу між перевірками й з часом, тож повторіть перевірку, перш ніж робити висновки з однієї позиції.
- Країна, а не місто. Український профіль шукає з Києва, а API обирає країну, мову й пристрій, але не місто. Локальний запит для Львова чи Одеси там може ранжуватися інакше.
- Лише органічні результати. Реклама, блок карт та інші елементи Google не входять до
organic[], тож позиція рахується серед органічних результатів. - Заголовки обирає Google. Мова заголовка показує, яку версію сторінки Google вирішив показати, а не все, що пропонує сайт.