Метаданные играют ключевую роль в SEO и удобстве работы сайта. Они помогают поисковым системам лучше индексировать страницы и улучшают отображение вашего сайта в результатах поиска. В этой статье мы подробно рассмотрим, как создавать уникальные метаданные для страниц WordPress, используя как плагины, так и собственные решения с примерами кода.
Зачем нужны уникальные метаданные для каждой страницы WordPress
Стандартный WordPress не всегда генерирует уникальные метаданные для всех страниц, особенно если вы используете одинаковые шаблоны или повторяющийся контент. Это негативно сказывается на SEO — поисковики могут считать такие страницы дублированными и понизить их в выдаче.
Уникальные метаданные включают в себя title, description, Open Graph теги для социальных сетей и другие. Их правильная настройка улучшает кликабельность и повышает релевантность страницы для поисковых систем.
Кроме SEO, метаданные влияют на то, как ваш сайт выглядит в социальных сетях и при предпросмотре ссылок, что важно для привлечения аудитории.
Использование плагинов для создания уникальных метаданных
Самый простой способ — использовать специализированные плагины. Рассмотрим три популярных решения с кратким обзором:
- Yoast SEO — позволяет задавать уникальные title и description для каждой страницы и поста, автоматически генерирует Open Graph теги, поддерживает анализ SEO.
- Clearfy Pro — помимо оптимизации сайта, включает расширенные настройки метаданных, возможность автоматического создания шаблонов для title и description.
- All in One SEO Pack — простой и функциональный плагин с возможностью гибкой настройки метаданных и интеграцией с социальными сетями.
Для примера, чтобы задать уникальный title и description в Yoast, достаточно открыть страницу в админке, перейти в блок SEO и заполнить соответствующие поля.
Преимущества плагинов
- Простота установки и настройки
- Автоматизация и шаблоны
- Поддержка социальных метаданных
- Регулярные обновления и поддержка
Недостатки
- Нагрузка на сайт
- Часто лишний функционал, не всегда нужный
- Ограниченная возможность кастомизации
Создание уникальных метаданных с помощью кода в functions.php
Если вы хотите контролировать процесс и минимизировать использование плагинов, можно добавить собственные функции для генерации метаданных. Ниже приведён пример, как создать уникальные title и description для страниц и записей.
function wpeducation_custom_meta_tags() {
if (is_singular()) {
global $post;
$title = get_post_meta($post->ID, '_wpeducation_meta_title', true);
$description = get_post_meta($post->ID, '_wpeducation_meta_description', true);
if (!$title) {
$title = get_the_title($post->ID) . ' – ' . get_bloginfo('name');
}
if (!$description) {
$description = wp_trim_words(strip_tags($post->post_content), 30);
}
echo "<title>" . esc_html($title) . "</title>\n";
echo "<meta name=\"description\" content=\"" . esc_attr($description) . "\" />\n";
} elseif (is_home() || is_front_page()) {
echo "<title>" . get_bloginfo('name') . " – " . get_bloginfo('description') . "</title>\n";
echo "<meta name=\"description\" content=\"" . get_bloginfo('description') . "\" />\n";
}
}
add_action('wp_head', 'wpeducation_custom_meta_tags');Этот код выводит уникальные title и description для отдельных постов и страниц, используя метаполя _wpeducation_meta_title и _wpeducation_meta_description. Если они не заданы, генерируется title из заголовка и описания из первых 30 слов контента.
Чтобы добавить эти метаполя в редактор, можно использовать следующий код для добавления мета-боксов:
function wpeducation_add_meta_boxes() {
add_meta_box('wpeducation_meta', 'Мета данные SEO', 'wpeducation_meta_box_callback', 'post', 'normal', 'high');
add_meta_box('wpeducation_meta', 'Мета данные SEO', 'wpeducation_meta_box_callback', 'page', 'normal', 'high');
}
add_action('add_meta_boxes', 'wpeducation_add_meta_boxes');
function wpeducation_meta_box_callback($post) {
wp_nonce_field('wpeducation_save_meta', 'wpeducation_meta_nonce');
$title = get_post_meta($post->ID, '_wpeducation_meta_title', true);
$description = get_post_meta($post->ID, '_wpeducation_meta_description', true);
echo '<p><label>Title:<br /><input type="text" name="_wpeducation_meta_title" value="' . esc_attr($title) . '" style="width:100%" /></label></p>';
echo '<p><label>Description:<br /><textarea name="_wpeducation_meta_description" rows="4" style="width:100%">' . esc_textarea($description) . '</textarea></label></p>';
}
function wpeducation_save_meta($post_id) {
if (!isset($_POST['wpeducation_meta_nonce']) || !wp_verify_nonce($_POST['wpeducation_meta_nonce'], 'wpeducation_save_meta')) {
return;
}
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
if (isset($_POST['_wpeducation_meta_title'])) {
update_post_meta($post_id, '_wpeducation_meta_title', sanitize_text_field($_POST['_wpeducation_meta_title']));
}
if (isset($_POST['_wpeducation_meta_description'])) {
update_post_meta($post_id, '_wpeducation_meta_description', sanitize_textarea_field($_POST['_wpeducation_meta_description']));
}
}
add_action('save_post', 'wpeducation_save_meta');Автоматическое создание шаблонов метаданных для архивов и кастомных типов записей
Для архивов категорий, тегов и пользовательских типов записей также важно иметь уникальные метаданные. В функции выше стоит расширить логику, например:
function wpeducation_custom_meta_tags() {
if (is_singular()) {
// как выше
} elseif (is_category()) {
$category = get_queried_object();
echo "<title>Категория: " . esc_html($category->name) . " – " . get_bloginfo('name') . "</title>\n";
echo "<meta name=\"description\" content=\"Публикации из категории " . esc_attr($category->name) . "\" />\n";
} elseif (is_tag()) {
$tag = get_queried_object();
echo "<title>Метки: " . esc_html($tag->name) . " – " . get_bloginfo('name') . "</title>\n";
echo "<meta name=\"description\" content=\"Публикации с меткой " . esc_attr($tag->name) . "\" />\n";
} elseif (is_post_type_archive()) {
$post_type = get_post_type();
echo "<title>Архив " . esc_html($post_type) . " – " . get_bloginfo('name') . "</title>\n";
echo "<meta name=\"description\" content=\"Архив записей типа " . esc_attr($post_type) . "\" />\n";
} else {
// дефолтные метаданные
}
}
add_action('wp_head', 'wpeducation_custom_meta_tags');Это позволит для страниц архива выводить осмысленные метаданные без плагинов.
Поддержка Open Graph и Twitter Cards
Для улучшения внешнего вида ссылок в соцсетях добавим Open Graph и Twitter Cards метатеги. Это можно сделать, расширив функцию:
function wpeducation_social_meta_tags() {
if (is_singular()) {
global $post;
$title = get_post_meta($post->ID, '_wpeducation_meta_title', true) ?: get_the_title($post->ID);
$description = get_post_meta($post->ID, '_wpeducation_meta_description', true) ?: wp_trim_words(strip_tags($post->post_content), 30);
$image = get_the_post_thumbnail_url($post->ID, 'full') ?: get_template_directory_uri() . '/images/default-image.jpg';
echo "<meta property=\"og:title\" content=\"" . esc_attr($title) . "\" />\n";
echo "<meta property=\"og:description\" content=\"" . esc_attr($description) . "\" />\n";
echo "<meta property=\"og:image\" content=\"" . esc_url($image) . "\" />\n";
echo "<meta name=\"twitter:card\" content=\"summary_large_image\" />\n";
echo "<meta name=\"twitter:title\" content=\"" . esc_attr($title) . "\" />\n";
echo "<meta name=\"twitter:description\" content=\"" . esc_attr($description) . "\" />\n";
echo "<meta name=\"twitter:image\" content=\"" . esc_url($image) . "\" />\n";
}
}
add_action('wp_head', 'wpeducation_social_meta_tags');Этот код выводит теги Open Graph и Twitter Card, что улучшит внешний вид ваших ссылок при репостах.
Использование плагина Clearfy Pro для расширенного SEO и метаданных
Если вы хотите получить расширенные возможности по оптимизации, рекомендую обратить внимание на Clearfy Pro. Этот плагин позволяет не только настраивать метаданные, но и оптимизировать работу сайта, отключать лишние функции WordPress, ускорять загрузку и многое другое.
Clearfy Pro поддерживает шаблоны для title и description, что удобно для крупных сайтов с большим количеством страниц. Также есть интеграция с социальными метаданными и настройка микроразметки.
Заключение по созданию уникальных метаданных
Уникальные метаданные — обязательный элемент качественного сайта на WordPress. Их можно настроить как с помощью популярных плагинов, так и реализовать самостоятельно, добавив кастомный код. Важно, чтобы метаданные были осмысленными, уникальными и релевантными содержимому каждой страницы.
Используйте приведённые в статье примеры, адаптируйте под свои задачи, и вы повысите видимость сайта в поисковых системах и улучшите взаимодействие с пользователями.