Как автоматически удалять старые изображения в WordPress для освобождения места

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

Почему важно удалять старые изображения в WordPress

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

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

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

Как определить неиспользуемые и старые изображения

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

  • Файлы, которые не вставлены в посты, страницы или виджеты.
  • Файлы, на которые нет ссылок в базе данных.
  • Файлы, загруженные давно и не изменявшиеся долгое время.

Для поиска таких файлов можно использовать SQL-запросы к базе данных или специальные плагины.

Использование плагина Media Cleaner

Один из популярных плагинов — Media Cleaner. Он сканирует медиатеку, выявляет неиспользуемые файлы и предлагает их удалить. Плагин поддерживает интеграцию с WooCommerce и другими популярными плагинами.

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

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

Если нужен гибкий и полностью подстроенный под сайт инструмент, можно написать кастомный скрипт, который будет регулярно удалять старые неиспользуемые изображения.

Ниже представлен пример функции wpmarket_auto_delete_old_images, которая ищет изображения, не используемые в записях, и удаляет их, если они были загружены более 180 дней назад.

function wpmarket_auto_delete_old_images() {
    global $wpdb;
    $days_threshold = 180; // количество дней
    $date_threshold = date('Y-m-d H:i:s', strtotime('-' . $days_threshold . ' days'));

    // Получаем ID всех вложений типа image, загруженных до даты порога
    $query = $wpdb->prepare(
        "SELECT ID FROM $wpdb->posts WHERE post_type = 'attachment' AND post_mime_type LIKE 'image/%' AND post_date < %s",
        $date_threshold
    );
    $attachments = $wpdb->get_col($query);

    foreach ($attachments as $attachment_id) {
        // Проверяем, используется ли вложение
        $used = $wpdb->get_var($wpdb->prepare(
            "SELECT COUNT(*) FROM $wpdb->postmeta WHERE meta_value LIKE %s",
            '%"' . $attachment_id . '"%'
        ));

        if ($used == 0) {
            // Удаляем вложение вместе с файлами
            wp_delete_attachment($attachment_id, true);
        }
    }
}

// Запускаем функцию по cron раз в неделю
if (!wp_next_scheduled('wpmarket_weekly_image_cleanup')) {
    wp_schedule_event(time(), 'weekly', 'wpmarket_weekly_image_cleanup');
}
add_action('wpmarket_weekly_image_cleanup', 'wpmarket_auto_delete_old_images');

Данный пример подходит для сайтов с небольшой нагрузкой. Для крупных проектов стоит предусмотреть логирование и обработку ошибок.

Советы по безопасному удалению изображений

Удаление файлов — операция необратимая, поэтому важно соблюдать меры предосторожности:

  • Перед автоматическим удалением делайте резервные копии сайта и базы данных.
  • Проверяйте, что скрипт не удаляет изображения, которые могут использоваться в нестандартных местах, например, в CSS или JS.
  • Настраивайте скрипт сначала на вывод списка файлов для удаления, а потом — на непосредственное удаление.

Плагины для комплексной работы с медиафайлами на wp-market.ru

Помимо Media Cleaner можно рассмотреть плагины, доступные на WPShop.ru:

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

Как дополнительно оптимизировать работу с изображениями

Удаление старых файлов — это только часть работы. Рекомендуется также:

  • Автоматически сжимать новые изображения с помощью плагинов, например, Imagify, Smush или встроенных решений Clearfy Pro.
  • Использовать CDN для быстрой загрузки и кеширования медиафайлов.
  • Настроить правильные размеры изображений и использовать адаптивные теги <img srcset> для разных устройств.

Таким образом, грамотное управление медиатекой поможет не только сэкономить место, но и повысить общую производительность сайта на WordPress.

Как создать автоматический отчет по продажам в WooCommerce с использованием WPRemark
09.01.2026
Как использовать хук woocommerce_checkout_update_order_meta для добавления данных к заказу в WooCommerce
18.05.2026
Как создать автоматический импорт изображений в WordPress с помощью PHP и плагинов
16.04.2026
Как удалить или скрыть страницу в WordPress без удаления из базы
20.01.2026
Как автоматически отключить неиспользуемые плагины в WooCommerce
20.04.2026