Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Проектирование

Мультиязычный сайт: папки, поддомены или отдельные домены

Языковые версии можно разместить тремя способами, и обратный ход стоит дорого. Разбираем, чем они отличаются и как формировать адреса внутри каждой версии.

Три схемы

СхемаПримерВес доменаСложность
Папкиsite.com/en/catalog/ОбщийНизкая
Поддоменыen.site.com/catalog/Частично раздельныйСредняя
Отдельные доменыsite.co.uk/catalog/РаздельныйВысокая

Для большинства проектов подходит первая схема: одна установка сайта, один сертификат, общий вес домена и минимум настройки. Отдельные домены нужны, когда версии реально независимы — своя команда, свой ассортимент, свой рынок.

Основной язык в корне

Частый вопрос: класть ли основную версию в папку. Два рабочих варианта:

Вариант 1:  site.ru/          русская
            site.ru/en/       английская

Вариант 2:  site.ru/ru/       русская
            site.ru/en/       английская

Первый проще и не требует переезда существующих страниц. Второй симметричнее и удобнее, если языков будет много. Для работающего сайта почти всегда выбирают первый: переносить весь русский раздел в папку ради симметрии не окупается.

Адреса внутри версий

Здесь совершают главную ошибку: копируют русские транслитерированные адреса в английскую версию.

Плохо:   site.com/en/sadovye-kacheli/
Хорошо:  site.com/en/garden-swings/

Английская версия предназначена для англоязычного посетителя, и адрес должен быть на его языке. Транслит русского слова ему ничего не говорит и не совпадает с его запросом — об этом в статье про транслит и транскрипцию.

Обратное правило тоже верно: в русской версии адреса делаются транслитом по таблице Яндекса, а не переводом на английский.

Одна страница — один язык. Не смешивайте языки внутри одной страницы и не переключайте язык параметром без смены адреса. Версия на другом языке — это отдельный документ с собственным URL.

Атрибут hreflang

Он сообщает поисковой системе, что страницы — языковые версии друг друга, и помогает показывать нужную версию нужной аудитории.

<link rel="alternate" hreflang="ru" href="https://site.com/catalog/" />
<link rel="alternate" hreflang="en" href="https://site.com/en/catalog/" />
<link rel="alternate" hreflang="x-default" href="https://site.com/" />

Правила простые и почти всегда нарушаемые:

  1. Ссылки взаимные: если русская страница указывает на английскую, английская должна указывать на русскую.
  2. Каждая страница указывает и на саму себя.
  3. Адреса полные и канонические.
  4. Значение x-default — версия по умолчанию для остальных стран.
  5. Разметка ставится на каждой странице, а не только на главной.

Canonical и языковые версии

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

Правила тега разобраны в отдельной статье про rel=canonical, для языковых версий действует то же правило «сам на себя».

Переключатель языков

  • Переключатель должен вести на ту же страницу в другой версии, а не на главную.
  • Ссылки в нём — обычные, доступные роботу, а не переходы на скриптах.
  • Автоматическое перенаправление по стране лучше не делать: робот придёт из одной страны и не увидит остальные версии.
  • Если определяете язык автоматически, предлагайте переключиться, но не перенаправляйте принудительно.

Что ещё нужно перевести

Языковая версия — это не только тексты страниц. Проверьте:

  • заголовки title и описания;
  • подписи к изображениям и имена файлов;
  • хлебные крошки и названия разделов;
  • страницу 404 и служебные сообщения;
  • карту сайта — адреса всех версий должны в ней быть.

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

Частичный перевод

Ситуация, с которой сталкивается почти каждый проект: переведена часть страниц, остальные существуют только на основном языке.

Что делать с непереведёнными:

  • не создавать пустые страницы-заглушки в языковой версии;
  • не подставлять машинный перевод — он вредит больше, чем отсутствие страницы;
  • не ставить hreflang на несуществующие адреса;
  • в переключателе языков вести на главную версии, если конкретной страницы нет.

Языковая версия из двадцати качественных страниц работает лучше, чем из двухсот машинно переведённых.

Язык и регион — разные вещи

Атрибут hreflang умеет указывать не только язык, но и страну: ru-RU, ru-KZ, en-US, en-GB. Это нужно, когда версии на одном языке различаются ценами, валютой или условиями доставки.

Разделять по странам стоит только при реальных различиях. Если сайт на русском одинаков для всех стран, достаточно указания языка без региона — лишнее дробление усложняет настройку и ничего не даёт.

Частые вопросы

Папки или поддомены для языковых версий?

Для большинства проектов папки: одна установка сайта, общий вес домена и простая настройка. Поддомены и отдельные домены нужны, когда версии по-настоящему независимы.

Можно ли использовать транслит русских слов в английской версии?

Нет. Англоязычному посетителю такой адрес ничего не говорит и не совпадает с его запросом. В английской версии адреса делаются переводом.

Куда должен указывать canonical на английской странице?

На саму себя. Указание на русскую версию выбрасывает английскую из индекса — это самая частая ошибка в мультиязычных проектах.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также