· 9 мин чтения

WebGL и 3D на сайте: когда окупается, а когда мешает

Когда WebGL и 3D на сайте работают на бизнес, а когда тормозят и отпугивают: сценарии, бюджет производительности, Core Web Vitals, доступность и альтернативы.

WebGL и 3D на сайте: когда окупается, а когда мешает

WebGL и 3D на сайте окупаются, когда трёхмерность сама продаёт: продукт нужно покрутить в руках, бренд держится на впечатлении, а посетитель готов потратить на страницу время. Там, где задача — быстро получить заявку или ответить на вопрос из поиска, тяжёлая графика скорее мешает: замедляет загрузку, разряжает телефоны и отвлекает от главного действия. Правильный подход — решать про WebGL по каждой странице отдельно, закладывать бюджет производительности и всегда иметь облегчённую версию для слабых устройств и пользователей, отключивших анимацию.

Что дают WebGL, Three.js и шейдеры

WebGL — браузерный интерфейс для рисования графики на видеокарте. Поверх него обычно работают библиотеки вроде Three.js: они берут на себя сцену, камеру, свет, загрузку моделей и избавляют от низкоуровневого кода. Шейдеры — небольшие программы, которые выполняются прямо на видеокарте и отвечают за то, как выглядит каждый пиксель: искажения, частицы, переливы, «жидкие» переходы между изображениями.

С технической стороны барьера почти нет: WebGL 2 поддерживается всеми актуальными браузерами, включая Safari начиная с 15-й версии, и по данным caniuse доступен подавляющему большинству пользователей. Более новый стандарт WebGPU развивается, но поддерживается пока не во всех браузерах по умолчанию, поэтому для сайтов базой остаётся WebGL.

Что это даёт бизнесу:

  • Запоминаемость. Необычная интерактивная сцена на первом экране выделяет сайт среди десятков похожих шаблонов и закрепляет визуальный образ бренда.
  • Демонстрация продукта. Модель, которую можно вращать, приближать и перекрашивать, объясняет устройство товара лучше серии фотографий.
  • Отстройка от конкурентов. В нишах, где все сайты выглядят одинаково, живая графика сразу сообщает об уровне компании.
  • Вовлечение. Интерактивный сайт удерживает внимание: посетитель исследует страницу, а не пролистывает её.

Где 3D окупается

В проектах мы видим, что WebGL оправдан там, где эмоция или наглядность напрямую влияют на решение о покупке.

  • Премиальные бренды. Мебель, ювелирные изделия, автомобили, недвижимость, дорогая техника. Покупатель ожидает впечатления, сопоставимого с шоурумом, и графика становится частью ценности продукта.
  • Конфигураторы товаров. Выбор цвета, материала, комплектации с мгновенным результатом на модели. Здесь 3D заменяет десятки фотографий и снимает вопросы, которые иначе ушли бы в отдел продаж.
  • Галереи и портфолио. Студии, архитектурные бюро, художники: сайт сам по себе служит доказательством компетенции.
  • Запуски и промостраницы. Новый продукт, событие, спецпроект. Страница живёт ограниченное время, на неё ведут целевой трафик, и задача — чтобы о ней говорили.

Общий признак удачного сценария: 3D отвечает на вопрос посетителя, а не украшает страницу. Если без сцены человеку пришлось бы что-то додумывать, сцена работает.

Где WebGL мешает

  • Посадочные страницы для сбора заявок. Человек пришёл с рекламы за конкретным предложением. Каждая лишняя секунда загрузки и каждый отвлекающий элемент уменьшают шанс, что он дойдёт до формы. Тяжёлая сцена на таком лендинге почти всегда проигрывает простому первому экрану с понятным оффером.
  • Слабые устройства. Недорогие смартфоны, старые ноутбуки, офисные компьютеры без отдельной видеокарты. На них сцена дёргается, телефон греется, батарея садится, а интерфейс реагирует с задержкой.
  • Контентные страницы для поиска. Статьи, справочные разделы, страницы услуг, которые должны ранжироваться в Яндексе и Google. Поисковому роботу нужен текст, а посетителю — быстрый ответ. Полноэкранный холст, под которым спрятан контент, работает против обеих задач.
  • Сайты с длинным путём к действию. Каталоги, личные кабинеты, сервисы: там важнее скорость отклика интерфейса, чем эффект на первом экране.

