Meta description — это важный элемент SEO, который влияет на привлекательность сниппета в поисковой выдаче и, косвенно, на CTR сайта. В стандартных условиях WordPress и даже в YoastSEO meta description задаётся статично или генерируется из содержимого страницы, что не всегда оптимально для всех типов контента. В этой статье разберём, как создать динамическое отображение meta description в WordPress, которое будет подстраиваться под тип записи, категорию или пользовательские поля, что значительно улучшит видимость сайта и повысит кликабельность.
Почему важно динамически менять meta description в WordPress
Стандартный подход к meta description — задавать его вручную в редакторе или использовать автоматическую генерацию, основанную на первых строках текста. Но это не всегда эффективно:
- Для разных категорий или типов записей нужны разные описания, отражающие их смысл.
- Похожие описания на разных страницах могут привести к дублированию и ухудшению SEO.
- Ручное заполнение meta description для большого сайта — трудоёмко и подвержено ошибкам.
Динамическая генерация решает эти проблемы, создавая уникальные и релевантные описания под каждую страницу автоматически.
Пример динамического meta description на PHP с использованием хуков WordPress и YoastSEO
YoastSEO позволяет через фильтр wpseo_metadesc изменять meta description программно. Рассмотрим пример функции, которая динамически формирует description в зависимости от типа записи и категории.
function yoastseo_dynamic_meta_description($description) {
if (is_singular('post')) {
$categories = get_the_category();
if (!empty($categories)) {
$cat_names = wp_list_pluck($categories, 'name');
$cat_list = implode(', ', $cat_names);
$desc = 'Читайте последние статьи в категориях: ' . $cat_list . '. ';
} else {
$desc = 'Читайте наши последние статьи и обзоры. ';
}
$excerpt = get_the_excerpt();
if ($excerpt) {
$desc .= wp_strip_all_tags($excerpt);
} else {
$desc .= get_bloginfo('description');
}
return wp_trim_words($desc, 25, '...');
} elseif (is_category()) {
$category = get_queried_object();
return 'Статьи и новости категории ' . esc_html($category->name) . '. Узнайте больше на нашем сайте.';
} elseif (is_front_page() || is_home()) {
return 'Добро пожаловать на наш блог о WordPress и SEO. Свежие советы и инструкции.';
}
return $description;
}
add_filter('wpseo_metadesc', 'yoastseo_dynamic_meta_description');В этом коде мы проверяем тип страницы и для постов создаём описание с перечислением категорий и кратким анонсом материала. Для категорий — формируем описание на основе названия категории. Для главной — своё приветствие. Такой подход поможет избежать дублирующихся описаний и повысит релевантность.
Использование пользовательских полей для динамического meta description
Часто в WordPress используются пользовательские поля для дополнительных данных. Можно генерировать description на их основе, что особенно полезно для магазинов или сайтов с большим количеством уникального контента.
Пример кода, который берёт значение пользовательского поля seo_description и подставляет его в meta description:
function yoastseo_custom_field_meta_description($description) {
if (is_singular()) {
global $post;
$custom_desc = get_post_meta($post->ID, 'seo_description', true);
if ($custom_desc) {
return wp_strip_all_tags($custom_desc);
}
}
return $description;
}
add_filter('wpseo_metadesc', 'yoastseo_custom_field_meta_description');Такой подход позволяет контент-менеджерам задавать уникальные описания без необходимости заходить в настройки плагина SEO.
Плагины для расширения возможностей динамического meta description
Кроме собственного кода, есть плагины, которые помогают управлять динамическими meta description более гибко:
- Dynamic SEO Content — позволяет создавать шаблоны для meta description с использованием переменных и условий.
- WP Meta SEO — содержит редактор массового управления мета-тегами и генерацию описаний.
- YoastSEO Premium — расширяет базовые возможности с автоматическими подсказками и улучшенной генерацией.
Если вы используете в проекте плагин Clearfy Pro, то в нём есть опции для оптимизации meta description и автоматического исправления ошибок, что дополнительно упрощает задачу.
Советы по написанию эффективных meta description для WordPress
Чтобы динамическое описание приносило максимальную пользу, придерживайтесь следующих рекомендаций:
- Длина описания должна быть от 120 до 160 символов, чтобы оно полностью отображалось в поиске.
- Используйте ключевые слова, релевантные содержимому страницы.
- Делайте описание привлекательным и побуждающим к клику, избегайте шаблонности.
- По возможности включайте призыв к действию или уникальное торговое предложение.
Динамическое формирование meta description в WordPress — это мощный инструмент, который при правильной реализации значительно улучшит SEO вашего сайта без дополнительной ручной работы.