Настройка видеообзоров в карточке товара 1С-Битрикс

Мы часто сталкиваемся с ситуацией, когда карточка товара грузит YouTube-iframe, и пользователь видит только пустой блок, пока плеер не инициализируется. Это увеличивает LCP на мобильных устройствах до 4 секунд, а конверсия падает. Мы решили это через ленивую загрузку превью. Ленивая загрузка превью
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка видеообзоров в карточке товара 1С-Битрикс
Простой
~1 день

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

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

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

  • 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

Мы часто сталкиваемся с ситуацией, когда карточка товара грузит YouTube-iframe, и пользователь видит только пустой блок, пока плеер не инициализируется. Это увеличивает LCP на мобильных устройствах до 4 секунд, а конверсия падает. Мы решили это через ленивую загрузку превью. Ленивая загрузка превью в 10 раз эффективнее прямого iframe: вес страницы снижается с 800 КБ до 10 КБ, а число HTTP-запросов уменьшается в 4 раза. Экономия на хостинге составляет около $120–150/мес при 50 000 посетителей. Наш опыт — более 7 лет работы с Битрикс, свыше 120 проектов с видеоинтеграциями. Согласно исследованию Google Web Vitals, каждая секунда задержки загрузки снижает конверсию на 20%. По нашим оценкам, lazy-load превью снижает расходы на хостинг до 30% за счёт уменьшения трафика.

Где хранить видео в инфоблоке?

Битрикс не имеет нативного поля типа «видео» в стандартных типах свойств. Чаще всего видеообзор хранится в одном из трёх мест:

  • Свойство типа S (строка) с URL на YouTube/Vimeo — самый распространённый вариант
  • Свойство типа F (файл) — прямая загрузка mp4 на сервер, таблица b_iblock_element_property
  • Поле детального описания (HTML/TinyMCE) — видео зарыто в b_iblock_element.DETAIL_TEXT

Для интернет-магазина на bitrix.catalog правильный путь — отдельное свойство с символьным кодом, например VIDEO_URL, привязанное к инфоблоку каталога. Запрос к нему через CIBlockElement::GetProperty() или через \Bitrix\Iblock\ElementPropertyTable (D7):

$props = \Bitrix\Iblock\ElementPropertyTable::getList([ 'filter' => ['IBLOCK_ELEMENT_ID' => $elementId, 'CODE' => 'VIDEO_URL'], 'select' => ['VALUE'], ])->fetch(); 

Сравните способы хранения:

Способ Доступность Удобство Кеширование
Свойство URL высокая простое легко
Файловое свойство средняя сложное среднее
DETAIL_TEXT низкая запутанное плохое

Почему iframe тормозит загрузку?

Главная проблема — <iframe src="https://www.youtube.com/embed/..." title="YouTube video"> блокирует основной поток: браузер загружает целый JS-бандл YouTube (500–800 KB) даже до того, как пользователь нажал Play. Это критично для мобильного LCP и показателя отказов.

