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

Разметка для мультиязычных страниц

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

Одна организация — несколько языковых страниц

Главный принцип: организация, товар или автор остаются одной сущностью независимо от языка страницы. Меняется описание страницы, а не сама сущность. Поэтому идентификатор организации делают общим для всех версий, а страницы каждого языка ссылаются на него.

Organizationобщий @idWebPage ruinLanguage: ruWebPage eninLanguage: enWebPage deinLanguage: de
Organizationобщий @idWebPage ruinLanguage: ruWebPage eninLanguage: enWebPage deinLanguage: de
Один идентификатор организации на все языковые версии

Что переводить, а что оставлять общим

Перевод свойств в мультиязычной разметке
СвойствоКак поступать
name, headline, descriptionПереводить на язык страницы
inLanguageУказывать язык каждой страницы
price, priceCurrencyУказывать актуальные для региона версии
@id организации, брендаОставлять общим для всех языков
urlАдрес именно этой языковой версии
addressФормат и язык записи по стране адреса

Пример

{
  "@context": "https://schema.org",
  "@type": "WebPage",
  "@id": "https://example.com/en/delivery/#webpage",
  "url": "https://example.com/en/delivery/",
  "inLanguage": "en",
  "name": "Delivery",
  "isPartOf": { "@id": "https://example.com/#website" }
}

Идентификатор сайта общий, а страница описана на своём языке. О связывании сущностей — в статье про @id.

Согласованность версий

  • Разметка каждой версии описывает содержимое именно этой версии, а не «оригинала».
  • Цена и валюта соответствуют региону: не оставляйте рубли на английской версии для другой страны.
  • Связь версий между собой задаётся атрибутом hreflang, а не разметкой Schema.org — это разные механизмы. Подробно — в статье про атрибут hreflang.

Типичные ошибки

Ошибки разметки на многоязычном сайте
ОшибкаПоследствиеКак исправить
Одинаковое название на всех языкахСтраницы выглядят непереведённымиПереводить name и описание
Разные @id организации на разных языкахОдна компания воспринимается как несколькоИспользовать общий идентификатор
Неверный код в inLanguageЯзык страницы определяется неточноИспользовать коды ISO, например ru, en
Цена без учёта регионаПользователь видит неподходящую валютуУказывать валюту версии

Как не вести разметку вручную для каждого языка

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

С чего начать внедрение

  1. Определите общие сущности — организацию, сайт, бренды — и закрепите за ними единые идентификаторы.
  2. Для каждой языковой версии сформируйте описание страницы с указанием языка и переведёнными названием и описанием.
  3. Проверьте, что ссылки между версиями заданы отдельно — атрибутом hreflang, а не разметкой данных.
  4. Выборочно проверьте разметку по одной странице каждого языка в валидаторе.

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

Нужно ли создавать отдельную Organization для каждого языка?

Нет: организация остаётся одной сущностью с общим идентификатором, а страницы разных языков ссылаются на неё.

Заменяет ли разметка inLanguage атрибут hreflang?

Нет: inLanguage описывает язык страницы, а hreflang связывает языковые версии между собой для поисковой системы.

Как быть с ценами в разных регионах?

Указывать цену и валюту, актуальные именно для региона данной версии страницы.

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

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