movar.fyi

Глибше

Чому так стається

На головній — коротка версія: сайти за замовчуванням віддають російську, навіть коли ви просили українську. Довша версія — це купа дрібних збоїв, де кожен сам по собі має пояснення, але разом вони складаються в той самий результат. Ця сторінка проходить увесь цей ланцюжок — що запитує ваш браузер, що декларує сторінка, що вгадує детектор, що показує пошуковик, що поверх цього пише ШІ, що з вашим вибором роблять двомовні сайти, і як власники сайтів переносять цей результат у бюджети наступного року.

01

Детектори мов вгадують за літерами

Вони не читають сторінки — вони обирають мову, чий тренувальний корпус має найбільше збігів за n-грамами. Для кирилиці це російська.

  • Великі детектори — CLD2 і CLD3, fastText, плюс власні варіанти пошуковиків — натреновані на корпусах, де російський веб приблизно впʼятеро більший за український (за даними W3Techs, російською написано 3,4% сайтів проти 0,7% українською). Коли текст неоднозначний, вибір падає на більший корпус.
  • Короткі запити не дотягують до порога впевненості детектора. Запит з одного-двох слів — наприклад, «новини» чи «погода» — не несе достатньо сигналу, щоб перебити початкове припущення. А для кирилиці це припущення — російська.
  • В української та російської спільні більшість службових слів, чимало лексики й майже вся абетка. Сторінка, де ця спільна лексика переважає — картка товару, меню, підвал сторінки, — за замовчуванням класифікується як мова з більшим корпусом.
  • Сторінки зі змішаними мовами зводяться до одного ярлика. Українська стаття з російською секцією коментарів читається як одне ціле й отримує тег «російська»; українська картка товару серед російських відгуків — те саме.
  • Транслітерований текст узагалі випадає з поля зору кириличних детекторів. Українські імена латинкою — Volodymyr, Kyiv, Lviv — читаються як англійська. Так само й будь-який український текст, записаний латинкою — у дописах чи в URL-адресах.

02

Сторінки декларують свою мову — і помиляються

HTML має стандартні способи позначати мову. Більшість сайтів або пропускають їх, або заповнюють неправильно, або суперечать самі собі в різних механізмах.

  • <html lang="ru"> на сторінці, яка насправді українською — найчастіший випадок. Зворотне — українська розмітка на російському змісті — трапляється приблизно так само часто. Мовар спочатку читає атрибут, а коли значення виглядає ненадійним, запускає власне визначення.
  • Вкладені атрибути lang на одній сторінці суперечать одне одному. Українська оболонка, що огортає <div lang="ru"> з основним контентом — формально коректна розмітка, але марна для будь-якого правила рівня сайту, якому потрібна одна відповідь.
  • <link rel="alternate" hreflang> вказує на URL-адреси, у яких <html lang> однакові — кожен «альтернативний» варіант декларує ту саму мову. У Мовара є запобіжник саме на цей випадок — без нього розширення ганялося б за власним хвостом по зламаному графу hreflang.
  • og:locale, og:locale:alternate та meta http-equiv="Content-Language" зазвичай суперечать одне одному й <html lang>. Якому сигналу довіряє конкретний робот, той і перемагає.
  • inLanguage зі Schema.org та xhtml:link rel="alternate" у sitemap декларують, що українська версія існує. Відкриваєш URL — а тіло сторінки досі російською: CMS публікує запис раніше, ніж зʼявляється переклад.
  • <title> і <h1> сторінки — однією мовою, тіло — іншою. Google індексує заголовок; читачі читають тіло.
  • Машинерія, що вирішує, яку версію показати в пошуку й як її підписати, довіряє тому, що сайт декларує — lang, hreflang, структурі URL, sitemap, — а не тому, що насправді в тексті. Звірити одне з одним нікому: російська сторінка потрапляє в індекс як українська, а ви фільтруєте видачу за українською і отримуєте російські результати з українською биркою.

03

Транспортний шар ігнорує те, що запитує ваш браузер

Ваш браузер з кожним запитом надсилає Accept-Language: uk. Більшість серверів цього не враховують.

  • Багато серверів читають лише перші два символи Accept-Language, ігнорують q-параметр або зважають на заголовок лише на першому запиті — а потім кешують це рішення на весь сеанс.
  • CDN кешують відповіді лише за URL. Варіант, який отримав перший відвідувач — зазвичай російський, бо ринок більший, — потім дістається всім іншим, у кого збігається ключ кешу.
  • Geo-IP перебиває заголовок. Браузер з налаштуванням «українська» у закордонній мережі отримує російську, незважаючи на заголовок. Браузер з налаштуванням «російська» всередині України — навпаки. Жодна з двох поведінок не збігається із заявленою.
  • Застарілі теги локалі ru-UA лишаються в старіших інсталяціях і профілях акаунтів. Одні сервери трактують їх як російську, інші як українську; обидві відповіді помиляються приблизно в половині випадків.
  • Кука, поставлена одним випадковим кліком, перебиває кожен Accept-Language, який ви надсилаєте потім. Кука живе довше за вибір, який її поставив, — часто роками.

