В процессе разработки и оптимизации сайта на WordPress одним из важных аспектов является чистота и корректность HTML-кода. Часто можно столкнуться с проблемой, когда в <head> страницы выводятся пустые теги <meta>, например, <meta name="description" content=""> или <meta name="keywords" content="">. Такие пустые теги могут негативно повлиять на SEO и воспринимаются поисковыми системами как неаккуратность в разметке. В этой статье подробно разберем, как удалить пустые meta-теги в WordPress без использования плагинов, используя собственные функции и хуки.
Почему важно удалять пустые meta-теги в WordPress
Пустые meta-теги — это не просто лишний код, они:
- Увеличивают объем HTML и могут негативно сказаться на скорости загрузки;
- Мешают поисковым системам корректно индексировать страницу;
- Могут привести к дублированию контента в метаинформации;
- Отражают неаккуратность в работе с сайтом, что важно для SEO-специалистов и разработчиков.
Поэтому, особенно при кастомной разработке тем или интеграциях, стоит контролировать вывод meta-тегов.
Где в WordPress появляются пустые meta-теги?
По умолчанию WordPress выводит несколько стандартных meta-тегов, например, описание страницы, ключевые слова, viewport и другие. Пустые теги чаще всего появляются из-за отсутствия заполненных полей в настройках темы или SEO-плагинах. Например, пустое поле «Описание» в настройках темы или Yoast SEO может привести к выводу пустого meta description.
Также тема может самостоятельно добавлять meta-теги через функцию wp_head. Если эти функции не проверяют наличие контента перед выводом, мы и получаем пустые теги.
Удаление пустых meta-тегов с помощью кода в functions.php
Рассмотрим практическое решение. Чтобы удалить пустые meta-теги, нужно перехватить вывод функции wp_head и отфильтровать или убрать пустые meta. Сделать это можно разными способами, но оптимальным будет использование буфера вывода и регулярных выражений.
Добавьте следующий код в файл functions.php вашей темы или дочерней темы:
function wpcource_remove_empty_meta_tags() {
ob_start('wpcource_filter_empty_meta_tags');
}
add_action('wp_head', 'wpcource_remove_empty_meta_tags', 0);
function wpcource_filter_empty_meta_tags($html) {
// Регулярное выражение для поиска пустых meta-тегов
$pattern = '/<meta[^>]+content=("|'')\s*("|'')[^>]*>/i';
// Удаляем все пустые meta
$html = preg_replace($pattern, '', $html);
// Дополнительно удалим meta с пустым содержимым content=""
$html = preg_replace('/<meta[^>]+content=("|'')\s*("|'')[^>]*>/i', '', $html);
return $html;
}
function wpcource_end_buffer() {
ob_end_flush();
}
add_action('wp_head', 'wpcource_end_buffer', 9999);Этот код запускает буферизацию вывода в момент вызова wp_head и фильтрует содержимое, удаляя все meta-теги с пустым атрибутом content. В итоге пустые теги не попадут в HTML страницы.
Пояснения к коду
ob_startначинает буферизацию вывода.- Функция
wpcource_filter_empty_meta_tagsприменяет регулярное выражение, которое находит и удаляет пустые meta-теги. ob_end_flushзавершает буферизацию и выводит отфильтрованный контент.
Другие способы удаления пустых meta-тегов
Удаление через SEO-плагины
Если вы используете SEO-плагины, такие как Yoast SEO, Rank Math или All in One SEO, рекомендуется проверить настройки метаописания и ключевых слов. Часто пустые теги появляются из-за незаполненных полей в настройках. В Yoast SEO, например, можно отключить вывод meta description на отдельных типах записей или задать шаблоны с проверкой на пустые поля.
Удаление через фильтры темы
В некоторых темах meta-теги формируются через фильтры и функции, например, wpseo_metadesc в Yoast или theme_slug_meta_description. В таких случаях можно переопределить функции, чтобы они не выводили пустые значения:
add_filter('wpseo_metadesc', 'wpcource_custom_meta_description');
function wpcource_custom_meta_description($desc) {
if (empty(trim($desc))) {
return false; // Отключаем вывод meta description
}
return $desc;
}Этот пример показывает, как отключить вывод meta description, если он пустой, в SEO-плагине Yoast.
Пример использования плагина Clearfy Pro для очистки meta-тегов
Если вы предпочитаете использовать готовое решение, рекомендуем обратить внимание на плагин Clearfy Pro. Он позволяет управлять выводом meta-тегов и отключать ненужные, в том числе пустые, без необходимости писать код. Особенно полезен для пользователей, которые хотят быстро оптимизировать сайт без глубокого погружения в разработку.
Clearfy Pro имеет удобный интерфейс, где можно отключить вывод пустых meta description, keywords и других тегов, а также оптимизировать работу SEO-плагинов.
Итоги и рекомендации
Удаление пустых meta-тегов — важный шаг в оптимизации и чистоте кода WordPress-сайта. Мы рассмотрели, как сделать это без плагинов, используя буферизацию и регулярные выражения, а также через фильтры SEO-плагинов. Для удобства и быстрого решения можно использовать Clearfy Pro с официальной страницы.
Рекомендуется регулярно проверять исходный код страниц на наличие таких пустых тегов и контролировать настройки SEO-плагинов и темы. Это повысит качество сайта и улучшит его позиции в поисковой выдаче.