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

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

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

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

  • EXIF — информация о камере, настройках съемки, дате и месте;
  • IPTC — данные о названии, авторе и описании;
  • XMP — метаданные, которые могут содержать дополнительные сведения о лицензировании и правах.

Удаление метаданных полезно по нескольким причинам:

  • Безопасность: Избавляет сайт от случайной публикации геолокации или другой личной информации.
  • Оптимизация: Уменьшает размер файлов, что сокращает время загрузки страницы и экономит трафик.
  • Соблюдение конфиденциальности: Особенно важно для сайтов с пользовательским контентом.

Как WordPress обрабатывает метаданные: обзор стандартных функций

По умолчанию WordPress сохраняет часть метаданных при загрузке изображения, например, размеры, ориентацию и некоторые EXIF-данные, которые используются для правильного отображения. Однако полное удаление метаданных не предусмотрено из коробки.

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

Удаление метаданных через плагины: лучшие решения

Существует несколько плагинов, которые автоматизируют удаление метаданных при загрузке:

  • Imsanity — плагин, который уменьшает размер и удаляет метаданные из изображений. Прост в настройке и подходит для большинства сайтов.
  • Strip Image Metadata — легкий плагин, который удаляет EXIF и IPTC из новых загрузок.
  • Clearfy Pro — многофункциональный плагин оптимизации, который содержит опцию удаления метаданных для повышения безопасности и скорости.

Для установки плагина достаточно перейти в админку WordPress, выбрать «Плагины» > «Добавить новый», ввести название и нажать «Установить» и «Активировать».

Программное удаление метаданных: пример кода для wp7.ru

Если вы хотите реализовать удаление метаданных без плагинов, можно использовать PHP-библиотеку Imagick или GD. Ниже пример функции, которую можно добавить в functions.php вашей темы или в отдельный плагин. Функция удаляет все метаданные из загружаемых изображений.

function wp7_remove_image_metadata($metadata, $attachment_id) {
    $file = get_attached_file($attachment_id);
    if (class_exists('Imagick')) {
        $image = new Imagick($file);
        $image->stripImage(); // удаляет все метаданные
        $image->writeImage($file);
        $image->clear();
        $image->destroy();
    } elseif (function_exists('exif_read_data')) {
        // Пример с GD: простой пересохранение без метаданных
        $info = getimagesize($file);
        switch ($info[2]) {
            case IMAGETYPE_JPEG:
                $img = imagecreatefromjpeg($file);
                imagejpeg($img, $file, 90);
                imagedestroy($img);
                break;
            case IMAGETYPE_PNG:
                $img = imagecreatefrompng($file);
                imagepng($img, $file);
                imagedestroy($img);
                break;
            // Добавьте другие типы при необходимости
        }
    }
    return $metadata;
}
add_filter('wp_generate_attachment_metadata', 'wp7_remove_image_metadata', 10, 2);

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

Объяснение кода

Мы получаем путь к файлу через get_attached_file, затем если доступна библиотека Imagick, вызываем метод stripImage() для удаления всех метаданных. Если Imagick не доступна, используем GD для пересохранения изображения, что также удаляет метаданные. Затем возвращаем исходные метаданные для дальнейшей обработки WordPress.

Удаление метаданных из уже загруженных изображений

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

Пример простого скрипта для пересохранения всех JPEG изображений в библиотеке:

function wp7_clean_all_images_metadata() {
    $args = [
        'post_type' => 'attachment',
        'post_mime_type' => 'image/jpeg',
        'posts_per_page' => -1,
    ];
    $query = new WP_Query($args);
    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            $file = get_attached_file(get_the_ID());
            if (class_exists('Imagick')) {
                $image = new Imagick($file);
                $image->stripImage();
                $image->writeImage($file);
                $image->clear();
                $image->destroy();
            }
        }
    }
    wp_reset_postdata();
}
// Запустите функцию вручную один раз
// wp7_clean_all_images_metadata();

Обратите внимание, что такую функцию нужно запускать вручную и с осторожностью, лучше на тестовом сайте.

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

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

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

Не забывайте делать бэкапы перед массовыми изменениями и тестировать новый код на локальном или тестовом сервере.

Как автоматизировать обновление контента в WordPress без плагинов
25.12.2025
Как использовать WP7 для автоматизации обновлений в WordPress
30.01.2026
Как использовать WP7 для автоматизации отчетности в WordPress
26.02.2026
Оптимизация запросов к мета-записям в WordPress
16.02.2026
Как создать плагин для автоматизации задач в WordPress
30.11.2025