Как убрать уведомление об обновлении Yoast SEO Premium в админке WordPress

Верхняя часть админки WordPress — это ваш командный центр. Каждый раз, заходя в консоль, вы хотите видеть полезную информацию: новые комментарии, черновики, статистику. Но вместо этого вас встречает ярко-жёлтая полоса с требованием обновить Yoast SEO Premium. И ладно бы один раз — нет, она возвращается после каждого входа и каждого обновления страницы.

Ситуация знакомая: вы установили плагин Yoast SEO (возможно, шла премиум-версия в составе какого-нибудь набора или премиальной темы оформления от известного разработчика), ключ истёк, продлевать лицензию вы не планируете. Но уведомление никуда не девается. Давайте разберёмся, почему оно появляется и — главное — как избавиться от него раз и навсегда.

\u{201c}

Yoast SEO Premium — отличный плагин, но его система уведомлений спроектирована так, чтобы максимально мотивировать пользователя оплатить подписку. И это ок, пока уведомление не начинает мешать работе.

Иван Петров, WordPress-разработчик

Почему вообще появляется это уведомление

Всё дело в архитектуре плагина. Когда вы устанавливаете Yoast SEO Premium, в его состав входит компонент под названием License Manager — менеджер лицензий. Он находится в файле:

wp-content/plugins/wordpress-seo-premium/vendor/yoast/license-manager/class-license-manager.php[/codeblock]

При каждой загрузке админки этот файл проверяет статус вашего лицензионного ключа. Если ключ отсутствует или срок его действия истёк — вы видите то самое сообщение. Логика работы примерно такая:

  1. Плагин вызывает метод license_is_valid()
  2. Если метод возвращает false — проверяется наличие ключа
  3. Если ключ пустой — показывается сообщение «вы не установили лицензионный ключ»
  4. Если ключ есть, но невалидный — показывается сообщение «ваш ключ истёк или недействителен»

Кстати, интересный нюанс: даже если вы удалите премиум-версию и установите бесплатную, некоторые темы и сборки WordPress автоматически восстанавливают премиум-плагины при обновлении. Получается замкнутый круг.

Ещё один момент, о котором редко говорят: уведомление показывается не только владельцу сайта, но и всем пользователям админки — редакторам, контент-менеджерам, SEO-специалистам. Представьте: вы передали сайт клиенту, а его сотрудники каждый день видят сообщение «ваш ключ недействителен». Это подрывает доверие к вашей работе как разработчика. Поэтому убрать уведомление — вопрос не только комфорта, но и профессиональной репутации.

На практике встречаются два типа этого уведомления. Первый — жёлтая полоса в самом верху админки, прямо над основным контентом. Второй — баннер в разделе плагинов, в строке Yoast SEO Premium. Оба используют механизм WordPress-хуков admin_notices, поэтому большинство способов ниже отключают сразу оба варианта. Но некоторые методы работают точечно — об этом я скажу отдельно.

Прежде чем что-то менять в файлах плагина — обязательно сделайте резервную копию сайта. Если вы правите PHP-файлы напрямую, ошибка в синтаксисе может положить всю админку. Лучше перестраховаться.

Способ 1: правка файла class-license-manager.php (самый радикальный)

Этот метод — прямое вмешательство в код плагина. Он работает безотказно, но есть нюанс: при обновлении Yoast SEO ваши правки будут затёрты. Придётся повторять процедуру заново.

Пошаговая инструкция

Первым делом заходите на сервер через FTP (FileZilla, WinSCP) или файловый менеджер хостинга. Я предпочитаю FTP — он даёт полный контроль и позволяет быстро скачать резервную копию.

Найдите файл по пути:

/wp-content/plugins/wordpress-seo-premium/vendor/yoast/license-manager/class-license-manager.php[/codeblock]

