В процессе долгой работы сайта на WordPress накапливаются различные данные, которые занимают значительное место в базе данных и на сервере. Помимо стандартных записей, метаданных и медиафайлов, существуют и крупные полезные данные, которые на первый взгляд кажутся важными, но на деле могут быть неиспользуемыми или устаревшими. В этой статье разберём, как грамотно обнаружить и удалить такие данные, чтобы не навредить сайту, а значительно улучшить производительность и снизить нагрузку.
Что такое крупные полезные данные в WordPress и где они могут храниться
Крупные полезные данные — это, например, данные плагинов и тем, которые создают собственные таблицы или хранят большие массивы информации в стандартных таблицах. Это могут быть логи, кэши, резервные копии, статистика, сессии пользователей и т.п. Часто такие данные не удаляются автоматически, накапливаются и становятся балластом.
Основные места хранения:
- Собственные таблицы в базе данных, созданные плагинами;
- Таблицы wp_postmeta и wp_options с большими объемами;
- Папки с кэшами и временными файлами;
- Медиафайлы, которые привязаны к удалённым записям или плагинам.
Для понимания, где именно аккумулируется крупный объём данных, нужно использовать инструменты анализа.
Анализ и поиск крупных данных в базе данных WordPress
Самый простой способ — использовать плагины для анализа базы данных. Рекомендую плагин Clearfy Pro, который позволяет не только оптимизировать базу, но и анализировать её структуру, находить неиспользуемые таблицы и записи.
Также можно воспользоваться phpMyAdmin или Adminer и выполнить запросы SQL для поиска больших таблиц:
SELECT table_name AS `Таблица`,
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS `Размер (МБ)`
FROM information_schema.TABLES
WHERE table_schema = 'имя_вашей_базы'
ORDER BY (data_length + index_length) DESC;
Этот запрос покажет таблицы базы данных по размеру, что поможет выявить самые «тяжёлые».
Если среди них есть таблицы, которые создал конкретный плагин, и вы уверены, что плагин не используется, их можно удалить.
Поиск больших записей в таблицах postmeta и options
Таблицы wp_postmeta и wp_options могут содержать записи с большими значениями. Чтобы найти крупные записи, можно выполнить такие запросы:
-- Поиск больших значений в postmeta
SELECT post_id, meta_key, LENGTH(meta_value) AS size
FROM wp_postmeta
ORDER BY size DESC
LIMIT 20;
-- Поиск крупных опций
SELECT option_name, LENGTH(option_value) AS size
FROM wp_options
ORDER BY size DESC
LIMIT 20;
Если вы видите опции или метаданные, которые не используются или относятся к удалённым плагинам, их стоит удалить.
Удаление неиспользуемых данных вручную и с помощью кода
Важно не удалять данные, пока вы точно не уверены, что они не нужны. Для автоматизации безопасного удаления можно написать функции с префиксом wpclean_.
Пример функции удаления неиспользуемых метаданных
function wpclean_delete_unused_postmeta() {
global $wpdb;
// Находим метаданные, у которых нет соответствующего поста
$sql = "DELETE pm FROM {$wpdb->postmeta} pm
LEFT JOIN {$wpdb->posts} p ON pm.post_id = p.ID
WHERE p.ID IS NULL";
$deleted = $wpdb->query($sql);
return $deleted;
}
// Вызов функции
wpclean_delete_unused_postmeta();
Этот код удалит все записи в postmeta без связанных постов, что часто бывает после удаления записей.
Удаление устаревших опций плагинов
Часто плагины оставляют свои настройки в wp_options после деактивации. Чтобы удалить их, можно применить следующий код:
function wpclean_delete_plugin_options( $option_names = [] ) {
foreach ( $option_names as $option ) {
delete_option( $option );
}
}
// Пример удаления опций плагина Clearfy Pro после удаления
wpclean_delete_plugin_options([
'clearfy_settings',
'clearfy_cache'
]);
Перед выполнением обязательно проверьте, что эти опции не используются на сайте.
Оптимизация и удаление кэшированных и временных файлов
Помимо базы данных, крупные данные часто хранятся в виде кэшированных файлов. Например, плагины кэширования создают папки с сотнями мегабайт файлов. Их очистка помогает снизить нагрузку на диск и ускорить резервное копирование.
Для очистки кэша можно использовать плагины, например, Clearfy Pro — там есть встроенные инструменты очистки временных данных.
Если нужно удалить кэш вручную, найдите папки плагинов, например wp-content/cache/, wp-content/uploads/wpo-cache/ и удалите их содержимое через FTP или файловый менеджер.
Автоматизация очистки кэша с помощью WP Cron
Чтобы не забывать чистить кэш, можно настроить регулярную очистку с помощью WP Cron. Пример функции:
function wpclean_clear_cache_cron() {
$cache_dir = WP_CONTENT_DIR . '/cache/';
if ( is_dir( $cache_dir ) ) {
$files = glob( $cache_dir . '*', GLOB_MARK );
foreach ( $files as $file ) {
if ( is_dir( $file ) ) {
wpclean_rrmdir( $file );
} else {
unlink( $file );
}
}
}
}
function wpclean_rrmdir( $dir ) {
if ( is_dir( $dir ) ) {
$objects = scandir( $dir );
foreach ( $objects as $object ) {
if ( $object != "." && $object != ".." ) {
$path = $dir . DIRECTORY_SEPARATOR . $object;
if ( is_dir( $path ) ) {
wpclean_rrmdir( $path );
} else {
unlink( $path );
}
}
}
rmdir( $dir );
}
}
// Планирование задачи в WP Cron
if ( ! wp_next_scheduled( 'wpclean_clear_cache_event' ) ) {
wp_schedule_event( time(), 'daily', 'wpclean_clear_cache_event' );
}
add_action( 'wpclean_clear_cache_event', 'wpclean_clear_cache_cron' );
Этот код удаляет содержимое папки кэша ежедневно, что помогает держать сайт в чистоте.
Удаление неиспользуемых медиа и их метаданных
В дополнение к базе данных стоит проверить медиафайлы. Часто остаются изображения и видео, не привязанные к постам, которые занимают много места.
Для поиска таких файлов можно воспользоваться плагином WPRemark, который умеет сканировать медиа и выявлять неиспользуемые элементы.
Если хочется сделать это вручную, можно использовать следующий SQL-запрос для поиска медиафайлов без связей:
SELECT ID, post_title, guid
FROM wp_posts
WHERE post_type = 'attachment'
AND ID NOT IN (
SELECT meta_value FROM wp_postmeta WHERE meta_key = '_thumbnail_id'
UNION
SELECT ID FROM wp_posts WHERE post_parent = wp_posts.ID
);
После проверки и бэкапа можно удалить такие вложения.
Рекомендации по безопасному удалению данных
- Обязательно сделайте резервную копию базы данных и файлов перед удалением.
- Удаляйте данные поэтапно, проверяя работу сайта после каждого шага.
- Для сложных операций используйте тестовый стенд.
- Используйте специализированные плагины, например Clearfy Pro для комплексной оптимизации и очистки.