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

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

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

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

  • Увеличению занимаемого дискового пространства.
  • Замедлению работы сайта и бэкапов.
  • Сложностям в управлении библиотекой.

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

Как определить, какие медиа файлы не используются

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

1. Использование плагинов для поиска неиспользуемых медиа файлов

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

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

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

2. Ручной поиск и удаление через код

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

function wpset_get_unused_attachments() {
    global $wpdb;
    $attachments = $wpdb->get_results("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment'");
    $unused = [];
    foreach ($attachments as $attachment) {
        $meta = get_post_meta($attachment->ID);
        $parent = get_post($attachment->post_parent);
        if (!$parent || $attachment->post_parent == 0) {
            // Дополнительно можно проверять вхождение в контент
            $unused[] = $attachment->ID;
        }
    }
    return $unused;
}

Далее эти ID можно использовать для удаления через wp_delete_attachment().

Как безопасно удалить неиспользуемые медиа файлы

Удаление напрямую через файловую систему или базу данных не рекомендуется. Безопасный способ — использовать функции WordPress:

function wpset_delete_attachments($attachment_ids) {
    foreach ($attachment_ids as $id) {
        wp_delete_attachment($id, true); // true — удаляет физические файлы
    }
}

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

Пример автоматизации удаления неиспользуемых файлов

Можно объединить поиск и удаление в одну функцию для периодической очистки:

function wpset_clean_unused_media() {
    $unused = wpset_get_unused_attachments();
    if (!empty($unused)) {
        wpset_delete_attachments($unused);
    }
}
// Для запуска вручную или через WP-Cron
// wpset_clean_unused_media();

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

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

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

Настройка WebP формата в WordPress

WebP — современный формат изображений с хорошим сжатием. Для поддержки WebP можно использовать плагин Clearfy Pro, который добавляет конвертацию и правильную выдачу WebP в медиабиблиотеке.

Заключение

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

Для удобства управления и оптимизации рекомендуем попробовать плагин Media Cleaner и Clearfy Pro.

Как установить и настроить Redis кэш в WordPress
23.11.2025
Оптимизация базы данных WordPress без плагинов: практические методы
26.11.2025
Как удалить неиспользуемые метаполя в WordPress с помощью кода
30.03.2026
WooCommerce: автоматическое отключение неактивных вариаций товаров
05.05.2026
Как создать простой шорткод в WordPress с применением кода
30.11.2025