Метаданные играют ключевую роль в SEO, помогая поисковым системам лучше понимать содержание страниц вашего сайта. В WordPress по умолчанию можно задать статические метатеги, но для улучшения позиций и повышения релевантности лучше использовать динамические метаданные, которые меняются в зависимости от контента и условий.
Зачем нужны динамические метаданные в WordPress
Статические метатеги, прописанные в шаблоне, часто не отражают особенности каждой отдельной страницы или записи. Например, одинаковый title и description на всех страницах плохо влияют на ранжирование и привлекательность сниппета в поиске.
Динамические метаданные позволяют:
- Автоматически подставлять название записи, категории или тега в title и description.
- Использовать метаинформацию из пользовательских полей (Custom Fields).
- Формировать уникальные метатеги для страниц архива, поиска, авторов и других.
- Улучшить кликабельность сниппетов за счёт более точного описания.
Для реализации динамических метаданных можно использовать плагины и кодовые решения.
Использование плагина Clearfy Pro для динамических метаданных
Плагин Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wpstandart.ru&utm_medium=article&utm_campaign=kak-dobavit-dinamicheskie-metadannye-v-wordpress-dlya-luchshego-seo) включает удобный модуль SEO, который позволяет гибко настраивать шаблоны метатегов.
С его помощью можно задать шаблоны для title и description, используя переменные, например:
%title%— название записи или страницы;%sitename%— название сайта;%excerpt%— отрывок записи;%category%— название категории.
Плагин автоматически подставит значения, формируя уникальные метаданные для каждой страницы без необходимости ручного редактирования.
Настройка Clearfy Pro для динамических метаданных
После установки и активации плагина:
- Перейдите в раздел Clearfy Pro > SEO.
- В настройках title и description задайте шаблоны с переменными.
- Сохраните изменения и проверьте исходный код страниц через браузер.
Добавление динамических метаданных через код в functions.php
Если нужен более тонкий контроль или вы хотите избежать нагрузки от дополнительных плагинов, динамические метаданные можно добавить вручную с помощью хуков WordPress.
Рассмотрим пример создания функции для динамического title и description, которая будет работать на страницах записей и страницах:
function wpstandart_dynamic_meta_tags() {
if (is_singular()) {
global $post;
$title = get_the_title($post->ID) . ' | ' . get_bloginfo('name');
$description = has_excerpt($post->ID) ? get_the_excerpt($post->ID) : wp_trim_words(strip_tags($post->post_content), 25);
echo '<title>' . esc_html($title) . '</title>\n';
echo '<meta name="description" content="' . esc_attr($description) . '" />\n';
} elseif (is_front_page() || is_home()) {
$title = get_bloginfo('name') . ' - ' . get_bloginfo('description');
echo '<title>' . esc_html($title) . '</title>\n';
echo '<meta name="description" content="' . esc_attr(get_bloginfo('description')) . '" />\n';
}
}
add_action('wp_head', 'wpstandart_dynamic_meta_tags', 1);Эта функция выводит в <head> страницы уникальный title и description для одиночных записей и главной страницы, используя заголовок, отрывок и описание из настроек сайта.
Расширение функции для категорий и тегов
Чтобы добавить метаданные для архивов категорий и тегов, дополните функцию:
function wpstandart_dynamic_meta_tags() {
if (is_singular()) {
global $post;
$title = get_the_title($post->ID) . ' | ' . get_bloginfo('name');
$description = has_excerpt($post->ID) ? get_the_excerpt($post->ID) : wp_trim_words(strip_tags($post->post_content), 25);
echo '<title>' . esc_html($title) . '</title>\n';
echo '<meta name="description" content="' . esc_attr($description) . '" />\n';
} elseif (is_category()) {
$category = get_queried_object();
$title = single_cat_title('', false) . ' | ' . get_bloginfo('name');
$description = category_description($category->term_id);
echo '<title>' . esc_html($title) . '</title>\n';
if ($description) {
echo '<meta name="description" content="' . esc_attr(strip_tags($description)) . '" />\n';
}
} elseif (is_tag()) {
$tag = get_queried_object();
$title = single_tag_title('', false) . ' | ' . get_bloginfo('name');
$description = tag_description($tag->term_id);
echo '<title>' . esc_html($title) . '</title>\n';
if ($description) {
echo '<meta name="description" content="' . esc_attr(strip_tags($description)) . '" />\n';
}
} elseif (is_front_page() || is_home()) {
$title = get_bloginfo('name') . ' - ' . get_bloginfo('description');
echo '<title>' . esc_html($title) . '</title>\n';
echo '<meta name="description" content="' . esc_attr(get_bloginfo('description')) . '" />\n';
}
}
add_action('wp_head', 'wpstandart_dynamic_meta_tags', 1);Дополнительные советы по работе с динамическими метаданными в WordPress
Используйте пользовательские поля для уникальных описаний
Вместо стандартного отрывка можно добавить пользовательское поле, например seo_description, и выводить его в метатег description, если оно заполнено. Это позволит создавать уникальные описания для каждой записи, которые не зависят от контента.
function wpstandart_dynamic_meta_tags() {
if (is_singular()) {
global $post;
$title = get_the_title($post->ID) . ' | ' . get_bloginfo('name');
$custom_desc = get_post_meta($post->ID, 'seo_description', true);
if ($custom_desc) {
$description = $custom_desc;
} elseif (has_excerpt($post->ID)) {
$description = get_the_excerpt($post->ID);
} else {
$description = wp_trim_words(strip_tags($post->post_content), 25);
}
echo '<title>' . esc_html($title) . '</title>\n';
echo '<meta name="description" content="' . esc_attr($description) . '" />\n';
}
// Остальной код без изменений
}
add_action('wp_head', 'wpstandart_dynamic_meta_tags', 1);Проверяйте валидность и длину метаданных
Для SEO важно, чтобы title и description не превышали рекомендуемую длину (title — около 60 символов, description — до 160). В коде можно добавить обрезку и очистку текста, чтобы избежать ошибок и потери индексации.
Используйте плагины для комплексного SEO
Если задача выходит за рамки простого динамического вывода метатегов, рассмотрите использование комплексных SEO-плагинов, например Clearfy Pro или Yoast SEO. Они обеспечивают автоматическую генерацию метаданных, карты сайта, микроразметку и многое другое.