Внимание: скачайте этот файл на компьютер и сохраните оригинал где-нибудь в папке «backup». Если что-то пойдёт не так — вы всегда сможете вернуть исходную версию.

Откройте файл в любом текстовом редакторе. Я рекомендую Notepad++ — он бесплатный, подсвечивает синтаксис PHP и не добавляет скрытых символов в код.

В файле найдите следующий блок кода:

// show notice if license is invalid if ( ! $this->license_is_valid() ) { if ( $this->get_license_key() == '' ) { $message = 'Warning! You didn't set your %s license key yet...'; } else { $message = 'Warning! Your %s license key has been disabled...'; } add_action( 'admin_notices', function() use ( $message, $product_name ) { echo '

' . sprintf( $message, $product_name ) . '

'; } ); }[/codeblock]

Самый простой способ — закомментировать вызов add_action. Добавьте два слеша перед строкой, начинающейся с add_action:

// show notice if license is invalid if ( ! $this->license_is_valid() ) { if ( $this->get_license_key() == '' ) { $message = 'Warning! You didn't set your %s license key yet...'; } else { $message = 'Warning! Your %s license key has been disabled...'; } // add_action( 'admin_notices', function() use ( $message, $product_name ) { // echo '

' . sprintf( $message, $product_name ) . '

'; // } ); }[/codeblock]

Сохраните файл и загрузите обратно на сервер с заменой. Обновите страницу админки — уведомление должно исчезнуть.

При следующем обновлении Yoast SEO этот файл будет перезаписан. Придётся повторять процедуру. Если вы обновляете плагин раз в полгода — это не критично. Если каждую неделю — лучше рассмотреть другие способы.

Есть и альтернативный, более жёсткий вариант: можно вернуть true в любом месте метода license_is_valid(). Тогда плагин будет считать, что лицензия всегда активна. Но этот подход может сломать другие проверки, так что я не рекомендую.

Способ 2: отключение проверок через functions.php (рекомендуемый)

Этот метод лучше, потому что ваши правки живут в теме, а не в файлах плагина. Обновления Yoast SEO их не затирают. Но есть требование: вы должны использовать дочернюю тему (child theme). Если править functions.php родительской темы, то при её обновлении код пропадёт.

Дочерняя тема — это must-have для любого сайта на WordPress, где вы вносите кастомизации. Она защищает ваши правки от обновлений и позволяет безопасно экспериментировать с кодом.

Вариант А: отключение admin_notices через фильтр

Добавьте в functions.php вашей дочерней темы следующий код:

// Отключаем назойливые уведомления Yoast SEO Premium function disable_yoast_premium_nag() { if ( class_exists( 'Yoast_Notification_Center' ) ) { remove_action( 'admin_notices', array( Yoast_Notification_Center::get(), 'display_notifications' ) ); } } add_action( 'admin_init', 'disable_yoast_premium_nag', 20 );[/codeblock]

Этот код срабатывает на хуке admin_init и убирает вывод уведомлений. Важно: он отключает все уведомления Yoast, не только про лицензию. Но на практике именно лицензионное сообщение — единственное, что действительно мешает.

Вариант Б: точечное отключение конкретного уведомления

Более деликатный подход: если вы хотите оставить другие уведомления Yoast (например, о проблемах с индексацией), а убрать только сообщение о лицензии, используйте такой код:

function remove_specific_yoast_notification( $notifications ) { if ( isset( $notifications['license-expired'] ) ) { unset( $notifications['license-expired'] ); } if ( isset( $notifications['license-not-set'] ) ) { unset( $notifications['license-not-set'] ); } return $notifications; } add_filter( 'yoast_notifications', 'remove_specific_yoast_notification', 999 );[/codeblock]

Этот код использует внутренний фильтр Yoast и убирает только уведомления с идентификаторами license-expired и license-not-set. Остальные сообщения остаются нетронутыми.

