Фотограф завантажує знімки в 4K — відвідувачі скаржаться на довге завантаження. Галерея з 30 фото важить 150 МБ і грузиться 15 секунд. Результат — втрата клієнтів. Наша компанія — 10+ років досвіду в розробці на 1С-Бітрікс, понад 50 проєктів для фотографів — підтверджує: навіть десятки галерей не впливають на швидкість. Сертифіковані розробники 1С-Бітрікс гарантують оптимізацію Core Web Vitals та стабільну роботу. Розробка на 1С-Бітрікс дозволяє упакувати візуал у WebP, налаштувати CDN і дати клієнтам особистий кабінет для завантаження. Економія: використання CDN скорочує витрати на трафік до 200 доларів на місяць. Зв'яжіться з нами для консультації — ми покажемо кейси.
Чому 1С-Бітрікс обирають для сайту фотографа?
Платформа дає готові модулі інфоблоків, теговане кешування та фонові агенти. Для портфоліо використовуються інфоблоки v2.0 з множинними файловими властивостями. Бронювання, особистий кабінет і блог закриваються штатними інструментами. Вбудований модуль SEO генерує sitemap та Schema.org розмітку автоматично. Згідно з документацією Бітрікс (див. https://helpdesk.bitrix24.ru/), компонент 2.0 і ORM забезпечують високу продуктивність навіть при навантаженні в тисячі запитів.
Як оптимізувати портфоліо для швидкого завантаження?
Портфоліо — ядро сайту. Фотограф завантажує знімки 4000–6000 px, 5–15 МБ кожен. Відвідувач має бачити галерею миттєво. Ключові метрики LCP, FID, CLS мають бути в зелених зонах.
Крок 1: Структура інфоблоку
- Розділи: жанри (весільна, репортажна, предметна, портретна).
- Елементи: фотосесії або серії.
- Властивості: опис, дата, локація, множинна файлова властивість «Фотографії».
Крок 2: Генерація мініатюр
Після завантаження фотографії обробник OnAfterIBlockElementUpdate запускає фонове завдання. Використовуються агенти. Набір мініатюр:
| Призначення | Розмір | Формат | Якість |
|---|---|---|---|
| Прев'ю моб. | 400×267 | WebP | 80% |
| Прев'ю дескт. | 800×533 | WebP | 85% |
| Lightbox | 1600×1067 | WebP | 90% |
| Повнорозмір | 2400×1600 | WebP + JPEG | 92% |
Оригінал зберігається, але не віддається напряму — тільки через мініатюри. CFile::ResizeImageGet() з пропорційним ресайзом зберігає пропорції. WebP конвертується через Imagick, перевірка підтримки через Accept-заголовок або тег <picture>. WebP кращий за JPEG у 2–3 рази за розміром при тій самій якості.
Крок 3: Lazy loading з прогресуючим відображенням
Стандартний loading="lazy" часто дає стрибаючу розкладку. Наше рішення з використанням Intersection Observer вдвічі швидше за звичайний підхід:
- Placeholder з домінантним кольором — при завантаженні фото витягується середній колір (PHP) і зберігається у властивості елемента. У CSS placeholder фарбується в цей колір.
- Blur-up — мікро-прев'ю 20×13 px (< 1 КБ) інлайниться в HTML як base64, відображається розмитим. При завантаженні реальної картинки — плавна заміна через CSS transition.
- Intersection Observer — кастомний скрипт завантажує зображення при наближенні до viewport (margin 200px).
Сітка галереї — Masonry на CSS Grid: grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)). Lightbox — Fancybox 5 або GLightbox з підтримкою свайпу.
Крок 4: Підключення CDN
Для аудиторії з різних регіонів CDN обов'язковий. Налаштування через модуль CDN Бітрікс або ручна конфігурація nginx з проксіюванням на CloudFlare / BunnyCDN. Мініатюри віддаються через CDN, оригінали — з сервера напряму. CDN скорочує час завантаження для віддалених користувачів на 40–60%.
Деталі налаштування CDN для Бітрікс
Для коректної роботи CDN необхідно налаштувати модуль CDN в адміністративній панелі: вказати домен CDN, виключити службові скрипти, увімкнути кешування для зображень та CSS/JS. Рекомендується використовувати розподілений CDN з вузлами в Україні та Європі.Захист від завантаження
Повністю заборонити не можна, але ускладнюється:
- Відключення контекстного меню (JavaScript).
- Водяний знак на відображуваних версіях.
- Віддача через CSS
background-imageзамість<img>.
Результат: галерея з 30 фото завантажується за 1.5–2 секунди на мобільному LTE. Перший екран відображається за 0.8–1 секунду завдяки інлайн-placeholder і preload hero-зображення.
Бронювання зйомки та онлайн-запис
Бронювання впроваджується через інтерактивний календар зайнятості на основі інфоблоків. Клієнт бачить вільні дати, натискає на потрібний день і заповнює форму з ім'ям, телефоном, типом зйомки. Заявка створює лід у CRM Бітрікс24 або надсилає email. Після підтвердження фотограф змінює статус дня через адмінку. Інфоблок «Послуги» містить пакети (погодинні, повні) з кнопкою «Забронювати».
Блог і SEO
Блог привертає трафік за запитами типу «як підготуватися до весільної фотосесії» та демонструє експертність. Реалізується через стандартний інфоблок новин. SEO: ЧПУ через urlrewrite, мета-теги через властивості інфоблоку, хлібні крихти, Schema.org Article в JSON-LD. Sitemap генерується модулем SEO.
Клієнтський кабінет для видачі фотографій
Замість Яндекс.Диска — закрита галерея на сайті. Інфоблок «Клієнтські галереї»: прив'язка до користувача, дата зйомки, набір фото, статус, термін доступу. Доступ: авторизація або посилання з паролем. Галерея з lightbox, завантаження окремих фото або ZIP-архіву через ZipArchive. Водяний знак на прев'ю — через GD/Imagick.
Що входить у роботу та терміни
- Аналітика та прототипування структури портфоліо, послуг, календаря.
- Дизайн макету з акцентом на мобільну версію.
- Налаштування інфоблоків, генерації мініатюр, агрегатного кешування (Memcached/Redis).
- Розробка клієнтського кабінету з авторизацією та онлайн-записом.
- Інтеграція CDN, оптимізація Core Web Vitals (LCP, FID, CLS).
- Передача документації, навчання, пост-запускна підтримка.
| Етап | Зміст | Термін |
|---|---|---|
| Аналітика | Структура, вимоги | 1 тиждень |
| Дизайн | Макет, мобільна версія | 1.5 тижні |
| Верстка/фронтенд | Сітка, lightbox, lazy load, календар | 2 тижні |
| Бекенд | Інфоблоки, мініатюри, кабінет, блог | 2 тижні |
| Оптимізація | WebP, CDN, Core Web Vitals | 1 тиждень |
| Контент/запуск | Завантаження фото, навчання, деплой | 3 дні |
Разом: 7–9 тижнів. Критично отримати фотоматеріали заздалегідь — обробка та завантаження займають більше часу. Середня вартість такого проєкту — від 1500 до 3000 доларів залежно від складності.
Отримайте консультацію інженера: зв'яжіться з нами для обговорення вашого проєкту. Ми запропонуємо оптимальне рішення під ваші завдання з гарантією результатів.







