Пустые HTML-теги и мета-теги, которые не несут полезной информации, могут негативно влиять на SEO и замедлять загрузку страниц. В WordPress часто встречается ситуация, когда темы или плагины выводят пустые <meta>-теги или пустые контейнеры в HTML, что ухудшает качество кода и может вызвать ошибки при валидации.
Почему важно удалять пустые теги и мета-теги в WordPress
Пустые теги не только делают код громоздким, но и:
- Ухудшают SEO, так как поисковые системы могут воспринять их как нерелевантный или спам-код.
- Увеличивают размер страницы, что влияет на скорость загрузки.
- Могут вызвать проблемы с валидацией HTML и, как следствие, с отображением на некоторых устройствах.
Поэтому важно уметь эффективно очищать вывод WordPress и тем, и плагинов от таких элементов.
Как найти и убрать пустые мета-теги через functions.php
Первый способ — добавить фильтр в файл functions.php вашей темы, который будет удалять пустые мета-теги из <head>. Например, если в теме выводятся мета-теги с пустым содержимым, можно перехватить их вывод и удалить.
Пример функции для удаления пустых мета-тегов:
function wpshab_remove_empty_meta_tags() {
ob_start(function($buffer) {
// Удаляем пустые мета-теги вида <meta name="..." content="">
$buffer = preg_replace('/<meta\s+[^>]*content=\"\"[^>]*>/i', '', $buffer);
// Удаляем пустые теги <div></div>, <span></span> и подобные
$buffer = preg_replace('/<(div|span|p)[^>]*>\s*<\/\1>/i', '', $buffer);
return $buffer;
});
}
add_action('template_redirect', 'wpshab_remove_empty_meta_tags', 0);Эта функция запускается до рендеринга страницы и убирает из HTML пустые мета-теги и пустые контейнеры, которые часто остаются после динамического вывода.
Пояснение к коду
ob_startзапускает буферизацию вывода — весь HTML сначала собирается в буфер.- Регулярные выражения ищут теги с пустым атрибутом
content=""и пустые контейнеры. - Убраные теги не попадут в итоговый HTML.
Использование плагинов для удаления пустых тегов и оптимизации head
Если вы не хотите писать код вручную, можно воспользоваться специализированными плагинами, которые облегчают управление выводом мета-тегов и оптимизацию <head>:
- Clearfy Pro — мощный плагин для оптимизации WordPress, который включает возможность удаления лишних и пустых тегов из
<head>, а также очистку от неиспользуемых скриптов и стилей. - Head Cleaner — бесплатный плагин, который позволяет отключать ненужные мета-теги и очищать шапку сайта от мусора.
Clearfy Pro дополнительно позволяет автоматизировать процесс и настраивать исключения, что полезно при сложных темах.
Удаление пустых тегов из контента: пример фильтра для wpautop
Иногда пустые теги появляются в самом контенте постов, особенно если используется автоматическое форматирование WordPress через wpautop. Чтобы убрать пустые абзацы и другие пустые контейнеры, можно добавить фильтр:
function wpshab_remove_empty_tags_from_content($content) {
// Удаляем пустые абзацы
$content = preg_replace('/<p>\s*<\/p>/i', '', $content);
// Удаляем пустые <div>
$content = preg_replace('/<div>\s*<\/div>/i', '', $content);
return $content;
}
add_filter('the_content', 'wpshab_remove_empty_tags_from_content');Этот код помогает избавиться от пустых элементов, которые могут появиться после копипаста или неаккуратной верстки в редакторе.
Как проверить, что удаление пустых тегов не сломало функциональность
После внедрения автоматического удаления пустых тегов важно тщательно проверить:
- Корректность отображения страниц — убедитесь, что важные элементы не удалены.
- Отсутствие ошибок в консоли браузера.
- SEO-параметры — проверьте, что мета-теги, необходимые для поисковиков, остались.
Для теста используйте инструмент W3C Validator, чтобы убедиться в валидности HTML.
Дополнительные советы по оптимизации head и контента
Помимо удаления пустых тегов, рекомендую:
- Использовать ABC Pagination для оптимизации пагинации без лишних тегов.
- Автоматизировать управление мета-тегами через SEO-плагины, например, Clearfy Pro, который интегрируется с популярными SEO-плагинами.
- Периодически проверять код на наличие неиспользуемых CSS и JS с помощью встроенных в Clearfy функций.
Таким образом, вы не только избавитесь от пустых тегов, но и сделаете сайт легче и быстрее.