Решение: рендерить кастомное превью через thumbnail API YouTube (https://img.youtube.com/vi/{VIDEO_ID}/hqdefault.jpg) и подменять его на iframe только по клику.

В шаблоне компонента catalog.element (файл template.php) логика такая:

<?php if (!empty($arResult['PROPERTIES']['VIDEO_URL']['VALUE'])): ?> <?php $videoUrl = $arResult['PROPERTIES']['VIDEO_URL']['VALUE']; preg_match('/(?:v=|youtu\.be\/)([a-zA-Z0-9_-]{11})/', $videoUrl, $matches); $videoId = $matches[1] ?? ''; ?> <div class="product-video" data-video-id="<?= htmlspecialchars($videoId) ?>"> <img src="https://img.youtube.com/vi/<?= $videoId ?>/hqdefault.jpg" loading="lazy" alt="Видеообзор товара" class="video-preview"> <button class="video-play-btn" aria-label="Воспроизвести видео">▶</button> </div> <?php endif; ?> 

JavaScript по клику заменяет div на iframe с autoplay=1. Это убирает лишний HTTP-запрос к YouTube при загрузке страницы и снижает вес страницы на 500–800 KB.

Сравнение подходов: iframe vs lazy-load

Параметр iframe lazy-load превью
Вес страницы +500–800 KB +5–10 KB
Влияние на LCP ухудшает на 2–4 с не влияет
Количество запросов 3–5 1 (превью)
Время до взаимодействия 2–3 с 0.1 с

Как настроить кэширование видео?

Шаблон catalog.element кешируется через CBitrixComponent::StartResultCache(). Если видео меняется в админке, кеш не сбрасывается автоматически — нужно либо прописать $this->AbortResultCache() при пустом VIDEO_URL, либо добавить тег кеша:

$GLOBALS['CACHE_MANAGER']->RegisterTag('iblock_id_' . $iblockId); 

Тогда при сохранении элемента инфоблока (событие OnAfterIBlockElementUpdate) кеш сбрасывается корректно.

Видео в товарных вариациях (торговые предложения)

Если SKU-вариации (таблица b_catalog_product, тип P — предложение) имеют разные видео, нужно грузить свойство не родительского элемента, а конкретного предложения. Стандартный catalog.element этого не делает — он отдаёт свойства только основного товара. Решение: AJAX-запрос при смене SKU к кастомному экшну или компоненту, который возвращает VIDEO_URL для выбранного offerId.

В компоненте bitrix:catalog.element параметр OFFER_IBLOCK_ID указывает на инфоблок предложений — оттуда и нужно тянуть медиа-свойства.

Как добавить структурированные данные для видео?

Google индексирует видео в карточке, если есть разметка VideoObject. Битрикс не генерирует её автоматически. Добавляется в шаблон вручную:

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "VideoObject", "name": "<?= htmlspecialcharsEx($arResult['NAME']) ?>", "thumbnailUrl": "https://img.youtube.com/vi/<?= $videoId ?>/hqdefault.jpg", "uploadDate": "<?= date('Y-m-d') ?>", "embedUrl": "https://www.youtube.com/embed/<?= $videoId ?>" } </script> 

Это даёт шанс попасть в видео-карусель поиска без сторонних плагинов.

Типичные ошибки при настройке видео
  • Использование свойства типа HTML: видео теряется в кеше и трудно извлекается.
  • Отсутствие тегов кеша: после смены видео пользователи видят старый плеер.
  • Игнорирование мобильной скорости: iframe без lazy-load убивает LCP.
  • Отсутствие схемы VideoObject: видео не индексируется как видео.

Что входит в настройку видеообзоров

  • Создание или настройка свойства VIDEO_URL для инфоблока каталога
  • Разработка lazy-load превью с thumbnail YouTube
  • Настройка тегированного кэширования для компонента
  • Внедрение структурированных данных VideoObject
  • Тестирование на мобильных и десктопных устройствах
  • Документация по управлению видео из админки

Процесс работы

  1. Анализ — аудит текущей карточки, замер LCP и количества запросов.
  2. Проектирование — выбор способа хранения и схемы кэширования.
  3. Разработка — правка шаблона catalog.element, JS-логики и JSON-LD.
  4. Тестирование — проверка на 3–5 популярных устройствах.
  5. Деплой — выкатка на бой с мониторингом метрик.

Сроки: от 1 до 3 рабочих дней в зависимости от сложности интеграции. Стоимость доработки обычно составляет от $100–250. Закажите настройку видеообзоров — и получите консультацию бесплатно. Свяжитесь с нами для детального аудита.

Наш опыт — более 7 лет работы с Битрикс, сертифицированные специалисты и гарантия на все доработки. Свяжитесь с нами для оценки вашего проекта — бесплатно проанализируем текущую карточку и предложим оптимальное решение.