Динамические заголовки страниц играют ключевую роль в 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-настроек.