Сценарии и альтернативы

Сценарий WebGL оправдан? Более лёгкая альтернатива
Конфигуратор товара Да Набор фото по вариантам, видео-обзор
Сайт премиального бренда Да, на ключевых страницах Видео на первом экране, CSS-анимации
Промостраница запуска Да Lottie-анимации, видео
Портфолио студии Чаще да Плавные переходы, SVG-анимации
Лендинг для сбора заявок Обычно нет Лёгкая CSS-анимация первого экрана
Статьи и страницы услуг Нет Статичные иллюстрации, SVG-схемы
Интернет-магазин с большим каталогом Только в карточке товара Галерея фото, короткие видео

Производительность: бюджет и запасные варианты

WebGL-сцену проектируют под ограничения так же, как макет под ширину экрана. Бюджет производительности задаётся до начала работ: сколько весят модели и текстуры, сколько кадров в секунду нужно держать, на каком минимальном устройстве сцена должна работать прилично.

Что помогает держать бюджет:

  • Уровни качества. Сцена определяет возможности устройства и выбирает режим: полное качество для мощных компьютеров, упрощённое — для среднего класса, статичная картинка или видео — для слабых телефонов. Если частота кадров во время работы падает, качество можно снижать на лету.
  • Сжатие ресурсов. Модели упрощают по количеству полигонов и сжимают, текстуры переводят в форматы, которые видеокарта читает без распаковки. Разница в весе бывает многократной.
  • Отложенная загрузка. Сцена подгружается после основного контента или только когда блок появляется в зоне видимости. Пока она грузится, посетитель видит обычный текст и изображение.
  • Пауза вне экрана. Когда сцена прокручена за пределы окна или вкладка неактивна, отрисовку останавливают — это экономит процессор и батарею.
  • Мобильная версия отдельно. На телефоне меньше экран, слабее видеокарта и нет наведения курсора. Часто разумнее показать упрощённую сцену или красивую статичную версию, чем пытаться перенести десктопный эффект один в один.

Влияние на Core Web Vitals и доступность

Google оценивает скорость страниц по Core Web Vitals: отрисовка основного контента (LCP) — до 2,5 секунды, отклик на действие (INP) — до 200 миллисекунд, сдвиг макета (CLS) — не выше 0,1, причём хорошим результатом считается выполнение порогов для 75% посещений. WebGL может испортить все три показателя:

  • LCP страдает, если крупнейший элемент первого экрана — сцена, которая ждёт загрузки библиотеки, модели и текстур. Решение: показать статичный кадр сразу, а сцену подменить после загрузки.
  • INP ухудшается, когда инициализация сцены и тяжёлые вычисления занимают основной поток и страница не реагирует на нажатия. Решение: дробить подготовку на части и выносить расчёты из основного потока.
  • CLS растёт, если холст появляется без заранее заданного размера и сдвигает контент. Решение: резервировать место под сцену в вёрстке.

Доступность — второй обязательный слой. Операционные системы позволяют пользователю отключить анимацию интерфейса, и сайт может узнать об этом через медиазапрос prefers-reduced-motion; по данным MDN, он поддерживается всеми основными браузерами с января 2020 года. Для людей с вестибулярными нарушениями крупное движение, вращение и параллакс могут вызывать головокружение и тошноту, поэтому при включённой настройке сцену стоит останавливать или заменять спокойной версией.

Кроме того, по критерию WCAG «Пауза, остановка, скрытие» (уровень A) движение, которое запускается само, длится дольше пяти секунд и идёт параллельно с другим контентом, должно иметь способ его остановить — если оно не является сутью страницы. Ещё несколько правил: важная информация не должна существовать только внутри холста, интерактивные элементы сцены должны дублироваться обычными кнопками, доступными с клавиатуры, а у декоративного холста не должно быть фокуса.

Именно поэтому в разработке интерактива и WebGL мы закладываем запасные варианты и режим без анимации с самого начала, а не дописываем их перед запуском.

Из чего складывается стоимость

