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

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

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

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

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

Определение старых изображений: критерии выбора

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

  • Дата загрузки — например, удалить файлы старше 1 года.
  • Неиспользование — изображения, которые не привязаны к активным постам, страницам или медиаэлементам.
  • Отсутствие в контенте — файлы, на которые нет ссылок в базе данных.

Комбинация этих условий позволяет безопасно очистить медиатеку от ненужных файлов.

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

Для упрощения задачи можно воспользоваться готовыми плагинами. Вот несколько полезных вариантов:

1. Media Cleaner

Один из самых популярных инструментов для поиска и удаления неиспользуемых медиафайлов. Плагин анализирует базу данных и контент, выявляет «мусор» и предлагает безопасно удалить или переместить файлы.

Преимущества Media Cleaner:

  • Поддержка сторонних плагинов и билдов.
  • Интеграция с WPML и WooCommerce.
  • Режим тестирования файлов перед удалением.

2. WP-Optimize

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

WP-Optimize позволяет выполнять задания по расписанию, что удобно для автоматизации процесса.

3. Clearfy Pro

Плагин для комплексной оптимизации WordPress, в том числе умеет находить и удалять неиспользуемые медиафайлы. Хорошо интегрируется с другими инструментами WPSHOP, что делает его отличным выбором для сайтов с большим количеством контента.

Пример кода для автоматического удаления старых изображений

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

function wpabout_delete_old_unused_images() {
    global $wpdb;
    $date_threshold = date('Y-m-d H:i:s', strtotime('-180 days'));

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

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

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

// Запускаем функцию раз в сутки через WP-Cron
if ( ! wp_next_scheduled( 'wpabout_daily_image_cleanup' ) ) {
    wp_schedule_event( time(), 'daily', 'wpabout_daily_image_cleanup' );
}
add_action( 'wpabout_daily_image_cleanup', 'wpabout_delete_old_unused_images' );

Этот код:

  • Находит все изображения старше 180 дней.
  • Проверяет, не используется ли изображение в метаданных других постов.
  • Удаляет неиспользуемые изображения с диска и из базы данных.
  • Автоматически запускается каждый день через WP-Cron.

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

Дополнительные советы по работе с медиатекой

Оптимизация изображений перед загрузкой

Перед загрузкой на сайт лучше оптимизировать изображения с помощью плагинов, например, Imagify или ShortPixel — это уменьшит размер файлов без потери качества и снизит нагрузку.

Использование формата WebP

Поддержка формата WebP значительно улучшит скорость загрузки. Плагины Clearfy Pro и OmniVideo из набора WPSHOP умеют автоматически конвертировать изображения в WebP на лету.

Регулярный мониторинг и очистка

Настройте автоматические отчёты и периодическую очистку медиатеки, чтобы не допускать накопления «мусора».

Для удобного управления медиа можно использовать плагин Clearfy Pro — он помогает оптимизировать сайт и удалять ненужные файлы.

Выводы

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

Не забывайте делать резервные копии перед массовым удалением и тщательно тестировать все изменения в безопасной среде.

Оптимизация изображений для WordPress без потери качества
13.12.2025
Как использовать WP-Cron для автоматизации задач в WordPress
08.12.2025
Как использовать AJAX в WordPress для отправки формы без перезагрузки страницы
07.01.2026
WooCommerce: как автоматически изменять стоимость товара при изменении количества
04.06.2026
WooCommerce: как использовать хуки для добавления пользовательских полей в форму оформления заказа
18.05.2026