wpclean.ru wordpress WPClean.ru

Удаление неиспользуемых крупных полезных данных в WordPress для оптимизации

В процессе долгой работы сайта на 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 для комплексной оптимизации и очистки.
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