wpclean.ru wordpress WPClean.ru

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

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

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

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

  • Занимают место на диске: Большие изображения и видео быстро заполняют выделенное место на сервере, что может привести к дополнительным расходам или ограничению работы сайта.
  • Усложняют резервное копирование: Чем больше файлов, тем дольше создаются бэкапы и больше места они занимают.
  • Замедляют работу админки: При большом количестве файлов медиа-библиотека загружается дольше, что снижает удобство работы.
  • Повышают риск ошибок и конфликтов: Старые файлы могут конфликтовать с новыми плагинами или темами.

Поэтому регулярная чистка библиотеки — важный этап технического обслуживания WordPress.

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

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

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

В репозитории WordPress существуют решения, которые автоматически сканируют сайт и находят файлы, не подключённые к записям и страницам.

  • Media Cleaner — один из самых популярных плагинов. Он сканирует базу данных и содержимое сайта на предмет ссылок на медиафайлы и показывает список тех, что не используются. Есть бесплатная и платная версии с расширенными возможностями.
  • DNUI (Delete Not Used Image) — простой и лёгкий плагин, который удаляет изображения, не используемые в записях и страницах.
  • WP-Optimize — комплексный плагин для оптимизации, который включает инструменты очистки медиа-библиотеки.

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

Поиск неиспользуемых медиафайлов с помощью SQL-запросов

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

Например, следующий запрос найдёт все медиафайлы, которые не привязаны к записям (прикреплённые файлы имеют post_parent, у которых значение 0:

SELECT * FROM wp_posts WHERE post_type = 'attachment' AND post_parent = 0;

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

Как удалить неиспользуемые медиафайлы программно: пример функции для WPClean

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

Ниже пример функции с префиксом wpclean, которая сканирует медиафайлы и удаляет неиспользуемые. Для работы она использует стандартные функции WordPress.

function wpclean_delete_unused_media_files() {
    global $wpdb;
    // Получаем все ID вложений
    $attachments = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment'");
    $deleted = 0;

    foreach ($attachments as $attach_id) {
        $file_url = wp_get_attachment_url($attach_id);
        if (!$file_url) continue;

        // Проверяем, встречается ли URL в любом посте
        $count = $wpdb->get_var($wpdb->prepare(
            "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
            '%' . $wpdb->esc_like($file_url) . '%'
        ));

        // Проверяем, есть ли родительский пост
        $parent_id = wp_get_post_parent_id($attach_id);

        if ($count == 0 && $parent_id == 0) {
            // Удаляем вложение и файл
            wp_delete_attachment($attach_id, true);
            $deleted++;
        }
    }
    return $deleted;
}

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

Рекомендации и предостережения при очистке медиа библиотеки WordPress

Удаление файлов нужно выполнять с осторожностью, чтобы не повредить содержимое сайта:

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

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

Оптимизация после удаления

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

×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