// Восстановление стандартной функции (function() { var original = Document.prototype.createElement; document.createElement = function() { return original.apply(document, arguments); }; })(); Language Meta Tag: атрибут lang и язык страницы для SEO

Language Meta Tag: как правильно указать язык документа через HTML

О чём материал

Что делает атрибут lang, чем он отличается от hreflang и как проверить язык страницы в HTML и WordPress.

При продвижении сайта в России и других странах важно правильно указать язык каждой страницы. Это особенно актуально для мультиязычных и мультирегиональных проектов, которые работают с пользователями из России, Казахстана, Беларуси, Армении, Узбекистана и других государств.

Российский сайт может индексироваться и показываться в поиске за пределами РФ. Но поисковым системам, браузерам и вспомогательным технологиям необходимо понимать, на каком языке написана конкретная страница.

Для этого часто используют термин Language Meta Tag — тег указания языка документа. Однако с технической точки зрения язык современной HTML-страницы следует указывать не обычным метатегом, а атрибутом lang в корневом элементе <html>.

Правильный вариант для русскоязычной страницы:

<html lang="ru">

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

Для международного проекта важно разделять язык текущей страницы и ссылки на её альтернативные версии. Подробнее о втором механизме — в статье про hreflang-разметку.

Что такое Language Meta Tag#

Language Meta Tag — распространённое название HTML-разметки, с помощью которой указывается основной язык содержимого страницы.

Фактически для этой задачи используется атрибут:

lang

Его рекомендуется размещать в открывающем теге <html>:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Продвижение сайта</title>
</head>
<body>
    <h1>Продвижение сайта в поисковых системах</h1>
</body>
</html>

Значение ru сообщает, что основное содержание документа написано на русском языке.

W3C рекомендует всегда указывать язык страницы с помощью атрибута lang именно в элементе <html>. Это значение наследуется остальными элементами документа.

Это соответствует рекомендации W3C по обозначению языка HTML-документа: основной язык задают в корневом элементе, а для иноязычных фрагментов используют собственный lang.

Почему название Language Meta Tag не совсем точное#

Раньше на сайтах можно было встретить такую конструкцию:

<meta http-equiv="Content-Language" content="ru">

Иногда используется и такой вариант:

<meta name="language" content="Russian">

Эти записи не следует считать основным способом указания языка современной HTML-страницы.

Корректная разметка:

<html lang="ru">

W3C не рекомендует использовать meta http-equiv="Content-Language" для обозначения языка текста страницы. Даже если сервер передаёт информацию о языке в HTTP-заголовке, язык содержимого всё равно следует указывать атрибутом lang в элементе <html>.

Поэтому в статье используется распространённый термин Language Meta Tag, но при технической настройке сайта необходимо применять именно атрибут lang.

Для чего нужен атрибут lang#

Правильное указание языка помогает различным системам корректно интерпретировать содержание страницы.

Атрибут lang используется для:

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

Например, программа экранного доступа может произнести русское слово неправильно, если в коде страницы указан английский язык.

В документации Google отдельно сказано: язык страницы определяется по видимому содержимому, а не по атрибуту lang.

Влияет ли lang на SEO#

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

Google указывает, что определяет язык страницы преимущественно по видимому содержимому, а не по URL или атрибуту lang. Поэтому нельзя создать русскую страницу, поставить:

<html lang="en">

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

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

Тем не менее правильный lang полезен, потому что:

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

Неправильно рассматривать lang как способ продвижения сам по себе. Это часть комплексной настройки вместе с отдельными URL, переводом контента, hreflang, внутренними ссылками и региональной адаптацией.

Основные языковые коды#

В значении lang используются стандартизированные языковые теги.

Примеры:

Язык Код Пример
Русский ru <html lang="ru">
Английский en <html lang="en">
Казахский kk <html lang="kk">
Белорусский be <html lang="be">
Армянский hy <html lang="hy">
Узбекский uz <html lang="uz">
Немецкий de <html lang="de">
Французский fr <html lang="fr">
Испанский es <html lang="es">
Китайский zh <html lang="zh">

Для обычной русскоязычной страницы достаточно:

<html lang="ru">

Для англоязычной:

<html lang="en">

Для страницы на казахском языке:

<html lang="kk">

Для белорусского языка используется код be, а не by:

<html lang="be">

Это важное различие:

  • be — код белорусского языка;
  • BY — код страны Беларусь.

Язык и регион#

