
Почему Yoast SEO — это балласт? Как плагин забивает базу данных и тормозит ваш сайт
Долгие годы Yoast SEO оставался плагином по умолчанию для сайтов на WordPress. Но за последнее десятилетие инструмент превратился в громоздкий коммерческий комбайн, где реальная функциональность для поисковой оптимизации погребена под мегабайтами рекламного кода, фоновыми задачами и дублирующими таблицами в базе данных.
Разберём детально, что именно происходит под капотом сайта, когда на нём активирован Yoast SEO, и почему без него проект работает быстрее, чище и стабильнее.
1. Захламление базы данных: мусорные таблицы и сиротские данные
Главная техническая претензия к Yoast — его обращение с базой данных MySQL/MariaDB. Начиная с 14-й версии, разработчики внедрили так называемую систему «Indexables», пообещав ускорение отдачи метаданных. На практике это вылилось в создание отдельных таблиц, дублирующих то, что уже есть в штатных таблицах wp_posts и wp_postmeta.
После активации Yoast создаёт в БД минимум 5 дополнительных таблиц:
- wp_yoast_indexable — гигантская таблица, куда копируются метаданные всех записей, страниц, таксономий и авторов. На сайтах с десятками тысяч страниц эта таблица быстро разрастается до сотен мегабайт.
- wp_yoast_indexable_hierarchy — вспомогательная таблица иерархий, которая регулярно блокируется при массовых операциях.
- wp_yoast_seo_links — таблица внутренних ссылок, подсчитывающая линки в контенте.
- wp_yoast_seo_meta — хранилище внутренних системных статусов.
- wp_yoast_migrations — таблица контроля версий миграций плагина.
Что происходит при удалении плагина?
Если вы решите отключить или стандартно удалить Yoast через админку WordPress, ни одна из этих таблиц не удаляется. Кроме того, таблица wp_postmeta остаётся замусоренной десятками тысяч строк с префиксами yoast_wpseo* (фокусные слова, баллы читаемости, мета-дескрипшены, статусы индексации), а таблица wp_options — тяжелыми сериализованными массивами настроек (wpseo, wpseo_titles, wpseo_social и т.д.). Без ручной зачистки через SQL или специализированные утилиты этот балласт остаётся в базе навсегда.
2. Раздутый размер архива и память PHP
Если скачать дистрибутив Yoast SEO из официального репозитория WordPress.org:
- Размер архива: свыше 10 МБ в сжатом виде (.zip).
- Размер после распаковки: более 30 МБ на диске сервера.
- Тысячи файлов: плагин тащит за собой сложную архитектуру классов, зависимости Composer, бандлы React и стили для админки.
Ради чего расходуется оперативная память PHP при каждом запросе в админке? Ради того, чтобы просто отдать в head десяток строк HTML-тегов. На виртуальных хостингах с ограничением memory_limit (128–256 МБ) один только Yoast способен откусить солидную долю ресурсов сервера.
3. Нагрузка на браузер и редакторы контента
Интерфейс редактирования записей в Yoast давно перегружен тяжелыми скриптами React:
- Фоновый парсинг текста: при каждом нажатии клавиши в редакторе (Gutenberg или Classic) скрипты Yoast на лету анализируют весь текст, пересчитывая длину предложений, распределение подзаголовков и пассивный залог.
- Тормоза на мобильных устройствах: если вы управляете сайтом со смартфона или планшета через мобильный браузер, панель Yoast заставляет интерфейс дергаться, залипать и съедать батарею.
- «Светофор» — иллюзия из 2012 года: механический подсчёт точных вхождений ключа (Focus Keyword Density) не имеет ничего общего с современными алгоритмами ранжирования (BERT, нейросетевой семантический анализ, поведенческие факторы). Поисковики оценивают полноту раскрытия темы и пользу для пользователя, а не наличие ключа строго в первых 10% текста.
4. Агрессивный апселл и визуальный спам в консоли
Консоль WordPress должна быть рабочим пространством, а не витриной:
- Постоянные баннеры «Перейдите на Yoast SEO Premium», блоки продвижения плагинов для локального SEO, видео-SEO и WooCommerce.
- Неотключаемые уведомления о вебинарах, курсах «Yoast SEO Academy» и сезонных скидках.
- Меню плагина на верхней панели (Admin Bar), которое лишь занимает место и дублирует ссылки.
- Отслеживание телеметрии (трекинг данных о сайте и сервере, который плагин настойчиво предлагает включить при настройке).
5. Загрязнение исходного кода страницы
Взгляните на исходный код страницы (view-source), сгенерированный Yoast. В блоке head вы увидите:
- Огромные рекламные HTML-комментарии: .
- Чрезмерно перегруженный граф Schema.org в формате JSON-LD, связывающий сайт, организацию, автора, хлебные крошки и веб-страницу в единый громоздкий узел. Поисковые системы прекрасно считывают микроразметку, но в 90% случаев такая детализация избыточна и лишь увеличивает вес HTML-документа.
Что действительно нужно сайту для 100% SEO-валидности?
Поисковым краулерам (Яндекс, Google) не нужны монструозные плагины. Им нужны четкие, стандартизированные директивы:
- Тег title: уникальный заголовок вкладки.
- Мета-тег description: краткое описание страницы для формирования сниппета.
- Канонический адрес (canonical): предотвращение дублирования страниц.
- Директивы индексации (robots): noindex, follow для служебных или технических страниц (пагинация, архивы дат, страницы поиска).
- Карта сайта (sitemap.xml): список актуальных URL для быстрой индексации.
- Разметка Open Graph: чтобы при отправке ссылки в Telegram, WhatsApp или соцсети подтягивались правильная картинка, заголовок и описание.
Все эти задачи закрываются либо функционалом ядра WordPress, либо кодом на 60–80 строк.
Чистая альтернатива: как решить задачу без комбайнов
1. Карта сайта уже есть в коробке
Начиная с версии WordPress 5.5, ядро генерирует нативную, быструю карту сайта: https://ваш-сайт.ru/wp-sitemap.xml. Она не создает новых таблиц, генерируется на лету и идеально понимается всеми поисковыми ботами.
2. Канонические URL уже в ядре
Функция ядра rel_canonical() автоматически подставляет правильные теги для записей, страниц и архивов, исключая дубли.
3. Лёгкий PHP-сниппет для Title, Description и Open Graph
Вместо 30 МБ кода Yoast достаточно добавить в файл functions.php вашей темы или в виде микроплагина простой блок:
// Регистрируем метабоксы для Description и Title
add_action('add_meta_boxes', function() {
add_meta_box('clean_seo_box', 'SEO настройки', function($post) {
$desc = get_post_meta($post->ID, '_clean_seo_desc', true);
wp_nonce_field('clean_seo_nonce_action', 'clean_seo_nonce');
echo '<p style="margin:0 0 5px; font-weight:bold;">Meta Description:</p>';
echo '<textarea name="clean_seo_desc" rows="3" style="width:100%; border:1px solid #ccc; padding:6px;">' . esc_textarea($desc) . '</textarea>';
}, ['post', 'page'], 'normal', 'high');
});
// Сохраняем значение при обновлении записи
add_action('save_post', function($post_id) {
if (!isset($_POST['clean_seo_nonce']) || !wp_verify_nonce($_POST['clean_seo_nonce'], 'clean_seo_nonce_action')) return;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if (!current_user_can('edit_post', $post_id)) return;
if (isset($_POST['clean_seo_desc'])) {
update_post_meta($post_id, '_clean_seo_desc', sanitize_text_field($_POST['clean_seo_desc']));
}
});
// Выводим чистые мета-теги и Open Graph в <head>
add_action('wp_head', function() {
if (!is_singular()) return;
global $post;
$desc = get_post_meta($post->ID, '_clean_seo_desc', true);
if (!$desc) {
$desc = wp_strip_all_tags(wp_trim_words($post->post_content, 25, '...'));
}
echo "\n<!-- Чистые мета-теги без лишнего балласта -->\n";
if ($desc) {
echo '<meta name="description" content="' . esc_attr($desc) . '">' . "\n";
echo '<meta property="og:description" content="' . esc_attr($desc) . '">' . "\n";
}
echo '<meta property="og:title" content="' . esc_attr(get_the_title()) . '">' . "\n";
echo '<meta property="og:type" content="article">' . "\n";
echo '<meta property="og:url" content="' . esc_url(get_permalink()) . '">' . "\n";
if (has_post_thumbnail($post->ID)) {
$image = get_the_post_thumbnail_url($post->ID, 'large');
echo '<meta property="og:image" content="' . esc_url($image) . '">' . "\n";
}
}, 1);
4. А если всё же нужен готовый плагин?
Если писать код не хочется, а нужен проверенный плагин без агрессивного маркетинга:
- The SEO Framework — эталонный плагин без рекламы, не создающий дублирующих таблиц в базе данных, быстрый и использующий нативные хуки ядра WordPress.
- Slim SEO — решение «поставил и забыл», настраивающее автоматические заголовки, каноникал и разметку с нулевой нагрузкой на интерфейс.
Итог
Yoast SEO — типичный пример программного ожирения (software bloat). Инструмент, который должен был помогать сайту занимать высокие позиции в поиске, сам стал фактором замедления сервера, раздувания базы данных и захламления панели администратора.
Отказ от него в пользу нативных функций ядра WordPress, компактных сниппетов или лёгких альтернатив освобождает базу данных от сотен мегабайт мусора, разгружает редактор и возвращает контроль над кодом сайта.




