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

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

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

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

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

  • Освободить дисковое пространство на хостинге.
  • Ускорить загрузку медиа-библиотеки в админке.
  • Сделать бэкапы легче и быстрее.
  • Избавиться от дублирующих и устаревших файлов.

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

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

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

1. Media Cleaner

Media Cleaner от Meow Apps — один из лучших инструментов для очистки медиа-библиотеки. Плагин анализирует все записи, страницы, виджеты, а также мультимедиа, используемые в плагинах и темах, и находит файлы, которые не связаны с контентом.

Основные возможности Media Cleaner:

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

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

2. WP-Optimize

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

Преимущества WP-Optimize:

  • Интеграция с очисткой базы данных и оптимизацией сайта.
  • Интуитивный интерфейс для удаления лишних файлов.
  • Поддержка планировщика задач.

3. Media Deduper

Если в дополнение к неиспользуемым изображениям вы хотите выявить и удалить дубликаты, Media Deduper — отличное решение. Плагин анализирует медиа-библиотеку, находит копии и предлагает выбрать, какие удалять.

Важно: перед удалением всегда делайте резервную копию.

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

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

Принцип работы:

  • Получаем все медиафайлы с типом 'image'.
  • Проверяем, встречается ли URL файла в содержимом записей и страниц.
  • Если нет — считаем файл неиспользуемым.
function wplock_find_unused_images() {
    $args = array(
        'post_type'      => 'attachment',
        'post_mime_type' => 'image',
        'posts_per_page' => -1,
    );
    $attachments = get_posts($args);
    $unused = array();

    foreach ($attachments as $attachment) {
        $url = wp_get_attachment_url($attachment->ID);
        if (!$url) continue;

        $found = false;
        $posts = get_posts(array('post_type' => array('post', 'page'), 'posts_per_page' => -1));
        foreach ($posts as $post) {
            if (strpos($post->post_content, $url) !== false) {
                $found = true;
                break;
            }
        }

        if (!$found) {
            $unused[] = $attachment;
        }
    }

    return $unused;
}

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

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

Для удаления используйте функцию wp_delete_attachment(), которая удалит файл и всю связанную с ним информацию:

function wplock_delete_unused_images() {
    $unused = wplock_find_unused_images();
    foreach ($unused as $attachment) {
        wp_delete_attachment($attachment->ID, true); // true — удаляет физический файл
    }
}

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

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

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

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

Использование CDN для медиа

Подключение CDN (Content Delivery Network) разгружает сервер и ускоряет доставку медиа пользователям. Популярные решения: Cloudflare, BunnyCDN, KeyCDN.

Регулярная проверка и поддержка

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

Итог

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

Как удалить неиспользуемые шорткоды в WordPress: практическое руководство
29.12.2025
Как использовать REST API в WordPress для создания своего плагина
08.12.2025
Как удалить заблокированные и неактивные пользователи в WordPress
22.12.2025
Как добавить свои метаданные в WordPress
16.11.2025
Как удалить дублированные записи в WordPress с помощью кода
11.12.2025