Плагин YoastSEO является одним из самых популярных инструментов для оптимизации сайтов на WordPress под поисковые системы. Однако, даже при большом наборе встроенных функций, иногда возникает необходимость тонкой настройки или добавления собственного функционала. Лучший способ сделать это — использовать хуки (actions и filters), которые предоставляет YoastSEO.
Что такое хуки в WordPress и YoastSEO
Хуки — это точки расширения, которые позволяют разработчикам вмешиваться в процесс работы плагина или темы без изменения исходного кода. WordPress поддерживает два типа хуков: actions и filters. Actions позволяют выполнять произвольный код в определенный момент, а filters — изменять данные перед их использованием.
YoastSEO интегрируется с WordPress и также предоставляет собственные хуки, чтобы управлять SEO-данными — мета-тегами, XML-картами, заголовками, сниппетами и многим другим.
Использование хуков обеспечивает гибкость и безопасность, поскольку ваши изменения сохраняются даже при обновлении плагина.
Основные хуки в YoastSEO для SEO-настроек
Давайте рассмотрим самые полезные хуки, которые часто используются для кастомизации YoastSEO.
Фильтр yoastseo_metadesc — изменение мета-описания
Этот фильтр позволяет изменить мета-описание страницы перед выводом в тег <meta name="description">. Например, вы можете динамически подставлять дополнительные данные или поправить описание.
function yoastseo_custom_metadesc($metadesc) {
if (is_singular('post')) {
$metadesc .= ' | Читайте больше полезных статей на нашем сайте.';
}
return $metadesc;
}
add_filter('yoastseo_metadesc', 'yoastseo_custom_metadesc');Здесь мы дополняем стандартное описание дополнительной фразой на страницах записей.
Action wpseo_head — добавление собственных тегов в <head>
Если вам нужно добавить в секцию <head> страницы дополнительные метатеги или скрипты, вы можете использовать action wpseo_head. Он вызывается после вывода всех SEO-тегов Yoast.
function yoastseo_add_custom_meta() {
if (is_front_page()) {
echo '<meta name="custom-meta" content="some value">';
}
}
add_action('wpseo_head', 'yoastseo_add_custom_meta');Пример добавляет пользовательский мета-тег только на главной странице.
Фильтр wpseo_sitemap_entry — изменение данных в XML карте сайта
Иногда требуется изменить записи в sitemap, например, исключить определенные страницы или добавить кастомные атрибуты.
function yoastseo_custom_sitemap_entry($url, $type, $post) {
if ($type === 'post' && has_category('noindex', $post)) {
return false; // Исключаем из карты сайта посты с категорией noindex
}
return $url;
}
add_filter('wpseo_sitemap_entry', 'yoastseo_custom_sitemap_entry', 10, 3);Так вы можете реализовать исключения из sitemap на базе условий.
Примеры практического использования хуков YoastSEO
Автоматическое добавление ключевых слов в мета-теги
По умолчанию YoastSEO не выводит мета-тег keywords, так как он устарел для SEO, но иногда он нужен для внутренних целей.
function yoastseo_add_meta_keywords() {
if (is_singular('post')) {
$keywords = get_post_meta(get_the_ID(), '_yoast_wpseo_focuskw', true);
if ($keywords) {
echo '<meta name="keywords" content="' . esc_attr($keywords) . '">';
}
}
}
add_action('wpseo_head', 'yoastseo_add_meta_keywords');Код добавляет мета-тег keywords с фокусным ключевым словом Yoast.
Удаление тега canonical для определенных страниц
Иногда необходимо убрать автоматический canonical, например, для страниц с параметрами или фильтрами.
function yoastseo_remove_canonical_for_params($canonical) {
if (is_page() && isset($_GET['filter'])) {
return false; // Убираем canonical
}
return $canonical;
}
add_filter('wpseo_canonical', 'yoastseo_remove_canonical_for_params');Это исключает canonical URL на страницах с параметром filter.
Как найти доступные хуки YoastSEO
Чтобы эффективно работать с хуками YoastSEO, полезно знать, где их искать:
- Официальная документация YoastSEO (developers.yoast.com)
- Исходный код плагина, особенно файлы с префиксом
wpseo- - Использование плагинов для отладки хуков, например, Query Monitor
Также можно использовать функцию add_filter с отладочным выводом, чтобы отследить срабатывание определенных фильтров.
Рекомендации по безопасности и производительности при работе с хуками
При добавлении своих функций через хуки важно соблюдать несколько правил:
- Минимизируйте сложные вычисления внутри функций, подключаемых к хукам, чтобы не замедлять загрузку страниц.
- Используйте проверку условий (например,
is_singular(),is_front_page()) для выполнения кода только там, где это нужно. - Экранируйте выводимые данные (функции
esc_attr(),esc_html()) для защиты от XSS-уязвимостей. - Для больших изменений лучше создавать собственные классы и методы с префиксом
yoastseo_для удобства поддержки.
Это поможет сохранить стабильность сайта и качество SEO.
Заключение
Использование хуков YoastSEO — мощный способ расширять и настраивать SEO-функции WordPress без изменения исходного кода плагина. В этой статье мы рассмотрели несколько ключевых фильтров и действий, а также привели рабочие примеры кода. Освоив эту технику, вы сможете реализовать уникальные SEO-решения под свои задачи, делая сайт более эффективным и удобным для продвижения.