Как добавить уникальные метаданные для страниц в GeneratePress

Одной из частых задач при работе с темой GeneratePress на WordPress является необходимость добавить уникальные метаданные для каждой страницы — заголовок (title), описание (description) и другие теги. Это существенно влияет на SEO и улучшает видимость сайта в поисковых системах.

Почему важно добавлять уникальные метаданные для страниц GeneratePress

По умолчанию тема GeneratePress выводит заголовки и описания, которые часто совпадают или не оптимальны. Поисковые системы предпочитают уникальные и релевантные метаданные для каждой страницы, что помогает лучше ранжировать сайт. Также правильные метаданные повышают кликабельность в результатах поиска.

Если вы используете плагины SEO (например, Yoast SEO или Rank Math), они могут автоматически управлять метаданными, но не всегда покрывают все случаи, особенно если хотите кастомные решения под конкретные страницы или типы записей. В таких случаях полезно знать, как добавить метаданные вручную прямо в GeneratePress.

Использование хуков GeneratePress для добавления метаданных

GeneratePress предоставляет удобные хуки, с помощью которых можно добавить метатеги в <head> сайта. Один из таких хуков — wp_head, куда можно вставить пользовательский PHP-код.

Ниже приведён пример функции, которая добавляет уникальный мета-тег description для страниц и записей:

function generatepressru_add_custom_meta_description() {
    if (is_singular()) { // Проверяем, что это страница или запись
        global $post;
        $description = get_post_meta($post->ID, '_generatepressru_meta_description', true);
        if (!$description) {
            // Если мета-описание не задано, используем первые 150 символов из контента
            $content = strip_tags($post->post_content);
            $description = mb_substr($content, 0, 150);
        }
        echo '<meta name="description" content="' . esc_attr($description) . '">\n';
    }
}
add_action('wp_head', 'generatepressru_add_custom_meta_description');

В этом примере функция проверяет, находится ли пользователь на странице или записи, затем пытается получить значение мета-поля _generatepressru_meta_description. Если оно не задано, берётся первые 150 символов из содержимого записи.

Как добавить поле для ввода мета-описания в админке

Чтобы сделать удобно задавать описание, добавим метабокс в редактор записей и страниц. Вот пример добавления метабокса с сохранением данных:

function generatepressru_add_meta_box() {
    add_meta_box(
        'generatepressru_meta_description',
        'Мета-описание для SEO',
        'generatepressru_meta_box_callback',
        ['post', 'page'],
        'normal',
        'high'
    );
}
add_action('add_meta_boxes', 'generatepressru_add_meta_box');

function generatepressru_meta_box_callback($post) {
    wp_nonce_field('generatepressru_save_meta_box_data', 'generatepressru_meta_box_nonce');
    $value = get_post_meta($post->ID, '_generatepressru_meta_description', true);
    echo '<label for="generatepressru_meta_description_field">Введите уникальное мета-описание:</label><br>';
    echo '<textarea id="generatepressru_meta_description_field" name="generatepressru_meta_description_field" rows="4" style="width:100%;">' . esc_textarea($value) . '</textarea>';
}

function generatepressru_save_meta_box_data($post_id) {
    if (!isset($_POST['generatepressru_meta_box_nonce'])) {
        return;
    }
    if (!wp_verify_nonce($_POST['generatepressru_meta_box_nonce'], 'generatepressru_save_meta_box_data')) {
        return;
    }
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    if (!current_user_can('edit_post', $post_id)) {
        return;
    }
    if (!isset($_POST['generatepressru_meta_description_field'])) {
        return;
    }
    $my_data = sanitize_textarea_field($_POST['generatepressru_meta_description_field']);
    update_post_meta($post_id, '_generatepressru_meta_description', $my_data);
}
add_action('save_post', 'generatepressru_save_meta_box_data');

Теперь при редактировании поста или страницы в админке появится поле для ввода уникального мета-описания, которое будет выводиться на сайте.

Добавление уникального заголовка страницы (title) в GeneratePress

Для заголовка <title> WordPress по умолчанию использует функцию wp_title() или современные методы. В GeneratePress заголовок формируется динамически, но можно изменить его программно с помощью фильтра pre_get_document_title.

Пример добавления уникального заголовка для определённых страниц:

