Подготовка фотографий товаров для Битрикс — оптимизация и загрузка

Сырые фотографии не загружаются в Битрикс так, как вышли с камеры. Загрузка 6-мегабайтных JPEG-файлов напрямую в `/upload/` не только замедляет сайт, но и засоряет базу данных записями в `b_file`, а страницы каталога грузятся по 10 секунд. Часто клиенты сталкиваются с таймаутами при массовой загрузк
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Подготовка фотографий товаров для Битрикс — оптимизация и загрузка
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1460
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    763
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    809
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1164

Сырые фотографии не загружаются в Битрикс так, как вышли с камеры. Загрузка 6-мегабайтных JPEG-файлов напрямую в /upload/ не только замедляет сайт, но и засоряет базу данных записями в b_file, а страницы каталога грузятся по 10 секунд. Часто клиенты сталкиваются с таймаутами при массовой загрузке, превышением лимитов PHP memory_limit и генерацией ресайзов в реальном времени, что убивает производительность. Мы помогаем избежать этого. Наши сертифицированные специалисты по Битрикс с 10+ летним опытом (более 50 успешных проектов по подготовке фото для крупных каталогов) готовят фотографии под ключ: правильный размер, формат, структуру папок и автоматизированную загрузку. Оценим ваш проект бесплатно — просто свяжитесь с нами.

Почему подготовка фотографий перед загрузкой в Битрикс критична для производительности?

Битрикс хранит изображения в таблице b_file (метаданные) и физически в /upload/. При загрузке через административный интерфейс или API Битрикс автоматически создаёт уменьшенные версии (/upload/resize_cache/) по параметрам компонентов. Чем тяжелее исходник, тем дольше конвертация и больше нагрузка на диск.

Оптимальные параметры исходников:

Параметр Значение
Максимальный размер по длинной стороне 2000–2400 пикселей
Формат JPEG (основной), PNG для прозрачности
Качество JPEG 80–85%
Цветовой профиль sRGB (не AdobeRGB — браузеры не умеют его корректно отображать)
Максимальный размер файла 500 КБ для карточки, 200 КБ для превью
DPI 72–96 (веб, не печать)

Битрикс при выводе через bitrix:catalog.element перемасштабирует изображение до размеров, заданных в параметрах (DETAIL_IMAGE_SIZE). Загружать файлы больше 2400px бессмысленно — Битрикс всё равно создаст уменьшенную версию, а исходник займёт место на диске и в базе. Кроме того, тяжелые изображения ухудшают Core Web Vitals (LCP), что негативно сказывается на SEO-позициях. Экономия на хостинге при правильной подготовке может достигать 30% за счёт снижения трафика и нагрузки на диск.

Как автоматизировать массовую загрузку фото в Битрикс?

Автоматизация начинается с правильной структуры именования файлов. До загрузки файлы должны быть переименованы по единому стандарту. Битрикс хранит оригинальное имя файла в b_file.ORIGINAL_NAME, но по артикулу в имени можно восстановить связи.

Рекомендуемая схема: {артикул}_{порядковый номер}.jpg. Примеры:

  • grohe-33265002_1.jpg — главное фото
  • grohe-33265002_2.jpg — фото сбоку
  • grohe-33265002_3.jpg — фото деталей
  • grohe-33265002_4.jpg — фото в интерьере

Пошаговая инструкция по автоматизации

  1. Подготовьте файлы: переименуйте по схеме артикул_номер.jpg.
  2. Обработайте изображения скриптом ImageMagick (см. ниже) для ресайза, конвертации в sRGB и удаления EXIF.
  3. Получите словарь артикулов и ID элементов инфоблока через CIBlockElement::GetList.
  4. Сопоставьте файлы с элементами по артикулу.
  5. Загрузите через API: CFile::MakeFileArray и CIBlockElement::Update.

Пакетная подготовка изображений

Автоматизация через ImageMagick:

#!/bin/bash INPUT_DIR="./raw" OUTPUT_DIR="./ready" mkdir -p "$OUTPUT_DIR" for file in "$INPUT_DIR"/*.{jpg,jpeg,JPG,JPEG,png,PNG}; do [ -f "$file" ] || continue filename=$(basename "$file") name="${filename%.*}" convert "$file" \ -auto-orient \ -resize "2000x2000>" \ -colorspace sRGB \ -strip \ -quality 82 \ -interlace Plane \ "$OUTPUT_DIR/${name}.jpg" echo "Processed: $filename" done 

Флаги:

  • -auto-orient — исправляет ориентацию по EXIF (важно для мобильных фото)
  • -resize "2000x2000>" — уменьшает только если больше 2000px, не увеличивает
  • -strip — убирает EXIF-метаданные (GPS, данные камеры)
  • -interlace Plane — прогрессивный JPEG, быстрее воспринимается при загрузке

Массовая загрузка в Битрикс через API

После подготовки файлов загружаем их в элементы инфоблока по артикулу:

$articleToId = []; $res = \CIBlockElement::GetList( [], ['IBLOCK_ID' => CATALOG_IBLOCK_ID, 'ACTIVE' => 'Y'], false, false, ['ID', 'PROPERTY_ARTICLE'] ); while ($el = $res->Fetch()) { if ($el['PROPERTY_ARTICLE_VALUE']) { $articleToId[$el['PROPERTY_ARTICLE_VALUE']] = $el['ID']; } } $directory = new \DirectoryIterator('/path/to/ready/'); $grouped = []; foreach ($directory as $file) { if ($file->isDot() || $file->getExtension() !== 'jpg') continue; preg_match('/^(.+)_(\d+)\.jpg$/', $file->getFilename(), $m); if (!$m) continue; [$, $article, $order] = $m; $grouped[$article][(int)$order] = $file->getPathname(); } foreach ($grouped as $article => $images) { $elementId = $articleToId[$article] ?? null; if (!$elementId) continue; ksort($images); $imageFiles = array_values($images); $el = new \CIBlockElement(); $el->Update($elementId, [ 'DETAIL_PICTURE' => \CFile::MakeFileArray($imageFiles[0]), 'PREVIEW_PICTURE' => \CFile::MakeFileArray($imageFiles[0]), ]); if (count($imageFiles) > 1) { $gallery = array_map( fn($path) => ['VALUE' => \CFile::MakeFileArray($path)], array_slice($imageFiles, 1) ); \CIBlockElement::SetPropertyValueCode($elementId, 'GALLERY', $gallery); } } 

Какой формат выбрать: JPEG или WebP?

WebP даёт дополнительное сжатие до 30% без потери качества. Битрикс не генерирует WebP автоматически. Два подхода:

  1. На уровне nginx: модуль webp_rewrite конвертирует JPEG/PNG в WebP на лету, если браузер поддерживает форму. Конвертированные версии кешируются. Согласно документации 1С-Битрикс по кэшированию, это снижает трафик до 30%.
  2. Дублирующие свойства: отдельное свойство GALLERY_WEBP с WebP-версиями, шаблон выбирает формат через <picture>.

Экономия на дисковом пространстве и трафике позволяет сократить расходы на хостинг до 25–30%.

Что входит в работу

  • Обработка исходных фото (ресайз, sRGB, сжатие)
  • Переименование по артикулу
  • Загрузка в инфоблоки с привязкой к товарам
  • Настройка WebP (nginx или свойства)
  • Документация по процессу
  • Поддержка 1 месяц после сдачи

Сроки

Объём Сроки
до 100 товаров (1–3 фото) 1–2 рабочих дня
до 500 товаров до 1 недели
от 1000 товаров индивидуальный расчёт

Типичные ошибки при подготовке фотографий

  • Загрузка без переименования — потеря связи с товаром.
  • Использование PNG для фотографий — JPEG легче.
  • Игнорирование sRGB — цвета искажаются.
  • Отсутствие прогрессивного JPEG — медленная отрисовка.
  • Загрузка файлов больше 2400px без необходимости.

Гарантируем качественную подготовку и быструю загрузку. Оценим ваш проект бесплатно — закажите консультацию.