04

Пошуковики тримають мову на трьох окремих осях

Мова інтерфейсу, мова результатів і визначена мова запиту — це три різні налаштування. Всі три мають збігтися, перш ніж ви надійно отримаєте українські результати.

  • У Google hl= керує мовою інтерфейсу, тоді як lr= і cr= фільтрують результати. Зміна одного не чіпає другого. Визначена мова запиту — третя вісь поверх обох.
  • Картка-довідка — та, що стоїть поряд із результатами — формується з найактивнішої Вікіпедії для відповідної сутності. Зазвичай це англійська або російська, незалежно від мови інтерфейсу. Українська Вікіпедія менша, тож картка щоразу спирається на більше джерело.
  • У Wikidata є багатомовні мітки для більшості сутностей, але картка користується ними лише вище певного порогу кількості редакторів. Нижче порогу картка знову бере англійську чи російську, а українська мітка лежить без діла.
  • YouTube тримає мову інтерфейсу, мову запиту й мову рекомендацій як три незалежні сигнали. Поставити інтерфейс на українську ще нічого не каже системі рекомендацій про те, що саме рекомендувати.
  • Україномовний індекс структурно менший за російський. Ранжування частково відносне — російський результат із середніми сигналами може обійти український із тими самими сигналами просто тому, що його корпус щільніший.

05

ШІ відповідає мовою своїх джерел

У пошуку виростає шар відповідей — ШІ-огляди й чат-асистенти, які замість списку посилань пишуть готову відповідь. Відповідь приходить тією мовою, якою написані джерела.

  • Відповідь ШІ складається зі сторінок, знайдених за вашим запитом. Коли найсильніші джерела за кириличним запитом — російські, відповідь виходить російською. Навіть коли інтерфейс — українською, а налаштування пошуку просять українські сторінки.
  • Мовне налаштування пошуку фільтрує, які посилання потраплять у видачу. Воно не обмежує, що напише генератор відповіді — обидва видно на одному екрані: інтерфейс український, фільтр результатів український, а над ними — російська відповідь.
  • Українські компанії самі це підгодовують. Український виробник, чиї сторінки товарів написані російською, стає російським джерелом — і його цитують українським покупцям російською, вище за всі звичайні результати.
  • Виправити це постфактум неможливо. Відповідь, згенерована російською, — це російський текст; машинний переклад лише вдягнув би його в українське. Чесних варіантів рівно два: показати як є — або не показувати взагалі.
  • Єдиний важіль — корпус. Ці системи відповідають з того, що можуть прочитати, тож кожна сторінка, яку український сайт публікує українською, зсуває шальку терезів: більше українських джерел сьогодні — більше українських відповідей завтра. Через шар відповідей перехід на українську важить подвійно.

06

Двомовні сайти за замовчуванням ведуть на більший ринок

Сайти, що мають і українську, і російську версію, все одно за замовчуванням видають російську — а шлях до української рідко буває очевидним.

  • Російська версія займає корінь сайту, українська живе за /uk/, /ua/ або на окремому піддомені. Клік по результату пошуку — і ви на російській.
  • Перемикач захований у самому низу сторінки, за гамбургер-меню чи під значком прапора, який легко пропустити. Більшість відвідувачів його ніколи не знаходить.
  • Кука вибору живе тільки в межах одного піддомену. Перейти з www.example.com на shop.example.com — і вибір скидається.
  • Налаштування привʼязане до акаунта. Перегляд без входу — а це більшість відвідувань — щоразу починається із замовчування.
  • Мовні версії в CMS розходяться. Український переклад відстає від російського оригіналу на тижні, тож відвідувач, що потрапив на українську за замовчуванням, бачить застарілий контент — і сам перемикається на російську. Власники сайтів читають цю аналітику й роблять висновок, що читачі хочуть саме російської.

07

Українська версія є — але на правах додаткової

Припустімо, ви таки дісталися української версії. Рівною вона буває рідко — і тут причина вже не технічна, а людська.

  • Її роблять «щоб була», а далі підтримують за залишковим принципом. Кнопки, службові повідомлення, помилки у формі замовлення, підказки й сторонні віджети лишаються російськими — вони просто лежать не в тому файлі, який перекладали.
  • Вбудований у сайт чат-бот відповідає російською, хай би якою мовою ви до нього писали. Це окремий продукт із власною мовною логікою, і мовне налаштування сайту до нього не дотягується.
  • Банери та інфографіка намальовані російською. Підпис усередині картинки — робота дизайнера, а не рядок у файлі перекладу, тож текст локалізують, а зображення лишають як є.
  • Сам переклад часто машинний і невичитаний — той, де «электропитание» стає «електрохарчуванням», електричний котел — «казаном», а «две недели» доставки — «двома неділями» замість двох тижнів.
  • Формально українська версія є. Насправді ви читаєте суміш — і саме вона підштовхує повернутися на російську, де принаймні все написано людиною.

