Підготовка фото для Бітрікс: оптимізація та завантаження

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

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

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1460
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    764
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    809
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1165

Підготовка фото для Бітрікс: оптимізація та завантаження

Сирі фотографії не завантажуються в Бітрікс так, як вийшли з камери. Завантаження 6-мегабайтних JPEG-файлів напряму в /upload/ не лише сповільнює сайт, а й засмічує базу даних записами в b_file, а сторінки каталогу вантажаться по 10 секунд. Часто клієнти стикаються з тайм-аутами при масовому завантаженні, перевищенням лімітів PHP memory_limit та генерацією ресайзів у реальному часі, що вбиває продуктивність. Ми допомагаємо цього уникнути. Наші сертифіковані спеціалісти з Бітрікс мають 10+ років досвіду, 5 років на ринку та понад 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-позиції. Метод стиснення з використанням алгоритму Хаффмана в JPEG дозволяє досягти додаткової економії на 10%. Економія на хостингу при правильній підготовці може сягати 30%, що для середнього магазину становить близько 1500 грн на місяць. Наприклад, замовлення пакетної обробки 5000 фото коштуватиме 25000 грн, а річна економія на хостингу складе 18000 грн. Вартість нашої послуги з підготовки фото – від 5 грн за фото при обсязі від 1000 зображень. Наприклад, WebP забезпечує стиснення в 1.3 рази краще, ніж JPEG, а прогресивний JPEG завантажується в 2-3 рази швидше сприймається візуально. ImageMagick обробляє фото в 5 разів швидше за ручну обробку в Photoshop. Автоматичне завантаження через API у 10 разів швидше за ручне додавання кожного фото.

Як заощадити на хостингу за допомогою оптимізації фото?

Економія на дисковому просторі та трафіку дозволяє скоротити витрати на хостинг до 25–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%.

Які типові помилки при підготовці фотографій?

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

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