WooCommerce: как оптимизировать загрузку изображений товаров в теме WordPress

Диагностика проблемы медленной загрузки изображений товаров

Если в вашем WooCommerce-магазине страницы товаров и каталога загружаются долго, причиной часто бывает неэффективная работа с изображениями. Для диагностики используйте инструменты браузера (Chrome DevTools) и онлайн-сервисы (PageSpeed Insights, GTmetrix). Обратите внимание на следующие показатели:

  • Размер загружаемых изображений (обычно > 500 КБ — критично)
  • Количество запросов к серверу за счет загрузки нескольких форматов и размеров
  • Отсутствие современных форматов WebP
  • Отсутствие ленивой загрузки (lazy load)

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

Пошаговое решение: оптимизация вывода изображений в теме WooCommerce

1. Используйте правильные размеры изображений WooCommerce

По умолчанию WooCommerce регистрирует размеры:

  • woocommerce_thumbnail — для каталога товаров
  • woocommerce_single — для страницы товара
  • woocommerce_gallery_thumbnail — для миниатюр галереи

В теме используйте именно эти размеры с функцией wp_get_attachment_image(), чтобы автоматически получить оптимальный вариант:

echo wp_get_attachment_image( get_post_thumbnail_id(), 'woocommerce_thumbnail' );

2. Включите поддержку WebP и lazy load

WordPress 5.5+ автоматически добавляет атрибут loading="lazy" к тегам <img>, но в WooCommerce темы это может не работать из-за кастомных шаблонов. Проверьте используемые шаблоны и убедитесь, что они вызывают wp_get_attachment_image() или используют функцию the_post_thumbnail() с поддержкой lazy load.

Для WebP можно использовать плагины (например, Clearfy Pro), которые автоматически создадут WebP-версии и добавят их через тег <picture>. Если хотите реализовать вручную, можно использовать фильтр wp_get_attachment_image_attributes для добавления srcset с WebP.

add_filter('wp_get_attachment_image_attributes', function($attr, $attachment, $size) {
    if (strpos($attr['src'], '.jpg') !== false || strpos($attr['src'], '.png') !== false) {
        $webp = str_replace(['.jpg', '.png'], '.webp', $attr['src']);
        $attr['srcset'] = $webp . ' 1x';
    }
    return $attr;
}, 10, 3);

3. Отложенная загрузка галереи и миниатюр

Для страницы товара с галереей используйте встроенный скрипт WooCommerce для галерей, который поддерживает lazy load. Если тема переопределяет шаблон single-product/product-image.php, проверьте, что в коде используются стандартные функции WooCommerce.

Проверка результата после внедрения оптимизаций

  • Загрузите страницу товара и каталога, откройте инспектор браузера, перейдите на вкладку Network и убедитесь, что загружаются изображения меньшего размера, WebP (если добавлены) и с атрибутом loading="lazy".
  • Проверьте скорость загрузки страниц в PageSpeed Insights — должен вырасти показатель «Оптимизация изображений».
  • Проверьте, что визуально изображения отображаются без потери качества.

Частые ошибки и как исправить

  • Использование the_post_thumbnail('full') вместо оптимальных размеров
    Исправление: заменить на woocommerce_thumbnail или woocommerce_single в зависимости от контекста.
  • Кастомные шаблоны с жестко прописанными URL изображений без lazy load
    Исправление: переписать вывод с использованием wp_get_attachment_image() с поддержкой lazy load.
  • Неправильная генерация WebP или отсутствие <picture>
    Исправление: использовать проверенные плагины или корректно реализовать фильтры WordPress.
  • Конфликт кеширования и CDN, не обновляющие изображения
    Исправление: очистить кеш сайта и CDN после изменений.

Практические советы по безопасности и производительности

  • Всегда используйте wp_get_attachment_image() вместо прямого вывода URL, так вы получаете защиту от XSS и автоматически добавляете атрибуты для оптимизации.
  • Минимизируйте количество запросов за счет объединения и оптимизации изображений на стороне сервера.
  • Используйте плагин Clearfy Pro для автоматического удаления неиспользуемых скриптов и оптимизации загрузки.
  • Регулярно проверяйте работу lazy load, так как неправильное внедрение может ухудшить SEO.

Сравнение вариантов оптимизации изображений WooCommerce

МетодПреимуществаНедостаткиПример кода/плагин
Использование правильных размеров (woocommerce_thumbnail)Автоматическая оптимизация, простотаЗависит от настроек WooCommerce
wp_get_attachment_image( $id, 'woocommerce_thumbnail' );
Ручная реализация WebP с фильтрамиКонтроль и кастомизацияСложность, возможны ошибки
add_filter('wp_get_attachment_image_attributes', ...);
Плагины для WebP и lazy load (Clearfy Pro)Автоматизация, удобствоПлатные решения, нагрузка на серверClearfy Pro
Как создать динамическую фильтровую форму в теме WordPress
11.01.2026
Как добавить динамические стили в тему WordPress
30.01.2026
Как создать динамический слайдер в WordPress теме
02.02.2026
Как добавить собственный тип записей в WordPress
13.11.2025
Как добавить поддержку AJAX в дочерних темах WordPress
05.03.2026