Фотографии — половина продажи в интернет-магазине, но именно они чаще всего убивают скорость каталога. Разберём, как в 1С-Битрикс правильно загружать изображения товаров и торговых предложений и как готовить их так, чтобы карточка оставалась и красивой, и лёгкой.
Где в карточке живут изображения
У товара в информблоке каталога есть два системных поля картинки: анонс (PREVIEW_PICTURE) и детальная (DETAIL_PICTURE). Анонс обычно используется в списках и плитке каталога, детальная — в карточке. Но одной пары полей магазину почти всегда мало.
Для галереи используют дополнительное свойство типа «Файл» с включённым флагом «Множественное» — как правило оно называется MORE_PHOTO. Именно из него стандартный компонент catalog.element собирает слайдер миниатюр. Если товар торгуется через торговые предложения (SKU), то у каждого SKU есть свои PREVIEW_PICTURE, DETAIL_PICTURE и своё MORE_PHOTO — при выборе цвета/варианта галерея подменяется на фото конкретного предложения.
DETAIL_PICTURE или первым элементом MORE_PHOTO. Смешение подходов внутри одного каталога приводит к тому, что часть товаров показывает картинку, а часть — нет.Подготовка исходников до загрузки
Битрикс умеет ресайзить, но не умеет улучшать плохой исходник. Поэтому базовую подготовку делают до загрузки в каталог:
- Единый размер по длинной стороне. Для большинства магазинов достаточно исходника 1500–2000 px по большей стороне — этого хватает и на зум, и на retina, и не раздувает диск.
- Единый фон и кадрирование. Одинаковые пропорции (например 1:1 или 3:4) избавляют каталог от «прыгающей» вёрстки и скачков CLS.
- Осмысленные имена файлов.
koleso-r16-bridgestone.jpgвместоIMG_4821.jpg— это плюс к SEO и к порядку в/upload/. - Формат исходника — JPEG для фото и PNG только там, где нужна прозрачность. Тяжёлый TIFF и CMYK-JPEG в веб не грузим.
Оптимизировать сам исходник до предела не нужно: Битрикс всё равно создаст из него уменьшенные копии. Задача исходника — быть чистым и достаточно крупным.
Способы загрузки: от одной штуки до тысяч
Выбор способа зависит от объёма:
| Сценарий | Инструмент |
|---|---|
| 1–2 товара | Вручную в карточке товара, вкладки анонс/детальная и свойство галереи |
| Десятки товаров | Групповая загрузка через свойство «Файл» или медиабиблиотеку |
| Каталог из 1С | Обмен CommerceML: картинки едут в архиве вместе с import.xml/offers.xml |
| Тысячи SKU | Свой скрипт на \CFile::MakeFileArray() + CIBlockElement::SetPropertyValues() |
При обмене с 1С фотографии приходят в подпапке выгрузки и привязываются к товарам по внешнему коду. Если картинки «не доезжают», почти всегда дело в размере архива, правах на /upload/1c_catalog/ или в том, что в 1С у номенклатуры просто не заполнено изображение.
Ресайз и кэш изображений
Показывать оригинал 2000 px в плитке каталога — прямой путь к медленному сайту. Битрикс формирует уменьшенные копии на лету функцией CFile::ResizeImageGet(), а в компонентах за это отвечает массив параметров arCustomProject и настройки вида: тип ресайза (BX_RESIZE_IMAGE_PROPORTIONAL, BX_RESIZE_IMAGE_EXACT), ширина и высота, качество JPEG.
- Готовые копии складываются в
/upload/resize_cache/и отдаются повторно без пересчёта. - Для каждого места (плитка, карточка, слайдер, корзина) задавайте свой размер, а не один большой на всё.
- Качество 80–85 для JPEG визуально неотличимо от 100, но легче в полтора-два раза.
/upload/resize_cache/ нельзя чистить руками наугад в проде: после очистки первый посетитель каждой страницы заново запустит генерацию всех превью и создаст пиковую нагрузку на CPU.WebP, современные форматы и вес
Самый крупный выигрыш по весу даёт переход на WebP: он на 25–35% легче JPEG при том же качестве. В свежих версиях «1С-Битрикс: Управление сайтом» поддержка WebP включается в настройках, и платформа отдаёт WebP-версию превью браузерам, которые её понимают, с откатом на JPEG для старых.
Если штатной опции нет или нужен полный контроль, WebP-конвертацию выносят на уровень веб-сервера или CDN:
- модуль
nginxс проверкой заголовкаAccept: image/webpи подменой файла; - серверная конвертация библиотеками
Imagick/GDпри генерации ресайза; - внешний CDN-оптимизатор, который сам подбирает формат и качество под устройство.
Проверьте, что на сервере установлено GD или ImageMagick с поддержкой WebP (php -i | grep -i webp) — без этого конвертация молча не сработает.
Ленивая загрузка и вёрстка галереи
Мало сжать картинки — важно не грузить их все сразу. Приёмы, которые реально влияют на скорость каталога и на Core Web Vitals:
- Lazy loading. Атрибут
loading="lazy"на изображениях вне первого экрана; первое фото карточки, наоборот, грузим сразу (loading="eager"), чтобы не портить LCP. - Явные размеры. Указывайте
widthиheight(илиaspect-ratioв CSS) — это убирает скачки макета (CLS). - Адаптивные картинки.
srcset/sizesотдают мобильному маленькую копию, десктопу — крупную. - Спрайты и SVG для иконок и меток, чтобы не плодить мелкие запросы.
В стандартных решениях Битрикс часть этого уже есть в шаблоне catalog, но на кастомных шаблонах ленивую загрузку и srcset обычно нужно дорабатывать руками в шаблоне компонента.
Alt, подписи и SEO изображений
У поля-файла в Битрикс есть ALT_TEXT и TITLE, а у свойства галереи — свои описания. Не оставляйте их пустыми:
- alt — краткое осмысленное описание («Смартфон Model X, чёрный, вид спереди»), помогает и SEO, и доступности;
- подписи в галерее уместны для сложных товаров (комплектация, схемы);
- единый шаблон alt можно генерировать из названия товара и свойства цвета — так поле не остаётся пустым при массовой загрузке.
Для поисковиков также полезно отдавать изображения в sitemap и не закрывать /upload/ от индексации в robots.txt, если картинки должны попадать в поиск по картинкам.
Итог
Рабочая схема простая: чистый исходник 1500–2000 px, хранение в DETAIL_PICTURE и множественном свойстве MORE_PHOTO, ресайз под каждое место показа с качеством 80–85, WebP, ленивая загрузка и заполненные alt. Тогда каталог остаётся и наглядным, и быстрым, и переживает обмен с 1С без потери фотографий.
Если у вас тысячи SKU, тяжёлые исходники из 1С и проседающие Core Web Vitals, мы в B2Bsite настраиваем конвейер изображений под ключ: правила ресайза и WebP, ленивую загрузку в шаблонах, корректный обмен картинками с 1С и ускорение каталога в целом. Приведём фото товаров в порядок так, чтобы это не мешало продажам, а помогало им.
Частые вопросы
В каком размере загружать исходники фото товаров?
Достаточно 1500–2000 px по длинной стороне. Этого хватает на зум и retina-экраны, а уменьшенные копии для каталога Битрикс создаст сам.
Чем поле DETAIL_PICTURE отличается от свойства MORE_PHOTO?
DETAIL_PICTURE — одно системное поле детальной картинки товара. MORE_PHOTO — множественное свойство типа «Файл» для галереи из нескольких фотографий.
Как включить WebP в Битрикс?
В свежих версиях платформы WebP включается в настройках, и превью отдаются в WebP браузерам с поддержкой. Иначе конвертацию делают на уровне nginx, GD/Imagick или CDN.
Можно ли чистить папку resize_cache?
Технически да, но не на проде без причины: после очистки первый заход на каждую страницу заново сгенерирует все превью и создаст пиковую нагрузку на сервер.
Почему картинки из 1С не появляются на сайте?
Частые причины: слишком большой архив обмена, нет прав на папку выгрузки, у номенклатуры в 1С не заполнено изображение или сбой привязки по внешнему коду.
Обмен с 1С затирает фото, загруженные вручную?
Может затирать при полном обмене. Держите единый источник изображений: либо всё грузите из 1С, либо отключите импорт картинок и ведите их только на сайте.
Какое качество JPEG выбрать при ресайзе?
80–85 — оптимум: визуально почти неотличимо от 100, но файл легче в полтора-два раза. Ниже 70 уже заметны артефакты на градиентах.
Нужно ли заполнять alt у изображений товаров?
Да. Alt улучшает SEO и доступность и помогает попадать в поиск по картинкам. При массовой загрузке его удобно генерировать из названия товара и свойств.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.