При необходимости языковой тег можно дополнить кодом региона:

<html lang="ru-RU">

Здесь:

  • ru — русский язык;
  • RU — Россия.

Другие примеры:

<html lang="ru-KZ">

Русский язык для аудитории Казахстана.

<html lang="ru-BY">

Русский язык для аудитории Беларуси.

<html lang="en-US">

Английский язык для США.

<html lang="en-GB">

Английский язык для Великобритании.

Код языка обычно пишется строчными буквами, а код страны — прописными. Между ними ставится дефис.

Для обычной страницы на русском языке чаще всего достаточно:

<html lang="ru">

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

Примеры для российского сайта#

Предположим, российская компания выходит на рынки Казахстана и Беларуси.

Структура сайта:

site.ru/        — Россия
site.ru/kz/     — Казахстан
site.ru/by/     — Беларусь
site.ru/en/     — английская версия

Если страницы для России, Казахстана и Беларуси написаны на русском языке, возможна такая настройка:

<!-- Россия -->
<html lang="ru-RU">
<!-- Казахстан, русский язык -->
<html lang="ru-KZ">
<!-- Беларусь, русский язык -->
<html lang="ru-BY">
<!-- Английская версия -->
<html lang="en">

Если для Казахстана создан отдельный перевод на казахский язык:

<html lang="kk-KZ">

При этом атрибут lang должен соответствовать фактическому языку текста. Нельзя указывать kk-KZ, если основное содержание страницы осталось на русском языке.

Код региона в lang уточняет языковой вариант, но сам по себе не задаёт геотаргетинг в Google. Для региональной версии важнее отдельный URL, фактическое содержание и мультирегиональная SEO-структура.

Нужно ли указывать страну в lang#

Код страны не является обязательным.

Для большинства страниц достаточно языка:

<html lang="ru">

Уточнённый вариант:

<html lang="ru-KZ">

имеет смысл, если страница действительно предназначена для русскоязычных пользователей Казахстана и содержит региональные условия:

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

Добавление кода страны без реальной адаптации контента не превращает страницу в региональную версию и не гарантирует её продвижение в соответствующем государстве.

Схема альтернативных языковых версий сайта
lang описывает язык текущего документа, а hreflang связывает отдельные языковые или региональные URL.

Разница между lang и hreflang#

Атрибуты lang и hreflang выполняют разные задачи.

Атрибут lang#

Указывает язык текущего документа или отдельного фрагмента:

<html lang="ru">

Он сообщает, что данная страница написана на русском языке.

Атрибут hreflang#

Связывает альтернативные языковые или региональные версии страницы:

<link rel="alternate"
      hreflang="ru-RU"
      href="https://site.ru/service/" />

<link rel="alternate"
      hreflang="ru-KZ"
      href="https://site.ru/kz/service/" />

<link rel="alternate"
      hreflang="ru-BY"
      href="https://site.ru/by/service/" />

<link rel="alternate"
      hreflang="en"
      href="https://site.ru/en/service/" />

Кратко различие можно представить так:

Атрибут Назначение
lang Указывает язык текущей страницы или фрагмента
hreflang Указывает альтернативные языковые и региональные URL
canonical Указывает предпочтительный адрес страницы
dir Определяет направление текста

lang не заменяет hreflang, а hreflang не отменяет необходимость правильно указывать язык документа.

Если языковые версии находятся в каталогах, смотрите подробный разбор Language Subdirectory. Для вариантов на поддоменах — Language Subdomain.

Как оформить мультиязычную страницу#

Для каждой языковой версии рекомендуется использовать отдельный URL.

Например:

site.ru/service/       — русский
site.ru/en/service/    — английский
site.ru/kk/service/    — казахский

Русская версия:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Продвижение сайта</title>

    <link rel="alternate"
          hreflang="ru"
          href="https://site.ru/service/" />

    <link rel="alternate"
          hreflang="en"
          href="https://site.ru/en/service/" />

    <link rel="alternate"
          hreflang="kk"
          href="https://site.ru/kk/service/" />
</head>
<body>
    <h1>Продвижение сайта</h1>
</body>
</html>

Английская версия:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Website Promotion</title>
</head>
<body>
    <h1>Website Promotion</h1>
</body>
</html>

Казахская версия:

<!DOCTYPE html>
<html lang="kk">
<head>
    <meta charset="UTF-8">
    <title>Сайтты ілгерілету</title>
