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

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

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

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

Удаление старых изображений полезно для:

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

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

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

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

Самые популярные плагины для этой задачи:

  • Media Cleaner — сканирует медиатеку и базу данных, выявляет неиспользуемые файлы и предлагает их удалить. Существует бесплатная версия и PRO с расширенными функциями.
  • DNUI (Delete Not Used Image) — простой плагин для поиска неиспользуемых медиафайлов, который анализирует содержимое сайта и показывает результаты.

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

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

Если хотите более точный контроль, можно написать PHP-скрипт, который проверит все изображения в uploads и сравнит их с записями в базе данных.

Пример функции wpall_check_unused_images(), которая ищет изображения без привязки к постам:

function wpall_check_unused_images() {
    global $wpdb;
    $query = "SELECT ID, guid FROM {$wpdb->prefix}posts WHERE post_type = 'attachment' AND post_mime_type LIKE 'image/%'";
    $attachments = $wpdb->get_results($query);
    $unused = [];

    foreach ($attachments as $attachment) {
        $id = $attachment->ID;
        $guid = $attachment->guid;

        // Проверяем, есть ли ссылка на вложение в постах
        $count = $wpdb->get_var($wpdb->prepare(
            "SELECT COUNT(*) FROM {$wpdb->prefix}postmeta WHERE meta_value = %d",
            $id
        ));

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

    return $unused;
}

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

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

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

Удаление через WP CLI

Если у вас есть доступ к командной строке сервера, можно воспользоваться WP CLI для удаления вложений:

wp media delete <ID_вложения>

Например, удаление неиспользуемых изображений после поиска:

$unused = wpall_check_unused_images();
foreach ($unused as $attachment) {
    wp_delete_attachment($attachment->ID, true); // true — удаление с физическим файлом
}

Удаление через плагины

Плагины Media Cleaner и DNUI имеют интерфейс для выбора и безопасного удаления неиспользуемых изображений. Это наиболее простой и безопасный вариант для большинства пользователей.

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

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

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

  • Clearfy Pro — имеет функции оптимизации и очистки медиатеки;
  • Smush — популярный плагин для сжатия изображений без потери качества;
  • Imagify — сервис с плагином для автоматической оптимизации.

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

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

function wpall_delete_old_revisions() {
    global $wpdb;
    $revisions = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision'");
    foreach ($revisions as $revision_id) {
        wp_delete_post($revision_id, true);
    }
}
add_action('wp_scheduled_delete', 'wpall_delete_old_revisions');

Запускать эту функцию рекомендуется через WP-Cron с нужной периодичностью.

Итоговые рекомендации

Для эффективного удаления старых изображений в WordPress советуем:

  • Регулярно сканировать медиатеку на предмет неиспользуемых файлов с помощью плагинов или собственного кода;
  • Перед удалением обязательно делать резервные копии сайта и базы данных;
  • Использовать WP CLI или встроенные функции WordPress для безопасного удаления вложений;
  • Оптимизировать изображения при загрузке для снижения нагрузки на сервер;
  • Автоматизировать очистку ревизий и временных файлов.

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

Автоматическое удаление IP из черного списка в WordPress по времени
27.12.2025
WPAll Автообновления WordPress: как настроить безопасное обновление плагинов и тем
04.11.2025
Как создать уникальный фильтрованный список постов в WordPress
18.11.2025
Как удалить старые изображения в WordPress: практическое руководство
20.02.2026
Как создать собственный тип записи (Custom Post Type) в WordPress с примерами кода
22.11.2025