Для многих сайтов на WordPress, особенно с активным использованием YoastSEO, со временем база данных начинает разрастаться, что негативно сказывается на скорости загрузки страниц и общем SEO-показателе. В этой статье разберем, как правильно оптимизировать базу данных WordPress с учетом специфики YoastSEO, чтобы ускорить работу сайта без потери ценных SEO-данных.
Почему важно оптимизировать базу данных WordPress с YoastSEO
YoastSEO активно использует пользовательские метаданные, таблицы и опции для хранения информации о SEO-настройках, анализа контента и генерации сниппетов. Со временем эти данные накапливаются, увеличивая размер базы и замедляя выполнение запросов. Также в базе скапливаются ревизии постов, устаревшие транзиенты и автосохранения, которые не нужны для работы SEO.
Без регулярной оптимизации вы рискуете получить:
- Замедленную работу административной панели;
- Увеличение времени отклика сайта;
- Потерю эффективности SEO-оптимизации из-за долгой генерации метаданных;
- Рост нагрузки на сервер при запросах.
Поэтому стоит периодически чистить и оптимизировать базу данных с учетом YoastSEO.
Основные методы оптимизации базы данных для YoastSEO
Удаление ревизий и автосохранений
WordPress сохраняет множество ревизий постов, что сильно увеличивает размер таблицы wp_posts и wp_postmeta. Для SEO-оптимизации важно иметь только актуальный контент, поэтому лишние ревизии лучше удалить.
Для удаления ревизий можно использовать следующий SQL-запрос:
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';
Также полезно удалить автосохранения:
DELETE FROM wp_posts WHERE post_type = 'autosave';
Рекомендуется выполнять такие операции на резервной копии базы.
Очистка транзиентов YoastSEO
YoastSEO активно использует транзиенты для кеширования результатов анализа SEO, сниппетов и других данных. Эти транзиенты со временем устаревают и могут занимать много места в таблице wp_options.
Для удаления устаревших транзиентов можно воспользоваться плагином Transient Cleaner или выполнить SQL-запрос:
DELETE FROM wp_options WHERE option_name LIKE '_transient_yoast_%';
DELETE FROM wp_options WHERE option_name LIKE '_transient_timeout_yoast_%';
Это позволит очистить кеш YoastSEO и освободить место.
Оптимизация таблиц базы данных
После удаления лишних данных полезно провести оптимизацию таблиц с помощью SQL-команды:
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_termmeta, wp_terms, wp_term_taxonomy;
Оптимизация пересобирает таблицы, уменьшает фрагментацию и ускоряет выполнение запросов.
Автоматизация очистки и оптимизации базы с учетом YoastSEO
Чтобы не выполнять все операции вручную, можно создать небольшую функцию, которая будет периодически очищать базу от лишних данных, не затрагивая важные SEO-настройки YoastSEO.
Пример функции для автоматической очистки ревизий и транзиентов YoastSEO:
function yoastseo_clean_database() {
global $wpdb;
// Удаляем ревизии
$wpdb->query("DELETE a,b,c
FROM {$wpdb->posts} a
LEFT JOIN {$wpdb->term_relationships} b ON (a.ID = b.object_id)
LEFT JOIN {$wpdb->postmeta} c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'");
// Удаляем автосохранения
$wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'autosave'");
// Удаляем транзиенты YoastSEO
$wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_yoast_%'");
$wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_timeout_yoast_%'");
// Оптимизируем таблицы
$wpdb->query("OPTIMIZE TABLE {$wpdb->posts}, {$wpdb->postmeta}, {$wpdb->options}, {$wpdb->termmeta}, {$wpdb->terms}, {$wpdb->term_taxonomy}");
}
// Запускаем очистку еженедельно
if (!wp_next_scheduled('yoastseo_weekly_cleanup')) {
wp_schedule_event(time(), 'weekly', 'yoastseo_weekly_cleanup');
}
add_action('yoastseo_weekly_cleanup', 'yoastseo_clean_database');
Эта функция поможет поддерживать базу в оптимальном состоянии без потери SEO-данных.
Плагины для оптимизации базы данных совместно с YoastSEO
Помимо ручных методов, есть проверенные плагины, которые помогут автоматизировать оптимизацию с учетом YoastSEO:
- WP-Optimize — позволяет чистить ревизии, транзиенты и оптимизировать таблицы. Важно настроить исключения для YoastSEO, чтобы не удалять нужные данные.
- Advanced Database Cleaner — гибкий инструмент для удаления мусорных данных, с возможностью настройки фильтров для YoastSEO.
- Transient Cleaner — специализированный плагин для очистки транзиентов, включая те, что создает YoastSEO.
Использование этих инструментов в связке с регулярным мониторингом позволит поддерживать сайт в отличной форме.
Советы по уменьшению нагрузки YoastSEO на базу данных
Чтобы минимизировать влияние YoastSEO на базу, стоит учесть несколько рекомендаций:
- Отключать анализ SEO для типов записей, которые не нуждаются в оптимизации. Это можно сделать в настройках YoastSEO.
- Избегать избыточного использования пользовательских полей и метаданных, которые могут дублировать данные YoastSEO.
- Периодически обновлять YoastSEO и WordPress, так как разработчики оптимизируют код и уменьшают нагрузку.
- Использовать кеширование страниц и объектов для снижения числа запросов к базе.
Эти меры помогут снизить нагрузку и ускорить сайт.