Оптимизация изображений — важный этап для ускорения загрузки сайта и улучшения пользовательского опыта. В этой статье мы рассмотрим, как автоматически оптимизировать изображения при загрузке в WordPress, чтобы снизить вес файлов без потери качества и повысить скорость работы сайта.
Почему важна автоматическая оптимизация изображений в WordPress
При загрузке медиафайлов без оптимизации размер изображений может быть чрезмерно большим, что замедляет загрузку страниц и негативно влияет на SEO. Автоматическая оптимизация позволяет:
- Уменьшить размер файлов без визуальных потерь;
- Сэкономить место на сервере и в базе данных;
- Увеличить скорость загрузки сайта;
- Упростить работу для контент-менеджеров, избавляя их от необходимости оптимизировать вручную.
Рассмотрим, как это сделать с помощью готовых плагинов и собственного кода.
Использование плагинов для автоматической оптимизации изображений
Плагин Imagify
Imagify — популярный плагин с простым интерфейсом и мощными алгоритмами сжатия. Он автоматически оптимизирует изображения при загрузке и позволяет оптимизировать уже загруженные медиафайлы.
Основные возможности Imagify:
- Поддержка форматов JPG, PNG, GIF и WebP;
- Выбор уровня сжатия (Normal, Aggressive, Ultra);
- Автоматическое создание WebP-версий;
- Интеграция с медиабиблиотекой WordPress;
- Поддержка пакетной оптимизации.
Для установки:
- Перейдите в админку WordPress → Плагины → Добавить новый;
- Найдите «Imagify» и установите его;
- Активируйте плагин и введите API-ключ (регистрация бесплатна на сайте разработчика);
- Настройте уровень оптимизации и включите автоматическую оптимизацию при загрузке.
Плагин ShortPixel Image Optimizer
ShortPixel — еще один мощный инструмент с поддержкой множества форматов и глубоким сжатием без потери качества. Особенность — поддержка WebP, AVIF и PDF.
Преимущества ShortPixel:
- Автоматическая оптимизация при загрузке;
- Возможность оптимизировать изображения в пакетном режиме;
- Поддержка CDN для ускорения загрузки;
- Обработка Thumbnails и Retina изображений;
- Совместимость с WooCommerce и другими плагинами.
Настройка аналогична Imagify — установка, активация, ввод API-ключа и включение автоматической оптимизации.
Автоматическая оптимизация изображений через собственный код
Если вы хотите избежать использования сторонних сервисов и плагинов, можно реализовать базовую оптимизацию изображений средствами PHP и WordPress.
Пример функции для сжатия JPEG при загрузке
Добавьте следующий код в functions.php вашей темы или в отдельный плагин:
function wpupload_optimize_image_on_upload( $metadata, $attachment_id ) {
$upload_dir = wp_upload_dir();
$file = get_attached_file( $attachment_id );
// Проверяем, что файл JPEG
$file_type = wp_check_filetype( $file );
if ( 'image/jpeg' !== $file_type['type'] ) {
return $metadata;
}
// Загружаем изображение
$image = imagecreatefromjpeg( $file );
if ( ! $image ) {
return $metadata;
}
// Сохраняем сжатое изображение с качеством 75
imagejpeg( $image, $file, 75 );
imagedestroy( $image );
return $metadata;
}
add_filter( 'wp_generate_attachment_metadata', 'wpupload_optimize_image_on_upload', 10, 2 );Этот код автоматически сжимает JPEG-изображения при загрузке, снижая качество до 75%, что существенно уменьшает размер файла без заметной потери качества.
Расширение функции под другие форматы и WebP
Для PNG можно использовать imagepng с параметром сжатия, а для WebP — imagewebp (PHP 7.0+). Пример для PNG:
function wpupload_optimize_png_on_upload( $metadata, $attachment_id ) {
$file = get_attached_file( $attachment_id );
$file_type = wp_check_filetype( $file );
if ( 'image/png' !== $file_type['type'] ) {
return $metadata;
}
$image = imagecreatefrompng( $file );
if ( ! $image ) {
return $metadata;
}
// Сохраняем сжатое PNG (уровень сжатия 6)
imagepng( $image, $file, 6 );
imagedestroy( $image );
return $metadata;
}
add_filter( 'wp_generate_attachment_metadata', 'wpupload_optimize_png_on_upload', 11, 2 );Оптимизация изображений с помощью WP-CLI
Для разработчиков и системных администраторов WP-CLI предлагает удобный способ оптимизации уже загруженных изображений командой:
wp media regenerate --image_resizeДля более продвинутой оптимизации можно использовать плагин Clearfy Pro, который интегрируется с WP-CLI и позволяет выполнять пакетную оптимизацию с дополнительными настройками.
Практические советы по оптимизации изображений в WordPress
Выбирайте правильный формат
Для фотографий оптимальны JPEG и WebP, для графиков и иконок — PNG или SVG. WebP поддерживается большинством современных браузеров и обеспечивает лучшее сжатие, поэтому стоит рассмотреть его использование вместе с плагинами, которые автоматически создают WebP-версии.
Минимизируйте размеры изображений
Перед загрузкой рекомендуется масштабировать изображения под максимально необходимый размер на сайте. Например, если основная ширина контента 1200px — нет смысла загружать картинки шириной 4000px.
Используйте CDN и lazy loading
Подключение CDN (Content Delivery Network) ускорит доставку изображений пользователям по всему миру. В WordPress 5.5+ встроена поддержка lazy loading, которая откладывает загрузку изображений вне зоны видимости экрана, что также улучшает скорость загрузки страниц.
Выводы и рекомендации
Автоматическая оптимизация изображений — одна из базовых задач для повышения производительности сайта на WordPress. Использование готовых плагинов, таких как Imagify или ShortPixel, позволяет быстро настроить качественное сжатие с минимальными усилиями. Если же вы хотите полностью контролировать процесс и не зависеть от сторонних сервисов, можно реализовать оптимизацию через собственный PHP-код, как показано выше.
Для комплексного улучшения производительности рекомендуем также обратить внимание на плагин Clearfy Pro, который предлагает расширенные возможности оптимизации и очистки сайта.