</head>
<body>
    <h1>Сайтты ілгерілету</h1>
</body>
</html>

Google рекомендует использовать разные URL для разных языковых версий и связывать их с помощью hreflang. Автоматическая замена языка по настройкам браузера или принудительные перенаправления могут помешать поисковому роботу обнаружить все версии сайта.

Как обозначить фрагмент на другом языке#

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

В этом случае основной язык задаётся для документа:

<html lang="ru">

А для отдельного фрагмента указывается другое значение:

<p>
    Термин
    <span lang="en">Search Engine Optimization</span>
    переводится как поисковая оптимизация.
</p>

Для англоязычной цитаты:

<blockquote lang="en">
    Content is created primarily to benefit people.
</blockquote>

Для названия книги на французском языке:

<p>
    Книга называется
    <span lang="fr">Le Petit Prince</span>.
</p>

Это помогает программам экранного доступа изменить произношение только для нужного фрагмента.

Можно ли указывать lang в body#

Технически атрибут lang можно использовать на разных HTML-элементах:

<body lang="ru">

Однако основной язык документа рекомендуется задавать в элементе <html>:

<html lang="ru">

Элемент <html> охватывает весь документ, включая содержимое раздела <head>. Если поставить язык только в <body>, информация не будет распространяться на весь документ.

lang для арабского и других языков с направлением справа налево#

Атрибут lang указывает язык, но не всегда определяет правильное направление текста.

Для арабского языка используется:

<html lang="ar" dir="rtl">

Для иврита:

<html lang="he" dir="rtl">

Значение dir="rtl" сообщает браузеру, что основной текст необходимо отображать справа налево.

Для русского и английского языков обычно используется направление слева направо:

<html lang="ru" dir="ltr">

Указывать dir="ltr" необязательно, поскольку это стандартное направление, но в сложных мультиязычных интерфейсах оно может задаваться явно.

Когда нужно использовать коды письменности#

Некоторые языки используют несколько систем письменности.

Например, для китайского языка можно уточнить вариант:

<html lang="zh-Hans">

Упрощённая китайская письменность.

<html lang="zh-Hant">

Традиционная китайская письменность.

Для сербского языка:

<html lang="sr-Cyrl">

Сербский язык, кириллица.

<html lang="sr-Latn">

Сербский язык, латиница.

Для большинства российских коммерческих сайтов такие уточнения не требуются, но они важны при полноценном международном продвижении.

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

Как настроить lang в CMS#

WordPress#

В WordPress язык сайта обычно задаётся в административной панели:

Настройки → Общие → Язык сайта

После выбора система должна сформировать:

<html lang="ru-RU">

В теме WordPress рекомендуется использовать штатную функцию:

<html <?php language_attributes(); ?>>

Если в шаблоне жёстко прописано:

<html lang="en">

то после изменения языка в настройках значение может остаться неправильным.

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

Другие CMS#

В любой системе управления необходимо проверить:

  • где хранится язык сайта;
  • поддерживаются ли языки отдельных разделов;
  • меняется ли lang на региональных версиях;
  • не прописано ли одно значение во всех шаблонах;
  • правильно ли работает кэш;
  • соответствует ли язык фактическому содержимому.

Если CMS не поддерживает такую настройку, атрибут добавляется в общий шаблон страницы.

Как проверить язык документа#

Через исходный код#

Откройте страницу, выберите команду «Просмотреть код страницы» и найдите:

<html

Правильный пример:

<html lang="ru">

или:

<html lang="ru-RU">

Через инструменты разработчика#

В браузере можно нажать F12, открыть вкладку Elements и проверить корневой элемент документа.

Важно проверить не только исходный HTML, но и фактический DOM, если значение изменяется с помощью JavaScript.

С помощью валидатора#

HTML-разметку можно проверить валидатором. Он поможет обнаружить:

  • отсутствие языка;
  • неправильное расположение атрибута;
  • некорректный языковой код;
  • ошибки в структуре документа.

Через SEO-аудит#

При техническом аудите необходимо просканировать все страницы и сравнить:

  • URL;
  • фактический язык текста;
  • значение lang;
  • значение hreflang;
  • регион страницы;
  • канонический адрес;
  • статус индексации.

Типичные ошибки Language Meta Tag#

Атрибут lang отсутствует#

Страница не содержит явного указания основного языка:

<html>

Правильно:

<html lang="ru">

Указан неправильный язык#

