Оптимизация изображений — одна из ключевых задач для ускорения загрузки сайта на WordPress. Большие и неотсортированные изображения могут значительно замедлить работу ресурса, ухудшая пользовательский опыт и снижая позиции в поисковой выдаче. В этой статье подробно рассмотрим, как оптимизировать изображения в WordPress с примерами плагинов и решений с помощью кода.
Почему важна оптимизация изображений в WordPress
Изображения занимают значительную часть от общего объема данных страницы. Без оптимизации они увеличивают время загрузки, влияют на потребление трафика посетителями и создают дополнительную нагрузку на сервер. Кроме того, поисковые системы учитывают скорость загрузки сайта как фактор ранжирования.
Оптимизация изображений включает в себя несколько направлений: сжатие без потери качества, изменение размеров, использование современных форматов, отложенная загрузка (lazy loading) и кэширование.
Основные проблемы с изображениями на WordPress
- Большой вес файлов — часто загружаются изображения с камеры или в формате PNG без сжатия.
- Отсутствие адаптивных изображений — не используются теги
srcsetиsizesдля разных устройств. - Отсутствие современных форматов — не применяются WebP или AVIF.
- Нет lazy loading — все изображения загружаются сразу при открытии страницы.
Плагины для оптимизации изображений в WordPress
Использование плагинов — самый простой и эффективный способ оптимизировать изображения без глубоких технических навыков. Рассмотрим несколько популярных и надежных решений.
1. Imagify
Imagify автоматически сжимает изображения при загрузке, поддерживает конвертацию в WebP, а также оптимизирует уже загруженные файлы. Плагин имеет бесплатный тариф с лимитом на оптимизацию и платные планы для профессионалов.
Особенности:
- Сжатие без потери качества, с возможностью выбора уровня сжатия.
- Поддержка WebP и резервных форматов.
- Интеграция с WooCommerce.
2. ShortPixel
ShortPixel — мощный инструмент для сжатия и конвертации изображений. Плагин работает с JPEG, PNG, GIF, WebP и PDF.
Преимущества:
- Поддержка lossy, glossy и lossless сжатия.
- Оптимизация изображений и PDF.
- Автоматическое создание WebP-версий.
3. Clearfy Pro и WPCommunity для оптимизации загрузки
Если вы используете Clearfy Pro, в нем есть опции для отключения неиспользуемых скриптов и оптимизации загрузки изображений, включая lazy loading. Также тема WPCommunity поддерживает встроенную оптимизацию медиафайлов.
Примеры кода для оптимизации изображений в WordPress
Помимо плагинов, можно применить собственные решения с помощью кода. Ниже приведены примеры, как реализовать lazy loading и добавление поддержки WebP.
Включение нативного lazy loading
В последних версиях WordPress lazy loading включен по умолчанию. Но если нужно вручную добавить атрибут loading="lazy" к изображениям в контенте, можно использовать фильтр:
function wpmoney_lazy_loading_images( $content ) {
return preg_replace('/<img(.*?)>/i', '<img loading="lazy" $1>', $content);
}
add_filter( 'the_content', 'wpmoney_lazy_loading_images' );Этот код добавит атрибут к каждому тегу <img> в содержимом поста, если он отсутствует.
Добавление поддержки WebP с проверкой браузера
WebP — современный формат с меньшим размером файлов при хорошем качестве. Ниже пример функции, которая подставляет WebP-версию изображения, если браузер ее поддерживает:
function wpmoney_get_webp_image( $image_url ) {
$webp_url = preg_replace('/\.(jpe?g|png)$/i', '.webp', $image_url);
if ( wpmoney_browser_supports_webp() && file_exists( str_replace( home_url('/'), ABSPATH, $webp_url ) ) ) {
return $webp_url;
}
return $image_url;
}
function wpmoney_browser_supports_webp() {
if ( ! isset( $_SERVER['HTTP_ACCEPT'] ) ) return false;
return strpos( $_SERVER['HTTP_ACCEPT'], 'image/webp' ) !== false;
}Данный код проверяет, поддерживает ли браузер WebP, и если есть файл с расширением .webp, возвращает его. Иначе — оригинальный URL.
Как изменить размеры изображений для адаптивности
WordPress генерирует несколько размеров изображений при загрузке: thumbnail, medium, large и т.д. Чтобы улучшить адаптивность, можно зарегистрировать дополнительные размеры и использовать атрибуты srcset.
Регистрация нового размера изображения
function wpmoney_add_image_sizes() {
add_image_size( 'wpmoney-custom-size', 800, 600, true );
}
add_action( 'after_setup_theme', 'wpmoney_add_image_sizes' );Теперь можно выводить изображение с этим размером:
echo wp_get_attachment_image( $attachment_id, 'wpmoney-custom-size' );WordPress автоматически добавит srcset и sizes для адаптивного вывода.
Вывод оптимизированных изображений в шаблонах
Для оптимального вывода изображений в шаблонах используйте функцию wp_get_attachment_image(), она автоматически генерирует адаптивные теги:
$img_html = wp_get_attachment_image( $attachment_id, 'medium' );
echo $img_html;Если вы хотите интегрировать WebP, можно комбинировать с предыдущей функцией и выводить с помощью <picture>:
function wpmoney_picture_webp( $attachment_id, $size = 'medium' ) {
$img_url = wp_get_attachment_image_url( $attachment_id, $size );
$webp_url = preg_replace('/\.(jpe?g|png)$/i', '.webp', $img_url);
if ( ! file_exists( str_replace( home_url('/'), ABSPATH, $webp_url ) ) ) {
$webp_url = false;
}
$html = '<picture>';
if ( $webp_url ) {
$html .= '<source srcset="' . esc_url( $webp_url ) . '" type="image/webp">';
}
$html .= wp_get_attachment_image( $attachment_id, $size );
$html .= '</picture>';
return $html;
}
echo wpmoney_picture_webp( $attachment_id );Рекомендации по оптимизации изображений без плагинов
Если не хотите использовать плагины, оптимизируйте изображения до загрузки:
- Используйте графические редакторы (Photoshop, Affinity Photo, GIMP) для сжатия.
- Конвертируйте в WebP через онлайн-сервисы.
- Изменяйте размеры изображений под макет сайта.
- Используйте инструменты командной строки, например,
imageminилиcwebp.
Загрузка уже оптимизированных файлов значительно снижает нагрузку на сервер и ускоряет сайт.
Заключение
Оптимизация изображений — комплексный процесс, который включает сжатие, адаптивность, поддержу современных форматов и правильную загрузку. Используйте плагины Imagify или ShortPixel для автоматизации, а также дополняйте их собственным кодом для точечных решений. Это позволит значительно повысить скорость загрузки сайта на WordPress и улучшить опыт пользователей.
Для удобной работы с плагинами рекомендуем ознакомиться с продуктами на WPSHOP.ru, где можно подобрать оптимальные решения для вашего проекта.