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

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

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

Каждое изображение, сохранённое в медиатеке WordPress, занимает место на диске и в базе данных. Если оно не используется на страницах или в записях, это — лишняя нагрузка. Постепенно это приводит к:

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

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

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

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

1. Поиск по базе данных и контенту

Самый точный, но сложный способ — проанализировать содержимое всех записей, страниц и мета-данных, чтобы найти ID или URL изображений, которые упоминаются в контенте. Те, что не нашли ссылок, можно считать неиспользуемыми.

Для этого нужно иметь навыки SQL-запросов и понимание структуры WordPress. Например, можно искать в таблицах wp_posts, wp_postmeta и wp_options упоминания ID вложений.

2. Использование специализированных плагинов

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

3. Ручной поиск и удаление

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

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

Рассмотрим несколько популярных и надёжных решений с кратким обзором функционала.

Media Cleaner

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

Особенности:

  • Поддержка сторонних плагинов и тем;
  • Безопасное удаление с возможностью восстановления;
  • Показывает отчёты и фильтры;
  • Есть бесплатная и PRO версии.

Установка:

Установите и активируйте плагин из репозитория WordPress, перейдите в раздел Media Cleaner, запустите сканирование, просмотрите результаты и удалите ненужные файлы.

WP-Optimize

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

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

  • Совместное использование с оптимизацией базы;
  • Простой интерфейс;
  • Возможность планировать очистку.

Force Regenerate Thumbnails

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

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

Если хотите самостоятельно реализовать проверку, можно использовать следующий пример функции, которая ищет в базе данных вложения (attachments), не привязанные к постам и не используемые в контенте.

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

    $unused = [];

    foreach ($attachments as $att_id) {
        // Проверяем, привязан ли файл к посту
        $parent_id = get_post_field('post_parent', $att_id);
        if ($parent_id) continue; // Используется как вложение

        // Проверяем, встречается ли URL изображения в контенте
        $url = wp_get_attachment_url($att_id);
        if (!$url) continue;

        $count = $wpdb->get_var($wpdb->prepare(
            "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
            '%' . $wpdb->esc_like($url) . '%'
        ));

        if ($count == 0) {
            $unused[] = $att_id;
        }
    }

    return $unused;
}

Эта функция возвращает массив ID вложений, которые не имеют родительских записей и не используются в контенте. Их можно безопасно удалить через wp_delete_attachment($id, true);.

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

Удалять файлы рекомендуется поэтапно и с резервным копированием. Пример удаления вложений из массива:

$unused_images = wppuzzle_find_unused_images();

foreach ($unused_images as $image_id) {
    wp_delete_attachment($image_id, true); // true – удаляет файл физически
}

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

Дополнительные советы по оптимизации медиатеки

Помимо удаления, стоит:

  • Регулярно использовать плагин Clearfy Pro, который помогает отключать лишние функции и оптимизировать загрузку;
  • Использовать формат WebP для новых изображений – поддерживается большинством плагинов оптимизации;
  • Настроить автоматическую очистку старых транзиентов, которые могут хранить данные о изображениях;
  • Использовать CDN и lazy loading, чтобы ускорить загрузку.

Заключение

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

Подробнее о плагинах и оптимизации смотрите на WPSHOP.ru.

Как добавить виджет отзывов с подтверждением на WordPress
19.02.2026
Как удалить неиспользуемые вариации товаров в WooCommerce
21.04.2026
Как добавить необычные типы полей в WordPress формах
15.03.2026
Как создать автоматический импорт продукции из CSV в WordPress
02.04.2026
Как отключить автоматические обновления плагинов WordPress
12.03.2026