Как изменить динамический заголовок страницы в WordPress

Динамические заголовки страниц играют ключевую роль в SEO и удобстве пользователя. В WordPress заголовок (тег <title>) часто формируется автоматически на основе шаблонов темы или SEO-плагинов, но иногда требуется изменить его динамически в зависимости от условий на странице, пользовательских параметров или других факторов. В этой статье подробно рассмотрим, как программно и с помощью плагинов менять заголовок страницы, чтобы повысить гибкость и качество сайта.

Почему важно управлять динамическим заголовком страницы в WordPress

Поисковые системы учитывают содержимое заголовка при ранжировании. Правильно настроенный заголовок повышает CTR и улучшает восприятие сайта посетителями. Иногда стандартных настроек темы или SEO-плагина недостаточно, например:

  • Нужно менять заголовок в зависимости от пользовательских параметров (фильтры, категории, теги).
  • Необходимо добавить динамические данные из REST API, пользовательских полей или других источников.
  • Требуется уникальный SEO-заголовок для каждого варианта отображения страницы.

Для решения таких задач полезно знать, как изменить заголовок программно.

Использование хука wp_title и фильтра document_title_parts для изменения заголовка

В WordPress 4.4+ рекомендуется работать с фильтром document_title_parts, который позволяет изменять части заголовка, формируемого функцией wp_get_document_title(). Пример функции для динамической замены заголовка:

function wplite_modify_document_title_parts($title) {
    // Пример: добавить пользовательский суффикс
    if (is_singular('post')) {
        $custom_suffix = ' - Лучший блог на WPLite';
        $title['title'] .= $custom_suffix;
    }
    // Можно менять любую часть: title, site, tagline, date и др.
    return $title;
}
add_filter('document_title_parts', 'wplite_modify_document_title_parts');

Этот код добавит суффикс к заголовкам всех записей типа post. Можно усложнить логику, например, условно менять заголовок для конкретных категорий, страниц с GET-параметрами и так далее.

Для старых тем, где используется функция wp_title(), применяют фильтр wp_title:

function wplite_modify_wp_title($title, $sep) {
    if (is_category()) {
        $title = single_cat_title('', false) . " $sep " . get_bloginfo('name');
    }
    return $title;
}
add_filter('wp_title', 'wplite_modify_wp_title', 10, 2);

Динамические заголовки на основе GET-параметров и пользовательских данных

Часто требуется менять заголовок в зависимости от параметров в URL, например, фильтров или поиска. Рассмотрим пример, где заголовок страницы категории меняется в зависимости от параметра color:

function wplite_dynamic_title_by_get_param($title) {
    if (is_category() && isset($_GET['color'])) {
        $color = sanitize_text_field($_GET['color']);
        $title['title'] = sprintf('Категория %s - цвет %s', single_cat_title('', false), ucfirst($color));
    }
    return $title;
}
add_filter('document_title_parts', 'wplite_dynamic_title_by_get_param');

Такой подход полезен для сайтов с каталогами, где пользователь выбирает параметры фильтрации, и важно отражать это в заголовке для SEO и удобства.

Использование SEO-плагинов для управления динамическими заголовками

Если вы не хотите писать код, популярные SEO-плагины позволяют гибко настраивать заголовки:

  • Yoast SEO: В разделе «Поисковый внешний вид» можно задать шаблоны заголовков для разных типов контента с переменными. Также есть возможность включить фильтры для более сложного управления.
  • All in One SEO: Позволяет настраивать шаблоны заголовков, включая динамические данные.
  • Clearfy Pro: Этот плагин от WPShop имеет функции оптимизации SEO, в том числе управляет заголовками для разных страниц, повышая производительность и удобство.

Для более сложных задач можно комбинировать плагины с собственными фильтрами из предыдущих примеров.

Пример создания плагина для динамического изменения заголовков на сайте WPLite.ru

Для удобства управления заголовками можно оформить код в небольшой плагин. Вот пример базового плагина:

/*
Plugin Name: WPLite Dynamic Title
Description: Динамически изменяет заголовок страниц в зависимости от условий
Version: 1.0
Author: WPLite.ru
*/

function wplite_dynamic_title_plugin($title) {
    if (is_singular('post')) {
        $title['title'] .= ' | WPLite.ru - ваш WordPress помощник';
    }
    if (is_category() && isset($_GET['color'])) {
        $color = sanitize_text_field($_GET['color']);
        $title['title'] = sprintf('Категория %s - цвет %s | WPLite.ru', single_cat_title('', false), ucfirst($color));
    }
    return $title;
}
add_filter('document_title_parts', 'wplite_dynamic_title_plugin');

Загрузите этот код в файл wplite-dynamic-title.php и установите в папку wp-content/plugins. После активации плагина заголовки будут изменяться в зависимости от условий.

Как проверить и отладить динамические заголовки

Для проверки результата можно использовать:
— Просмотр исходного кода страницы в браузере (Ctrl+U) и поиск тега <title>.
— Инструменты разработчика браузера для просмотра метатегов.
— Плагины для анализа SEO, например, WPGPT от WPShop, которые могут помочь выявить ошибки и подсказать улучшения.

Если заголовок не меняется, проверьте наличие конфликтов с другими плагинами или темой, которые могут переопределять заголовок.

Заключение

Динамическое управление заголовками страниц в WordPress — важный инструмент для повышения SEO и улучшения пользовательского опыта. Используя фильтры document_title_parts, можно гибко менять заголовки в зависимости от условий, GET-параметров и других данных. Комбинируйте код с возможностями популярных SEO-плагинов и оптимизируйте сайт.

Для удобства рекомендуем ознакомиться с плагином Clearfy Pro — он содержит расширенные возможности по оптимизации заголовков и других SEO-настроек.

Как избежать проблемы с отслеживанием изменений в WordPress
25.03.2026
Как решить проблему неработающих скриптов в WordPress
16.02.2026
Удаление заблокированных AdSense блоков в WordPress
20.02.2026
Как изменить динамический заголовок страницы в WordPress
17.01.2026
Как избежать ошибки 429 в WordPress при частых AJAX-запросах
02.03.2026