Если вы создаёте сайт на WordPress, который рассчитан на один язык, часто возникает задача избавиться от лишних языковых меток в верстке, таких как атрибуты lang или теги hreflang. Это важно для оптимизации SEO и корректного восприятия страницы поисковыми системами и браузерами. В этой статье мы подробно разберём, как удалить или скрыть языковую верстку в WordPress, какие инструменты для этого использовать, а также приведём практические примеры кода.
Почему важно управлять языковой версткой в WordPress
По умолчанию многие темы и плагины WordPress добавляют языковые атрибуты, чтобы поддерживать мультиязычность и улучшать SEO. Например, в HTML-элементах добавляется lang="ru-RU", а в заголовке страницы – ссылки с hreflang для разных языков.
Если ваш сайт однопользовательский и локализован только на русском языке, дополнительные языковые метки могут создавать путаницу для поисковых систем и мешать корректной индексации. В таком случае рекомендуется удалить или скрыть эти языковые атрибуты.
Также избыточная языковая разметка может влиять на скорость загрузки страницы и усложнять работу с кэшированием.
Как удалить атрибут lang из тега html в WordPress
По умолчанию WordPress добавляет атрибут lang в тег <html> через функцию language_attributes(). Чтобы убрать этот атрибут, можно применить фильтр или переопределить вывод.
Способ 1: Переопределение функции language_attributes через фильтр
В файл functions.php вашей темы или в плагин добавьте следующий код:
function wplang_remove_lang_attribute($output) {
// Убираем атрибут lang и xml:lang
$output = str_replace(array('lang="'.get_bloginfo('language').'"', 'xml:lang="'.get_bloginfo('language').'"'), '', $output);
return $output;
}
add_filter('language_attributes', 'wplang_remove_lang_attribute');
Этот код убирает стандартный вывод языковых атрибутов, оставляя тег <html> без них.
Способ 2: Полное удаление вызова language_attributes
Если в вашей теме в файле header.php используется вызов <html , вы можете заменить его на просто <html>. Но это менее гибко и может привести к проблемам с доступностью.
Как отключить и удалить теги hreflang из WordPress
Теги hreflang автоматически добавляются плагинами мультиязычности (например, WPML, Polylang) или SEO-плагинами (Yoast SEO, Rank Math) для указания поисковым системам языковых версий страниц.
Если вы не используете мультиязычность, стоит отключить их, чтобы избежать избыточной разметки.
Отключение hreflang в Yoast SEO
В Yoast SEO теги hreflang генерируются автоматически при активном мультиязычном плагине. Чтобы их отключить, можно использовать фильтр:
add_filter('wpseo_alternate_hreflang', '__return_false');
Добавьте этот код в functions.php, чтобы полностью убрать hreflang.
Удаление hreflang в Polylang
В Polylang отключить hreflang можно через настройки плагина, сняв галочку с “Добавлять hreflang”. Если такой настройки нет, можно использовать фильтр:
add_filter('pll_get_hreflang', '__return_empty_array');
Примеры плагинов для управления языковой версткой
Для более удобного управления языковыми атрибутами и SEO можно использовать специализированные плагины:
- Clearfy Pro (https://wpshop.ru/plugins/clearfy-pro/?utm_source=wplang.ru&utm_medium=article&utm_campaign=kak-udalit-ili-skryt-verstku-yazyka-v-wordpress) — позволяет отключать ненужные метатеги, в том числе языковую разметку.
- WPML и Polylang — для мультиязычности с настройками языковых атрибутов.
- Yoast SEO — дает удобный контроль над hreflang и языковой разметкой.
Кастомные решения: скрытие языка для SEO и пользователей
Если вам нужно скрыть языковые метки только на фронтенде, при этом не нарушая функциональность админки и плагинов, можно использовать JavaScript или CSS. Но лучше решать проблему на уровне PHP, чтобы не создавать лишние нагрузки.
Пример функции для удаления lang в body и html
function wplang_remove_lang_body_html() {
add_filter('language_attributes', '__return_empty_string');
add_filter('body_class', function($classes) {
return array_diff($classes, ['lang-ru']); // если есть класс с языком
});
}
add_action('init', 'wplang_remove_lang_body_html');
Выводы и рекомендации
Удаление или скрытие языковой верстки в WordPress важно для одностраничных и однородных по языку сайтов, чтобы улучшить SEO и избежать путаницы поисковиков. Используйте фильтры WordPress для удаления атрибутов lang и тегов hreflang, а также настройте SEO-плагины для отключения лишней разметки.
Рекомендуется тестировать сайт после внесения изменений с помощью инструментов Google Search Console и валидаторов HTML, чтобы убедиться в корректности отображения и индексации.