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

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

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

Проблемные изображения могут негативно влиять на работу сайта и его SEO. К ним относятся:

  • Файлы с ошибками загрузки или поврежденные изображения;
  • Слишком большие по весу файлы, замедляющие загрузку страниц;
  • Дублирующиеся файлы, которые занимают дополнительное место;
  • Изображения, которые не используются ни в одном посте или странице.

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

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

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

Определение битых изображений

Для проверки, является ли изображение битым, можно попытаться загрузить его с помощью функции wp_get_image_editor(). Если она возвращает ошибку, значит изображение повреждено.

function wpblog_check_and_delete_broken_images() {
    $args = [
        'post_type'      => 'attachment',
        'post_mime_type' => 'image',
        'posts_per_page' => -1,
        'post_status'    => 'inherit',
    ];

    $query = new WP_Query($args);
    if (!$query->have_posts()) {
        return;
    }

    while ($query->have_posts()) {
        $query->the_post();
        $attachment_id = get_the_ID();
        $file_path = get_attached_file($attachment_id);

        if (!$file_path || !file_exists($file_path)) {
            // Файл отсутствует, удаляем запись
            wp_delete_attachment($attachment_id, true);
            continue;
        }

        $image_editor = wp_get_image_editor($file_path);

        if (is_wp_error($image_editor)) {
            // Изображение битое, удаляем
            wp_delete_attachment($attachment_id, true);
        }
    }
    wp_reset_postdata();
}

Эту функцию можно запускать вручную или по расписанию с помощью wp_cron.

Удаление неиспользуемых изображений

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

Основная идея — проверить, используется ли attachment ID в контенте сайта, и если нет — удалить.

function wpblog_delete_unused_images() {
    global $wpdb;

    $attachments = get_posts([
        'post_type'      => 'attachment',
        'post_mime_type' => 'image',
        'posts_per_page' => -1,
        'post_status'    => 'inherit',
    ]);

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

        // Проверяем, встречается ли ID в контенте
        $count = $wpdb->get_var($wpdb->prepare(
            "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
            '%wp-image-' . $attachment_id . '%'
        ));

        if ($count == 0) {
            // Не используется, удаляем
            wp_delete_attachment($attachment_id, true);
        }
    }
}

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

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

Если вы предпочитаете готовые решения, обратите внимание на следующие плагины:

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

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

Оптимизация больших изображений: автоматическое сжатие и ресайз

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

Пример функции, которая сжимает загруженное изображение до максимальной ширины 1200px:

function wpblog_resize_uploaded_image($file) {
    $max_width = 1200;

    $image_editor = wp_get_image_editor($file['file']);
    if (is_wp_error($image_editor)) {
        return $file;
    }

    $size = $image_editor->get_size();
    if ($size['width'] > $max_width) {
        $image_editor->resize($max_width, null);
        $image_editor->save($file['file']);
    }

    return $file;
}
add_filter('wp_handle_upload_prefilter', 'wpblog_resize_uploaded_image');

Этот код можно добавить в functions.php вашей темы или в собственный плагин. Он автоматически уменьшит слишком большие изображения при загрузке.

Выводы и рекомендации

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

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как избежать проблем с перенаправлениями в WordPress: практические советы и примеры
30.12.2025
Запрет доступа к административной панели WordPress по IP: практическое руководство
07.11.2025
Как установить ограничения на сохранение данных через REST API в WordPress
28.02.2026
Как удалить кэш и оптимизировать базу данных WordPress без плагинов
20.12.2025
Как использовать хук wp_blog для изменения заголовка страницы в WordPress
13.12.2025
×
Оптимизируй свой сайт!

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

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