08

У переліку мов російської немає — а в стрічці вона є

Окремий випадок — маркетплейси, дошки оголошень і все, де вміст пишуть самі користувачі.

  • Інтерфейс там буває бездоганно українським, а в перемикачі мов російської немає навіть у списку — обирати можна хіба між українською та англійською.
  • Але картки товарів, описи, характеристики й відгуки — російською, бо мову вмісту не перевіряє ніхто. Платформа локалізує свою оболонку, а не те, що в неї заливають продавці й дописувачі.
  • Перемикати тут нема на що. Сторінка справді українська — російські в ній лише окремі блоки, тож жоден вибір мови на рівні сайту цього не виправить.
  • Саме тому вердикт для всієї сторінки тут марний: потрібен окремий висновок для кожної картки. Це і є та межа, за якою мовне налаштування закінчується, а починається фільтр вмісту.

09

Сторінка — це не весь досвід

Навіть українська сторінка приходить загорнутою в речі, які сама сторінка не може перекласти.

  • Зображення несуть неперекладений текст — банери, інфографіка, рекламні макети, знімки екрана. Перемкнути їх на рівні сторінки нічим: кожна картинка — окреме рішення, якого сторінка не ухвалює.
  • Вбудовані плеєри — відео з YouTube, картки Twitter, кліпи Spotify, Vimeo, SoundCloud — не переймають мову сторінки, в яку вставлені. Кожен плеєр вирішує сам, за власними сигналами.
  • Магазини мобільних застосунків в українських локалях віддають російські описи й знімки екрана, навіть коли в самому застосунку є українська локалізація. Сторінка в магазині застосунків публікується окремо від самого застосунку.
  • Транзакційні листи, push-сповіщення й розсилки нерідко ігнорують мовне налаштування сайту й користуються тією мовою, яка була за замовчуванням під час створення акаунта.
  • Alt-текст і ARIA-мітки лишаються мовою, якою їх написали, навіть коли сторінку переклали. Користувачі зчитувачів екрана чують з тієї самої сторінки іншу мову, ніж бачать зрячі.

10

Економіка тече назад у технологію

Усе це мало б бути невидимим для власників сайтів. Але це не так — і коло стискається само.

  • Аналітика повідомляє, що «більшість читачів обрала російську». Рішення ухвалював не читач, а сам сайт. Сигнал, з якого виростають інвестиції наступного року, — це попередня поведінка самого сайту, а не справжній вибір читачів.
  • Машинно перекладені українські версії читаються погано, тож читачі обирають російський оригінал — помилка вцілілого, яку метрики записують в уподобання.
  • Замовчування операційних систем — Windows, що продавався в Україні з російською, телефони, налаштовані ще до того, як українська зʼявилася серед мов інтерфейсу, — просочуються в кожен сигнал вище й рідко скидаються.
  • У підсумку замикається коло. Менша україномовна аудиторія цьогоріч — менше замовленого українського контенту наступного року. Менше контенту — менший індекс. Менший індекс — детектори й ранжувальники ще сильніше хиляться до російської. Сильніше замовчування — ще менша україномовна аудиторія через рік. Коло крутиться само.
  • Найкраще це коло видно там, де цифри публічні. Опитування Steam показує, якою мовою користувачі запускають клієнт: станом на липень 2026-го російська — третя мова платформи з 9,3%, українська — пʼятнадцята з 0,7%. Видавці дивляться саме в цю таблицю, вирішуючи, які локалізації замовляти. Гравець, у якого клієнт стоїть російською за звичкою, щороку підтверджує аргумент «українською майже ніхто не грає».
  • Важіль працює і в інший бік. За останні роки українська в Steam уже обійшла італійську — 0,70% проти 0,63%, — мову, для якої локалізації замовляли за замовчуванням десятиліттями.

Що Мовар може, а чого не може

Мовар може виправити те, що відбувається у вашому браузері: запит, який надсилає браузер, адресу, яку ви відвідуєте, параметри, додані до пошуку, перемикач мови, який Мовар уже знає для конкретного сайту. Він не може правити закешовані відповіді CDN, виправляти мовні теги в неправильно класифікованих статтях Вікіпедії, перекладати тексти на зображеннях, змусити ШІ написати відповідь українською чи переписати економіку. Але правильна робота на рівні браузера — передумова для всього іншого: доки сигнал від самих читачів не стане чистим, ніхто далі в ланцюжку його не прочитає.

Як Мовар визначає мову — і за якими правилами діє