WordPress-сайты со временем накапливают множество медиафайлов, особенно изображений. Многие из них перестают использоваться — это могут быть старые картинки из удалённых постов, неиспользуемые миниатюры или дубликаты. Ненужные изображения занимают место на сервере и замедляют резервное копирование, а также могут повлиять на производительность сайта. В этой статье разберём, как найти и удалить такие неиспользуемые изображения грамотно и безопасно.
Почему важно удалять неиспользуемые изображения в WordPress
Медиафайлы часто остаются «зависшими» в библиотеке без активного использования. Если не следить за этим, то:
- Файлы занимают дисковое пространство хостинга, что может привести к увеличению стоимости или ограничению ресурсов.
- Резервные копии сайта увеличиваются по весу и времени создания.
- Усложняется управление контентом, особенно если много дубликатов и неиспользуемых файлов.
- Потенциально снижается производительность при загрузке медиа-библиотеки в админке.
Удаление неиспользуемых изображений — часть регулярной оптимизации сайта, полезная даже для небольших ресурсов.
Как определить, какие изображения не используются
Определить, какие файлы действительно не задействованы на сайте, задача не всегда тривиальная. В WordPress изображения могут использоваться:
- В содержимом постов и страниц
- В виджетах и кастомных полях
- В заголовках, фоновых изображениях тем
- В плагинах, например, слайдерах или галереях
Отсюда следует: просто смотреть на файлы в uploads недостаточно. Нужно анализировать контент сайта.
Использование плагина Media Cleaner для поиска неиспользуемых изображений
Один из популярных и проверенных инструментов — плагин Media Cleaner. Он сканирует весь контент, включая посты, страницы, виджеты, метаданные и даже базу данных, чтобы найти изображения, на которые нет ссылок.
Преимущества Media Cleaner:
- Поддержка мультимедийных библиотек и пользовательских типов постов
- Возможность предварительно просмотреть найденные файлы перед удалением
- Создание резервной копии при удалении (в Pro версии)
Однако бесплатная версия имеет ограничения, и иногда плагин не учитывает сложные кастомные кейсы.
Пример кастомного скрипта для поиска неиспользуемых изображений
Если нужен более гибкий подход, можно написать функцию, которая проходит по всем медиафайлам и проверяет, встречаются ли они в постах и метаданных. Ниже пример функции для wpfaq, которая ищет изображения, не используемые в содержимом постов:
function wpfaq_find_unused_images() {
global $wpdb;
// Получаем все ID картинок
$attachments = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type='attachment' AND post_mime_type LIKE 'image/%'");
$unused = [];
foreach ($attachments as $id) {
$url = wp_get_attachment_url($id);
if (!$url) continue;
// Ищем URL изображения в содержимом постов
$count = $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
'%' . $wpdb->esc_like($url) . '%'
));
if ($count == 0) {
$unused[] = [
'ID' => $id,
'URL' => $url
];
}
}
return $unused;
}
// Пример вызова и вывода
$unused_images = wpfaq_find_unused_images();
foreach ($unused_images as $img) {
echo 'Unused image ID: ' . $img['ID'] . ', URL: ' . $img['URL'] . '<br>';
}
Этот скрипт ищет только в содержимом постов, не учитывая виджеты, метаданные и плагины, но его можно доработать под конкретные задачи.
Как безопасно удалить неиспользуемые изображения
После обнаружения неиспользуемых изображений важно удалить их максимально безопасно:
- Перед удалением — сделайте полную резервную копию сайта и базы данных.
- Используйте проверенные плагины с функцией «корзины» или возможность восстановления.
- Удаляйте изображения не сразу, а после проверки их неиспользования вручную.
Для удаления можно использовать Media Cleaner, как описано выше, либо написать функцию удаления по ID:
function wpfaq_delete_attachment($attachment_id) {
if (!current_user_can('delete_post', $attachment_id)) {
return false;
}
return wp_delete_attachment($attachment_id, true); // true — удаляет файлы с диска
}
// Пример удаления
foreach ($unused_images as $img) {
wpfaq_delete_attachment($img['ID']);
}
Оптимизация работы с изображениями: рекомендации
Чтобы минимизировать накопление неиспользуемых изображений в будущем, соблюдайте следующие правила:
- Используйте плагины для оптимизации изображений, например Clearfy Pro, который умеет автоматически удалять неиспользуемое и оптимизировать медиа.
- Регулярно проверяйте медиа-библиотеку и удаляйте дубликаты.
- При удалении постов используйте плагины, которые удаляют все связанные с постом медиафайлы.
- Храните изображения только в нужных размерах, удаляйте лишние миниатюры.
Использование плагина Clearfy Pro для автоматической очистки
Clearfy Pro предлагает удобные инструменты для очистки и оптимизации сайта. В частности, он умеет:
- Автоматически находить и удалять неиспользуемые файлы
- Оптимизировать изображения и размеры миниатюр
- Настраивать автоматическую очистку по расписанию
Подробнее о возможностях Clearfy Pro можно прочитать на официальной странице плагина.
Выводы и дальнейшие шаги
Удаление неиспользуемых изображений — важный этап технической поддержки WordPress-сайта, который помогает экономить ресурсы и поддерживать порядок. Для этого используйте специализированные плагины типа Media Cleaner, либо кастомные скрипты для анализа. Обязательно делайте резервные копии перед удалением.
Регулярная оптимизация медиа и грамотная работа с изображениями позволят избежать проблем с производительностью и хранением данных.