Автоматическое удаление старых медиафайлов в WordPress

В процессе работы с WordPress накапливается множество медиафайлов, которые уже не используются в контенте сайта. Это приводит к увеличению размера базы данных и занятому дисковому пространству, что может негативно сказаться на производительности и стоимости хостинга. В этой статье разберём, как автоматизировать удаление старых медиафайлов, чтобы поддерживать сайт в чистоте и порядке.

Почему важно удалять неиспользуемые медиафайлы

Со временем в библиотеке медиафайлов накапливаются изображения, видео и другие файлы, которые не связаны с публикациями или страницами. Они могут быть загружены случайно, добавлены для тестирования или устарели после редизайна сайта.

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

Рекомендуется регулярно проводить очистку библиотеки медиа, особенно если сайт активно обновляется и много контента удаляется или изменяется.

Как определить неиспользуемые медиафайлы в WordPress

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

Плагины для поиска и удаления неиспользуемых медиафайлов

  • Media Cleaner: анализирует базу и файлы, находит неиспользуемые и предлагает удалить. Поддерживает работу с плагинами, которые добавляют свои типы медиа.
  • WP-Optimize: кроме очистки базы данных, умеет искать неиспользуемые изображения.
  • Remove Unused Media: простой инструмент для поиска и удаления.

Однако автоматический поиск может ошибаться, поэтому перед удалением рекомендуется делать резервные копии.

Пример кода для поиска неиспользуемых медиафайлов

Если хотите автоматизировать процесс собственным скриптом, можно проверить прикрепление файлов к записям и наличие ссылок в контенте.

function wpma_find_unused_media() {
    global $wpdb;
    // Получаем все ID вложений
    $attachments = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment'");
    $unused = [];

    foreach ($attachments as $attachment_id) {
        // Проверяем, есть ли у вложения родитель
        $parent_id = get_post_field('post_parent', $attachment_id);
        if ($parent_id) {
            continue; // Вложение используется
        }
        // Проверяем, используется ли в контенте
        $url = wp_get_attachment_url($attachment_id);
        $count = $wpdb->get_var($wpdb->prepare(
            "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
            '%' . $wpdb->esc_like($url) . '%'
        ));
        if (!$count) {
            $unused[] = $attachment_id;
        }
    }
    return $unused;
}

Этот код возвращает массив ID медиафайлов, которые не связаны с записями и не используются в контенте. Их можно затем удалить программно или вручную.

Автоматизация удаления старых медиафайлов с помощью WPMA

Для автоматизации можно создать крон-задачу, которая будет запускать функцию очистки по расписанию.

function wpma_delete_unused_media() {
    $unused = wpma_find_unused_media();
    foreach ($unused as $attachment_id) {
        wp_delete_attachment($attachment_id, true); // удаление вместе с файлами
    }
}

// Запускаем очистку раз в неделю
if (!wp_next_scheduled('wpma_weekly_media_cleanup')) {
    wp_schedule_event(time(), 'weekly', 'wpma_weekly_media_cleanup');
}
add_action('wpma_weekly_media_cleanup', 'wpma_delete_unused_media');

Такой подход позволит поддерживать библиотеку медиа в чистоте без участия администратора.

Важные моменты при автоматическом удалении

  • Обязательно делайте резервные копии перед началом автоматической очистки.
  • Проверяйте логи действий скрипта, чтобы не удалять нужные файлы.
  • Можно добавить исключения для определённых папок или типов файлов.

Использование плагина Clearfy Pro для безопасной оптимизации медиа

Плагин Clearfy Pro предлагает функционал для оптимизации и очистки медиа, включая удаление неиспользуемых изображений. Он интегрируется с админкой и позволяет настроить правила очистки без риска удаления важных данных.

В Clearfy есть удобный интерфейс для анализа и массового удаления, а также опции для автоматизации через WP-Cron с уведомлениями.

Рекомендации по работе с медиафайлами в WordPress

Чтобы минимизировать накопление неиспользуемых файлов, придерживайтесь следующих правил:

  • Загружайте только необходимые файлы и удаляйте временные после использования.
  • Используйте оптимизаторы изображений для снижения размера без потери качества.
  • Регулярно проверяйте библиотеку с помощью плагинов или собственных инструментов.
  • Автоматизируйте очистку, чтобы не накапливать «мусор» и не тратить время на рутину.

Автоматическое удаление старых медиафайлов — важный шаг к поддержке здоровой и быстрой WordPress-системы. Используйте приведённые примеры кода и проверенные плагины, чтобы сделать этот процесс удобным и безопасным.

WooCommerce: автоматическое отключение способов оплаты при неподтверждённых заказах
03.06.2026
Как создать и использовать внешние REST API в WordPress
26.11.2025
Как удалить или отключить плагин на определённых страницах WordPress
19.03.2026
Как добавить автоматическое подключение к контейнеру Redis в WordPress
30.03.2026
Как автоматизировать удаление неиспользуемых медиафайлов в WordPress
15.01.2026