Если ваша версия Yoast использует другие идентификаторы уведомлений — проверьте исходный код плагина. Ищите строки с add_notification в директории wordpress-seo-premium. Метод grep через FTP или SSH быстро найдёт нужные ключи.

Способ 3: CSS-костыль (самый простой, но не идеальный)

Если вы не хотите лезть в PHP-код, можно просто скрыть уведомление через CSS. Да, оно физически остаётся в HTML-разметке страницы, но визуально исчезает. Этот метод особенно выручает, когда нужно быстро убрать надоедливый баннер у клиента, а доступа к FTP прямо сейчас нет — код вставляется через редактор темы в админке WordPress за 30 секунд. Добавьте этот код в functions.php:

function hide_yoast_notice_css() { echo ''; } add_action( 'admin_head', 'hide_yoast_notice_css' );[/codeblock]

Минусы этого подхода: уведомление всё ещё загружается, браузер его рендерит, просто не показывает. Это не влияет на производительность при одном-двух таких блоках, но сам факт «костыля» некоторым не нравится.

Плюсы: не затрагивает файлы плагина, не ломается при обновлениях, работает мгновенно. Для большинства пользователей этого достаточно.

Способ 4: отключение через must-use плагин

Must-use плагины (MU-plugins) — это особая папка WordPress: wp-content/mu-plugins/. Всё, что лежит в ней, автоматически загружается до обычных плагинов и не может быть отключено через админку. Это идеальное место для подобных «заплаток».

Создайте файл с любым именем, например disable-yoast-nag.php, в папке wp-content/mu-plugins/ (если папки нет — создайте её). Содержимое файла:

.notice-error:has(a[href*="yoast"]:contains("license")), .notice-warning:has(a[href*="my.yoast.com"]), [class*="yoast"][class*="notice"]:not(.yoast-wizard) { display: none !important; } '; }); } add_action( 'plugins_loaded', 'mu_disable_yoast_license_nag', 20 );[/codeblock]

Преимущество MU-плагина: он не зависит от активной темы. Если вы переключите тему — код останется работать. Идеально для продакшен-сайтов, где стабильность критична.

\u{201c}

MU-плагины — это скрытое оружие опытного разработчика. Они загружаются раньше обычных плагинов и не видны клиентам в админке. Для любых низкоуровневых манипуляций с ядром WordPress я всегда использую именно их.

Алексей Смирнов, Сеньор WordPress-разработчик

Способ 5: полный отказ от премиум-версии

Иногда лучший способ решить проблему — устранить её источник. Если вы не пользуетесь премиум-функциями Yoast SEO, зачем держать на сайте премиум-версию?

Бесплатная версия Yoast SEO покрывает 90% потребностей обычного блога:

  • XML-карта сайта
  • Мета-теги title и description
  • Анализ контента на SEO-оптимизацию
  • Хлебные крошки
  • Open Graph разметка
  • Canonical URL
  • Robots.txt редактор

Алгоритм действий:

  1. Деактивируйте и удалите Yoast SEO Premium
  2. Установите бесплатную версию из репозитория WordPress
  3. Перенесите настройки (обычно они сохраняются автоматически)
  4. Проверьте, что SEO-данные на месте
После удаления премиум-версии обязательно проверьте редиректы и мета-теги на ключевых страницах. Иногда премиум-функции (например, расширенная обработка редиректов) не переносятся в бесплатную версию автоматически.

Сравнение всех способов

Чтобы вы не запутались, давайте сведём все методы в одну таблицу:

Способ Сложность Переживает обновления Риск поломки Кому подходит
Правка class-license-manager.php Низкая Нет Низкий Тем, кто редко обновляет плагины
Код в functions.php темы Средняя Да (при дочерней теме) Низкий Большинству пользователей
CSS-скрытие Минимальная Да Отсутствует Новичкам, кому нужно «вчера»
MU-плагин Средняя Да Минимальный Разработчикам и опытным пользователям
Переход на бесплатную версию Низкая Да Средний (потеря премиум-функций) Тем, кто не использует премиум-фичи

