Как использовать фильтр yoast_seo_title для динамических заголовков в WordPress с YoastSEO

Что такое фильтр yoast_seo_title и зачем он нужен

Фильтр yoast_seo_title позволяет программно изменять заголовок страницы (meta title), который генерирует плагин YoastSEO. Это полезно, когда нужно динамически подставить данные, которых нет в стандартных шаблонах плагина, например, данные из пользовательских полей, кастомных таксономий или внешних API.

В отличие от редактирования заголовка вручную в интерфейсе, фильтр позволяет автоматизировать и масштабировать изменения, сохраняя SEO-оптимизацию.

Диагностика проблемы: почему стандартный шаблон заголовков не подходит

Если вы заметили, что в стандартных настройках YoastSEO невозможно добавить нужный параметр в title, например, значение из ACF, WooCommerce атрибута или динамический параметр из URL, значит, нужно использовать фильтр.

Для проверки текущего шаблона заголовка в YoastSEO перейдите в SEO > Внешний вид поиска > Общие или в настройки отдельных типов записей. Если там нет нужного варианта, фильтр пригодится.

Пошаговое решение: как написать и подключить фильтр yoast_seo_title

1. Создайте функцию для изменения заголовка

function my_dynamic_yoast_title($title) {
    if (is_singular('product')) { // пример для WooCommerce продукта
        $custom_field = get_post_meta(get_the_ID(), 'my_custom_title', true);
        if (!empty($custom_field)) {
            $title = $custom_field . ' | ' . get_bloginfo('name');
        }
    }
    return $title;
}

2. Подключите функцию к фильтру

add_filter('wpseo_title', 'my_dynamic_yoast_title');

Обратите внимание, что фильтр wpseo_title — актуальный хук для изменения title в YoastSEO версии 15 и выше. Ранее использовался wpseo_title, но иногда встречается yoast_seo_title в старых материалах. Проверяйте версию плагина и документацию.

3. Пример для динамического параметра из URL

function my_dynamic_yoast_title_url_param($title) {
    if (is_page('special-offer')) {
        $param = isset($_GET['ref']) ? sanitize_text_field($_GET['ref']) : '';
        if ($param) {
            $title = 'Special Offer for ' . $param . ' | ' . get_bloginfo('name');
        }
    }
    return $title;
}
add_filter('wpseo_title', 'my_dynamic_yoast_title_url_param');

Проверка результата после внедрения

  1. Очистите кэш сайта и браузера.
  2. Откройте страницу, на которой должен измениться заголовок.
  3. Посмотрите исходный код страницы (Ctrl+U или ПКМ > «Просмотреть исходный код»).
  4. Найдите <title> и проверьте, что заголовок соответствует логике фильтра.
  5. Для более точной проверки можно использовать инструмент Google Search Console или расширения браузера, например, Yoast SEO plugin debug.

Частые ошибки и как их исправлять

  • Использование устаревшего фильтра: Плагин YoastSEO изменял хуки с версии к версии. Сейчас для title нужно использовать wpseo_title. Проверяйте документацию.
  • Неправильное условие is_singular() или is_page(): Убедитесь, что условие корректно определяет нужную страницу, иначе фильтр не сработает.
  • Неправильное получение данных из поста: Если используете кастомные поля, проверяйте, что они заполнены. Используйте get_post_meta() с правильным ID и параметрами.
  • Отсутствие очистки или кэша: После изменений очистите кэш плагинов, сервера и браузера.
  • Незащищенный входящий параметр: При использовании данных из URL обязательно фильтруйте значения, например, через sanitize_text_field().

Практические советы по производительности и безопасности

  • Избегайте тяжелых запросов в фильтре, например, сложных запросов к базе или внешних API при формировании title. Это может замедлить загрузку страниц.
  • Используйте кэширование результатов, если данные сложно получить.
  • Всегда фильтруйте и валидируйте данные из пользовательского ввода.
  • Проверяйте, что ваш фильтр не отключает SEO-оптимизацию YoastSEO, например, не убирает важные части title.

Сравнение вариантов изменения заголовков YoastSEO

МетодПлюсыМинусыПример кода
Редактирование шаблонов в настройках YoastSEOПросто, не требует кодаОграничено стандартными переменными
Использование фильтра wpseo_titleГибко, динамически меняет titleТребует навыков PHP, может вызвать ошибкиСм. код выше
Использование сторонних плагинов для SEOМожет добавить функции без кодаЧасто избыточно, влияет на производительность

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как избежать проблем с конфликтами между YoastSEO и другими плагинами в WordPress
08.04.2026
Как избежать проблем с переопределением meta title в WordPress при использовании YoastSEO
23.03.2026
Как использовать YoastSEO для оптимизации текстов с внутренними ссылками в WordPress
07.03.2026
Как оптимизировать пагинацию в WooCommerce для лучшего SEO с помощью YoastSEO
07.07.2026
Как автоматизировать оптимизацию изображений в WordPress с помощью YoastSEO
06.02.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше