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

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

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

Медиафайлы часто остаются «зависшими» в библиотеке без активного использования. Если не следить за этим, то:

  • Файлы занимают дисковое пространство хостинга, что может привести к увеличению стоимости или ограничению ресурсов.
  • Резервные копии сайта увеличиваются по весу и времени создания.
  • Усложняется управление контентом, особенно если много дубликатов и неиспользуемых файлов.
  • Потенциально снижается производительность при загрузке медиа-библиотеки в админке.

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

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

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

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

Отсюда следует: просто смотреть на файлы в uploads недостаточно. Нужно анализировать контент сайта.

Использование плагина Media Cleaner для поиска неиспользуемых изображений

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

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

  • Поддержка мультимедийных библиотек и пользовательских типов постов
  • Возможность предварительно просмотреть найденные файлы перед удалением
  • Создание резервной копии при удалении (в Pro версии)

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

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

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

function wpfaq_find_unused_images() {
    global $wpdb;
    // Получаем все ID картинок
    $attachments = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type='attachment' AND post_mime_type LIKE 'image/%'");

    $unused = [];

    foreach ($attachments as $id) {
        $url = wp_get_attachment_url($id);
        if (!$url) continue;

        // Ищем URL изображения в содержимом постов
        $count = $wpdb->get_var($wpdb->prepare(
            "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
            '%' . $wpdb->esc_like($url) . '%'
        ));

        if ($count == 0) {
            $unused[] = [
                'ID' => $id,
                'URL' => $url
            ];
        }
    }

    return $unused;
}

// Пример вызова и вывода
$unused_images = wpfaq_find_unused_images();
foreach ($unused_images as $img) {
    echo 'Unused image ID: ' . $img['ID'] . ', URL: ' . $img['URL'] . '<br>';
}

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

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

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

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

Для удаления можно использовать Media Cleaner, как описано выше, либо написать функцию удаления по ID:

function wpfaq_delete_attachment($attachment_id) {
    if (!current_user_can('delete_post', $attachment_id)) {
        return false;
    }
    return wp_delete_attachment($attachment_id, true); // true — удаляет файлы с диска
}

// Пример удаления
foreach ($unused_images as $img) {
    wpfaq_delete_attachment($img['ID']);
}

Оптимизация работы с изображениями: рекомендации

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

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

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

Clearfy Pro предлагает удобные инструменты для очистки и оптимизации сайта. В частности, он умеет:

  • Автоматически находить и удалять неиспользуемые файлы
  • Оптимизировать изображения и размеры миниатюр
  • Настраивать автоматическую очистку по расписанию

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

Выводы и дальнейшие шаги

Удаление неиспользуемых изображений — важный этап технической поддержки WordPress-сайта, который помогает экономить ресурсы и поддерживать порядок. Для этого используйте специализированные плагины типа Media Cleaner, либо кастомные скрипты для анализа. Обязательно делайте резервные копии перед удалением.

Регулярная оптимизация медиа и грамотная работа с изображениями позволят избежать проблем с производительностью и хранением данных.

Как автоматически удалять спам комментарии в WordPress
12.03.2026
WordPress: как создать свой плагин с нуля
07.11.2025
Как добавить владельца (автора) постов в WordPress и управлять им программно
20.02.2026
WooCommerce: как автоматически отслеживать изменения статуса заказа
20.06.2026
Как автоматически изменять данные пользователя в WordPress при регистрации
09.02.2026