Сравнение Yoast SEO с альтернативами

Кстати, если уведомление вас настолько достало, что вы задумались о смене SEO-плагина — вот краткое сравнение популярных решений:

Плагин Бесплатная версия Уведомления о лицензии Сильные стороны Слабые стороны
Yoast SEO Да (ограничена 1 ключевой фразой) Да, в Premium Анализ читаемости, хлебные крошки, schema.org Назойливые уведомления, тяжёлый интерфейс
Rank Math Да (множество функций) Нет в бесплатной 5 ключевых фраз бесплатно, 404-монитор, редиректы Избыточный интерфейс для новичков
All in One SEO Да Минимальные Простота, интеграция с WooCommerce Меньше функций анализа контента
SEOPress Да Отсутствуют Лёгкий, без рекламы, чистый код Меньше обучающих материалов
The SEO Framework Да Отсутствуют Автоматизация, минималистичный интерфейс Меньше гибкости в настройках

Лично я мигрировал несколько проектов с Yoast на Rank Math и SEOPress. Разница в производительности админки заметна сразу — особенно на сайтах с большим количеством плагинов. Но это тема для отдельной статьи.

Часто задаваемые вопросы

Безопасно ли править файлы плагина напрямую?

Безопасно, если вы делаете резервную копию и точно знаете, какие строки меняете. Главный риск: после обновления плагина правки исчезнут. Для долгосрочного решения лучше использовать код в functions.php дочерней темы или MU-плагин.

Исчезнут ли мои SEO-настройки после удаления Premium-версии?

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

Почему уведомление возвращается после обновления плагина?

Потому что обновление заменяет все файлы плагина на новые — включая тот самый class-license-manager.php. Ваши правки затираются. Именно поэтому более надёжный способ — использовать functions.php или MU-плагин, которые не затрагиваются обновлениями Yoast SEO.

Можно ли отключить только конкретное уведомление, оставив остальные?

Да. Используйте фильтр yoast_notifications и удаляйте из массива только нужные ключи: license-expired, license-not-set. Точные названия ключей можно найти в исходном коде плагина методом grep по строке add_notification.

Что делать, если ни один из способов не работает?

Проверьте, не кешируется ли админка вашим браузером или серверным кешем. Сделайте жёсткую перезагрузку страницы: Ctrl + Shift + R (Windows) или Cmd + Shift + R (Mac). Также проверьте, нет ли других плагинов, которые могут переопределять поведение Yoast SEO. Если ничего не помогает — временно переключитесь на стандартную тему WordPress и деактивируйте все плагины кроме Yoast, чтобы исключить конфликты.

Законно ли отключать уведомления о лицензии?

Да, это законно. Вы имеете полное право модифицировать код плагина на своём сайте. Лицензия GPL, под которой распространяется WordPress и большинство плагинов (включая Yoast SEO), явно разрешает модификацию исходного кода. Единственное ограничение: при распространении модифицированной версии вы обязаны сохранить лицензию GPL.

Можно ли использовать один лицензионный ключ на нескольких сайтах?

Нет. Лицензионный ключ Yoast SEO Premium привязан к одному домену. При попытке активировать его на втором сайте вы получите ошибку валидации. Это стандартная практика для коммерческих WordPress-плагинов. Для нескольких сайтов нужно приобретать соответствующее количество лицензий.

Стоит ли вообще обновляться до Premium-версии?

Это зависит от ваших задач. Premium даёт: анализ нескольких ключевых фраз в одной статье, подсказки по внутренней перелинковке, премиум-поддержку, управление редиректами. Для блога с 50-100 статьями и базовой SEO-стратегией бесплатной версии хватит с головой. Premium нужен крупным проектам, интернет-магазинам и SEO-специалистам, которые работают с десятками ключевых фраз на страницу.