На русскоязычной странице осталось значение из шаблона:

<html lang="en">

Такое часто встречается после покупки готовой темы или копирования иностранного шаблона.

Используется код страны вместо языка#

Неправильно:

<html lang="RU">

Правильно:

<html lang="ru">

RU обозначает страну, а ru — русский язык.

Неправильно для белорусского языка:

<html lang="by">

Правильно:

<html lang="be">

Используется подчёркивание#

Неправильно:

<html lang="ru_RU">

Правильно:

<html lang="ru-RU">

Между кодом языка и кодом региона ставится дефис.

В одном значении перечислено несколько языков#

Неправильно:

<html lang="ru,en">

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

Язык указан только через meta#

Недостаточно:

<meta http-equiv="Content-Language" content="ru">

Необходимо:

<html lang="ru">

На всех версиях стоит одно значение#

Русская, английская и казахская страницы получают:

<html lang="ru">

Каждая версия должна иметь собственное корректное значение.

lang меняется только через JavaScript#

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

Надёжнее сразу формировать корректный атрибут на сервере.

lang не соответствует содержанию#

На странице указано:

<html lang="kk">

но основной текст написан на русском. Формальное значение не заменяет полноценный перевод.

Путаются lang и hreflang#

На страницу добавляется lang, но отсутствуют ссылки на альтернативные версии. Или, наоборот, настроен hreflang, но язык документа указан неправильно.

Оба элемента необходимо проверять отдельно.

Чек-лист настройки#

Перед публикацией мультиязычного раздела следует проверить:

  1. Атрибут lang расположен в элементе <html>.
  2. Код соответствует фактическому языку страницы.
  3. Используется стандартизированный языковой тег.
  4. Код языка и региона разделены дефисом.
  5. Для каждой языковой версии установлено своё значение.
  6. Фрагменты на другом языке отмечены отдельно.
  7. Для языков справа налево настроен dir="rtl".
  8. Языковые версии имеют отдельные URL.
  9. Между страницами настроен hreflang.
  10. Пользователь может самостоятельно выбрать язык.
  11. Отсутствуют принудительные перенаправления.
  12. Навигация и основной контент написаны на одном языке.
  13. Значение не изменяется ошибочно из-за кэша.
  14. Настройки CMS соответствуют шаблону.
  15. Страницы проверены валидатором и SEO-сканером.

Наш опыт настройки Language Meta Tag#

Мы имеем опыт технической оптимизации мультиязычных и мультирегиональных сайтов. При проверке Language Meta Tag мы оцениваем не только наличие атрибута lang, но и согласованность всей международной структуры проекта.

В работу могут входить:

  • определение фактического языка страниц;
  • проверка языковых кодов;
  • исправление шаблона <html>;
  • настройка значений для разных разделов;
  • проверка языковых поддоменов и подкаталогов;
  • аудит hreflang;
  • проверка canonical;
  • настройка ссылок между языковыми версиями;
  • поиск страниц с неправильным языком;
  • проверка CMS и серверных шаблонов;
  • устранение ошибок кэширования;
  • проверка страниц, создаваемых JavaScript;
  • анализ индексации языковых разделов;
  • подготовка технического задания программисту;
  • контроль после внедрения изменений.

Мы рассматриваем lang как часть комплексного международного SEO. Само указание языка не заменяет перевод, локализацию и региональный контент, но помогает правильно оформить техническую структуру сайта.

Вывод#

Language Meta Tag — это распространённое название разметки, указывающей язык документа. В современном HTML для этой задачи необходимо использовать атрибут lang в элементе <html>.

Для русскоязычной страницы:

<html lang="ru">

Для английской:

<html lang="en">

Для страницы на казахском языке:

<html lang="kk">

Для русскоязычной версии, ориентированной на Казахстан:

<html lang="ru-KZ">

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

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

Следующий шаг

Обсудим ваш проект

Посмотрим на сайт, текущую видимость и предложим понятный план дальнейших действий.

Заказать консультацию
База знаний 2Е СТУДИЯ

Материалы по теме

Все публикации →
Session Watch Time
24 Сен

Session Watch Time — это показатель, который отражает суммарное время, которое пользователь провёл за просмотром одного видео в рамках конкретной сессии. Иными…

→
Обзор лучших текстовых редакторов
23 Сен

  Грамотность и читабельность текста важны для успешной коммуникации автора и читателя, а также для лучшего ранжирования сайта в поисковых системах. В…

→