Цена WebGL-проекта зависит не от «количества 3D», а от нескольких конкретных факторов:

  • Источник моделей. Готовые инженерные файлы производителя нужно оптимизировать для браузера; моделирование с нуля — отдельная и заметная статья.
  • Уровень интерактивности. Вращающаяся модель, сцена, реагирующая на прокрутку, и полноценный конфигуратор с логикой вариантов — это три разных объёма работы.
  • Собственные шейдеры. Уникальные визуальные эффекты пишутся и отлаживаются вручную под конкретную задачу.
  • Охват устройств. Уровни качества, мобильная версия, запасные варианты и тестирование на реальных слабых телефонах занимают значительную часть времени.
  • Интеграции. Связь конфигуратора с каталогом, ценами, корзиной или CRM.

Альтернативы: CSS, SVG, видео и Lottie

Многие задачи, ради которых заказывают WebGL, решаются легче:

  • CSS-анимации и переходы — появление блоков, ховеры, плавная смена состояний. Почти ничего не весят и хорошо работают на любых устройствах.
  • SVG-анимация — схемы, иконки, иллюстрации, рисующиеся линии. Чёткая на любом экране и доступна для поисковых систем, если содержит текст.
  • Видео — когда нужна кинематографичная картинка без интерактива. Сжатый ролик с постером обычно легче сцены и одинаково выглядит везде.
  • Lottie — векторные анимации из After Effects: подходят для иллюстраций, онбординга, микроанимаций интерфейса.

Хорошо продуманные анимации и переходы часто дают ощущение «живого» сайта за долю стоимости и без риска для скорости.

Как решить: наше правило

Перед тем как добавлять 3D, задайте три вопроса:

  • Отвечает ли сцена на вопрос посетителя? Показывает продукт, материал, масштаб — да. Просто красиво — повод выбрать вариант полегче.
  • Готова ли аудитория ждать? Посетитель промостраницы или сайта бренда — скорее да. Пришедший с рекламы за ценой — нет.
  • Есть ли бюджет на запасные варианты? Если денег хватает только на эффектную десктопную сцену без мобильной версии и режима без анимации, лучше вложить их в CSS-анимации и видео.

Три «да» — WebGL оправдан, и его стоит делать на ключевых страницах, оставляя контентные и конверсионные страницы лёгкими. Хотя бы одно «нет» — начните с лёгких средств. А если не уверены, где граница, начните с UX/UI-дизайна: на этапе прототипа видно, какие экраны действительно выигрывают от трёхмерности, а где она только мешает.

FAQ

Частые вопросы

Связаться с нами

Сам по себе WebGL не мешает индексации, но содержимое холста поисковики не читают как текст. Если заголовки и описания существуют только внутри сцены, страница теряет запросы. Кроме того, тяжёлая сцена ухудшает скорость загрузки, а она учитывается при ранжировании. Поэтому весь значимый текст должен быть в обычной HTML-разметке.

WebGL — низкоуровневый интерфейс браузера для работы с видеокартой. Three.js — библиотека поверх него, которая даёт готовые камеры, источники света, материалы и загрузчики моделей. Почти все сайты с 3D используют библиотеку, а напрямую с WebGL работают при написании собственных шейдеров и оптимизаций.

Современные смартфоны поддерживают WebGL, но их возможности сильно различаются. Сцену для мобильных обычно упрощают: уменьшают текстуры и число эффектов, снижают разрешение отрисовки. Для самых слабых устройств показывают статичное изображение или видео — посетитель получает тот же смысл без тормозов.

Это медиазапрос, через который сайт узнаёт, что пользователь отключил анимацию в настройках системы — в Windows, macOS, iOS или Android. Учитывать его нужно: для части людей активное движение на экране вызывает дискомфорт. Сайт с WebGL при такой настройке должен останавливать сцену или показывать спокойную версию.

Можно, и часто это лучший путь: сцену добавляют на одну-две ключевые страницы, например в карточку флагманского товара или на главную, не трогая остальной сайт. Важно заранее проверить, как изменятся скорость загрузки и Core Web Vitals, и подготовить запасной вариант для слабых устройств.

Мы — команда мирового уровня, ведущие профессионалы индустрии, постоянно внедряющие новые технологии