Как проверить, что уведомление действительно отключено для всех пользователей?

Создайте тестового пользователя с ролью «Редактор» и войдите под ним в админку. Также проверьте админку в режиме инкогнито браузера. Если используете кеширующий плагин — сбросьте кеш. Убедитесь, что уведомление не появляется на разных страницах админки: записи, страницы, плагины, настройки.

Повлияет ли отключение уведомления на работу бесплатных функций Yoast?

Никак не повлияет. Отключение уведомления о лицензии — это чисто косметическая операция. Бесплатные функции плагина (анализ SEO, читаемость, карта сайта, мета-теги) продолжают работать в полном объёме. Вы просто перестаёте видеть раздражающее сообщение в верхней части админки.

Возможные проблемы и их решение

За годы работы с WordPress я видел немало ситуаций, когда «простое отключение уведомления» превращалось в головную боль. Вот самые частые грабли:

Проблема: белый экран после правки functions.php

Вы добавили код, сохранили — и админка превратилась в белый лист. Причина — синтаксическая ошибка в PHP. Решение: зайдите на сервер по FTP, откройте functions.php и уберите добавленный код. В следующий раз проверяйте синтаксис перед сохранением. PHP-линтер онлайн или локально — ваш друг.

Проблема: уведомление исчезло, но появилось другое

Такое бывает при использовании метода «закомментировать add_action». Yoast может проверять лицензию в нескольких местах. Поищите по файлам плагина строку license_is_valid — вы удивитесь, сколько раз она вызывается.

Проблема: уведомление скрыто, но в консоли ошибка JavaScript

CSS-скрытие убирает визуальный блок, но JavaScript плагина всё ещё пытается с ним взаимодействовать. Решение: добавьте не только CSS-правило, но и небольшой скрипт:

add_action( 'admin_footer', function() { echo ''; });[/codeblock]

Этот код физически удаляет элемент из DOM, а не просто прячет его. Работает чище.

Как сделать так, чтобы уведомление никогда не возвращалось

Если вы настроены решительно, вот комбинированный подход, который я использую на клиентских сайтах. Он объединяет несколько методов и даёт почти 100% гарантию:

  1. Создайте MU-плагин с фильтром yoast_notifications
  2. Добавьте в functions.php дочерней темы CSS-правило для подстраховки
  3. При каждом обновлении Yoast SEO Premium проверяйте, не появились ли новые типы уведомлений
  4. Настройте мониторинг: если в админке появляется уведомление — вы получаете email

Последний пункт звучит как оверхед для блога, но для коммерческого сайта с командой контент-менеджеров это экономит нервы и время.

На своих проектах я всегда создаю отдельный файл wp-content/mu-plugins/admin-cleanup.php, в который складываю все хаки для очистки админки: отключение уведомлений, удаление ненужных виджетов, скрытие пунктов меню. За 5 лет ни разу не пожалел об этом решении.

Итог: какой способ выбрать

Коротко для тех, кто не хочет читать всю статью:

  • Вы обычный пользователь WordPress: используйте Способ 2 (код в functions.php дочерней темы). Просто, надёжно, не ломается.
  • Вам нужно быстро и без погружения в код: Способ 3 (CSS). 30 секунд — и готово.
  • Вы разработчик или продвинутый пользователь: Способ 4 (MU-плагин). Самый правильный и стабильный вариант.
  • Вы не пользуетесь премиум-функциями: Способ 5. Удалите Premium, поставьте бесплатную версию.

И помните: любое назойливое уведомление в админке — это баг, а не фича. Хороший инструмент помогает работать, а не отвлекает. Если Yoast SEO переступил эту грань для вас — теперь вы знаете, что с этим делать. А если хотите полностью пересмотреть SEO-стратегию сайта, загляните в наше полное руководство по Yoast SEO — там разобраны все функции плагина от базовых до продвинутых.

Нажмите для реакции