function generatepressru_custom_document_title($title) {
    if (is_singular()) {
        global $post;
        $custom_title = get_post_meta($post->ID, '_generatepressru_custom_title', true);
        if ($custom_title) {
            return esc_html($custom_title);
        }
    }
    return $title;
}
add_filter('pre_get_document_title', 'generatepressru_custom_document_title');

Как и с описанием, нужно добавить метабокс для ввода кастомного заголовка:

function generatepressru_add_title_meta_box() {
    add_meta_box(
        'generatepressru_meta_title',
        'Кастомный заголовок страницы',
        'generatepressru_meta_title_box_callback',
        ['post', 'page'],
        'normal',
        'high'
    );
}
add_action('add_meta_boxes', 'generatepressru_add_title_meta_box');

function generatepressru_meta_title_box_callback($post) {
    wp_nonce_field('generatepressru_save_meta_title_data', 'generatepressru_meta_title_nonce');
    $value = get_post_meta($post->ID, '_generatepressru_custom_title', true);
    echo '<label for="generatepressru_meta_title_field">Введите кастомный заголовок:</label><br>';
    echo '<input type="text" id="generatepressru_meta_title_field" name="generatepressru_meta_title_field" value="' . esc_attr($value) . '" style="width:100%;" />';
}

function generatepressru_save_meta_title_data($post_id) {
    if (!isset($_POST['generatepressru_meta_title_nonce'])) {
        return;
    }
    if (!wp_verify_nonce($_POST['generatepressru_meta_title_nonce'], 'generatepressru_save_meta_title_data')) {
        return;
    }
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    if (!current_user_can('edit_post', $post_id)) {
        return;
    }
    if (!isset($_POST['generatepressru_meta_title_field'])) {
        return;
    }
    $my_data = sanitize_text_field($_POST['generatepressru_meta_title_field']);
    update_post_meta($post_id, '_generatepressru_custom_title', $my_data);
}
add_action('save_post', 'generatepressru_save_meta_title_data');

Использование плагинов для упрощения работы с метаданными в GeneratePress

Если вы не хотите внедрять код самостоятельно, можно воспользоваться плагинами, которые обеспечивают гибкое управление метаданными и хорошо совместимы с GeneratePress:

  • Yoast SEO — самый популярный SEO-плагин, позволяет задавать title и description для каждой страницы и записи через удобный интерфейс.
  • Rank Math SEO — мощный и лёгкий SEO-плагин с расширенными функциями и поддержкой метаданных.
  • Meta Box — плагин для создания кастомных метабоксов, если хотите реализовать более сложные поля для метаданных.

Однако иногда требуется более точечный контроль, и в этом случае подход с собственными функциями, описанными выше, наиболее оптимален.

Проверка корректного вывода метаданных на сайте GeneratePress

После внедрения кода или настройки плагинов стоит проверить, что метаданные действительно выводятся в <head> и уникальны для каждой страницы. Для этого можно:

  • Открыть исходный код страницы в браузере (Ctrl+U) и найти теги <title> и <meta name="description">.
  • Использовать инструменты разработчика браузера для проверки динамических данных.
  • Применять онлайн-сервисы SEO-аудита, которые покажут наличие и уникальность метаданных.

Выводы и рекомендации по добавлению метаданных в GeneratePress

Добавление уникальных метаданных — важная задача для SEO и удобства пользователей. В GeneratePress это можно сделать с помощью собственных функций и хуков, а также с помощью популярных SEO-плагинов. Кастомные метабоксы позволяют удобно управлять описаниями и заголовками прямо из админки.

Рекомендуется:

  • Использовать уникальные и информативные описания для каждой страницы.
  • Следить за длиной description (около 150–160 символов).
  • Добавлять кастомные заголовки для важных страниц.
  • Проверять корректный вывод метаданных после изменений.

Такой подход повысит качество SEO вашего сайта на GeneratePress и улучшит позиции в поисковой выдаче.

Добавление структуры данных JSON-LD в GeneratePress для улучшения SEO
13.01.2026
Как создать автоматические отзывы в GeneratePress с помощью плагинов
02.01.2026
Как добавить отложенную загрузку картинок в GeneratePress для ускорения сайта
23.01.2026
Как создать динамические колонтитулы в GeneratePress на WordPress
14.02.2026
Как добавить динамические атрибуты в GeneratePress для успешного SEO
24.02.2026