Мета-теги играют ключевую роль в SEO и отображении сайта в поисковых системах и социальных сетях. При большом количестве страниц и записей вручную управлять мета-тегами сложно и неэффективно. В этой статье разберём, как автоматизировать работу с мета-тегами в WordPress, используя собственный код и готовые решения, и как интегрировать это с популярными плагинами.
Почему важна автоматизация мета-тегов в WordPress
Мета-теги — это элементы HTML, которые описывают содержание страницы. Основные из них — title, description, robots, Open Graph и Twitter Card теги для соцсетей.
Преимущества автоматизации:
- Экономия времени при публикации большого объёма контента;
- Единый стиль и структура мета-тегов на всём сайте;
- Уменьшение ошибок и пропусков в заполнении;
- Возможность гибкой настройки под разные типы записей.
Без автоматизации нужны постоянные ручные правки, что снижает эффективность SEO-работ.
Создание базовой автоматизации мета-тегов с помощью кода
Рассмотрим, как с помощью хука wp_head вывести мета-теги динамически, используя данные из записи.
Добавьте в functions.php вашей темы или в плагин следующий код:
function wpsolution_generate_meta_tags() {
if (is_singular()) {
global $post;
$title = get_the_title($post->ID);
$description = get_post_meta($post->ID, '_wpsolution_meta_description', true);
if (empty($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";
// Open Graph
echo "<meta property=\"og:title\" content=\"" . esc_attr($title) . "\" />\n";
echo "<meta property=\"og:description\" content=\"" . esc_attr($description) . "\" />\n";
echo "<meta property=\"og:type\" content=\"article\" />\n";
}
}
add_action('wp_head', 'wpsolution_generate_meta_tags');Этот код выводит заголовок и описание, используя кастомное поле _wpsolution_meta_description, если оно есть, или подрезает первые 30 слов из контента. Также добавляются базовые Open Graph теги.
Для удобства редактирования мета-описания добавим метабокс в админке:
function wpsolution_add_meta_box() {
add_meta_box('wpsolution_meta', 'Мета-описание', 'wpsolution_meta_box_callback', 'post', 'normal', 'high');
}
add_action('add_meta_boxes', 'wpsolution_add_meta_box');
function wpsolution_meta_box_callback($post) {
wp_nonce_field('wpsolution_save_meta_box_data', 'wpsolution_meta_box_nonce');
$value = get_post_meta($post->ID, '_wpsolution_meta_description', true);
echo '<textarea style="width:100%;" rows="4" name="_wpsolution_meta_description">' . esc_textarea($value) . '</textarea>';
}
function wpsolution_save_meta_box_data($post_id) {
if (!isset($_POST['wpsolution_meta_box_nonce'])) return;
if (!wp_verify_nonce($_POST['wpsolution_meta_box_nonce'], 'wpsolution_save_meta_box_data')) return;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if (!current_user_can('edit_post', $post_id)) return;
if (!isset($_POST['_wpsolution_meta_description'])) return;
$data = sanitize_textarea_field($_POST['_wpsolution_meta_description']);
update_post_meta($post_id, '_wpsolution_meta_description', $data);
}
add_action('save_post', 'wpsolution_save_meta_box_data');Теперь при редактировании записи можно добавлять уникальное описание для мета-тега, которое будет автоматически выводиться на странице.
Использование плагинов для расширенной автоматизации
Для большинства проектов удобнее применять специализированные плагины, которые позволяют управлять мета-тегами без кода и с большим функционалом.
Yoast SEO
Самый популярный SEO-плагин, который позволяет:
- Автоматически генерировать title и description;
- Управлять Open Graph и Twitter Card;
- Настраивать шаблоны для разных типов записей;
- Проверять SEO-анализ и читаемость контента.
Yoast SEO отлично подходит для большинства сайтов, но иногда может быть избыточен и замедлять работу сайта.
Clearfy Pro
Плагин Clearfy Pro предлагает не только ускорение сайта и оптимизацию, но и расширенные возможности SEO, включая управление мета-тегами и удаление лишних тегов из HEAD для улучшения скорости.
Custom Meta Tags by WPSolution (приватный пример)
Если вы хотите полностью контролировать процесс, можно создать свой плагин, который будет автоматически добавлять мета-теги на основе правил, например, подтягивать данные из ACF, таксономий или пользовательских полей. Это полезно для проектов с нестандартной структурой данных.
Пример расширенной автоматизации: мета-теги для таксономий и CPT
Чтобы расширить автоматизацию и добавить поддержку кастомных типов записей и таксономий, можно модифицировать функцию вывода мета-тегов:
function wpsolution_generate_meta_tags_extended() {
if (is_singular()) {
global $post;
$title = get_the_title($post->ID);
$description = get_post_meta($post->ID, '_wpsolution_meta_description', true);
if (empty($description)) {
$description = wp_trim_words(strip_tags($post->post_content), 30);
}
} elseif (is_tax() || is_category() || is_tag()) {
$term = get_queried_object();
$title = single_term_title('', false);
$description = term_description($term->term_id, $term->taxonomy);
if (empty($description)) {
$description = 'Просмотр записей в категории ' . $title;
}
} else {
$title = get_bloginfo('name');
$description = get_bloginfo('description');
}
echo "<title>" . esc_html($title) . "</title>\n";
echo "<meta name=\"description\" content=\"" . esc_attr($description) . "\" />\n";
echo "<meta property=\"og:title\" content=\"" . esc_attr($title) . "\" />\n";
echo "<meta property=\"og:description\" content=\"" . esc_attr($description) . "\" />\n";
echo "<meta property=\"og:type\" content=\"" . (is_singular() ? 'article' : 'website') . "\" />\n";
}
remove_action('wp_head', 'wpsolution_generate_meta_tags');
add_action('wp_head', 'wpsolution_generate_meta_tags_extended');Такой подход позволит корректно добавлять мета-теги не только к записям, но и к категориям, тегам и другим таксономиям.
Советы по оптимизации и тестированию мета-тегов
Автоматизация не должна мешать качеству. Важно:
- Проверять выдачу мета-тегов в исходном коде страницы;
- Использовать инструменты Facebook Sharing Debugger и Twitter Card Validator для проверки Open Graph и Twitter тегов;
- Регулярно обновлять и поддерживать шаблоны в коде или настройках плагина;
- Добавлять уникальные описания для ключевых страниц вручную, если это необходимо.
Для сайтов с большим количеством контента удобно использовать плагин WPRemark, который имеет инструменты для массового редактирования SEO-полей и мета-описаний.