БесплатноБесплатный аудит сайта и кода на 1С-Битрикс при заказе доработки или поддержки

Состояние загрузки каталога: скелетоны вместо спиннеров

Скелетоны вместо спиннеров при загрузке каталога на 1С-Битрикс: плейсхолдеры карточек товара

Покупатель нажимает фильтр «в наличии», и на пару секунд каталог гаснет: пустое поле и одинокий крутящийся кружок. Кажется мелочью, но именно в эти секунды посетитель решает, ждать или закрыть вкладку. Спиннер честно говорит «сайт что-то делает», но не даёт ощущения прогресса — а пустота на месте товаров читается как «сломалось».

Эта статья — о том, как заменить абстрактные спиннеры на скелетоны: серые плейсхолдеры будущих карточек, которые показывают структуру страницы ещё до того, как приедут данные. Разберём, где в каталоге на 1С-Битрикс это уместно, как связать скелетоны с умным фильтром и композитным сайтом и как не сделать хуже. Тему производительности каталога мы системно закрываем в рамках аудита и оптимизации на 1С.

Коротко

  • Спиннер сообщает «идёт загрузка», скелетон показывает будущую структуру — второе воспринимается быстрее.
  • Скелетоны нужны там, где контент подгружается асинхронно: фильтр, AJAX-подгрузка, цены и остатки клиента.
  • Плейсхолдеры резервируют место под контент и убирают скачки вёрстки (CLS).
  • Показывайте скелетон с задержкой 150–200 мс, чтобы он не мигал на быстрых ответах.

Почему пустой экран убивает конверсию

Ожидание в интернет-магазине — это всегда риск потери. Чем дольше и «непонятнее» пауза между действием и результатом, тем выше шанс, что человек уйдёт. Причём важно не только реальное время загрузки, но и то, как оно ощущается. Пустой белый экран без обратной связи субъективно тянется дольше, чем такая же пауза, во время которой на экране что-то происходит.

В каталоге таких пауз много: смена страницы товаров, применение фильтра, сортировка, догрузка персональных цен. Если каждая из них — это моргание в пустоту, посетитель накапливает раздражение. Скелетон превращает паузу из «сайт завис» в «сайт готовит контент», и это прямо влияет на глубину просмотра и конверсию.

Что видит покупатель во время загрузки

Спиннер против скелетона

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

КритерийСпиннерСкелетон
Что показываетФакт загрузкиБудущую структуру блока
Ощущение времениТянется дольшеКороче
Скачки вёрсткиНе резервирует местоРезервирует место под контент
Переход к контентуРезкая заменаПлавная замена по месту
Когда уместенКороткие точечные действияЗагрузка списков и карточек

Вывод простой: спиннер оправдан для мелких точечных операций (нажали «в избранное», ждём ответ на кнопке), а для загрузки блоков контента — списка товаров, карточки, результатов фильтра — почти всегда лучше скелетон.

Правило выбора: если после загрузки на месте индикатора появится структурированный контент (карточки, строки, картинки) — используйте скелетон. Если это одиночное действие без нового блока — достаточно спиннера на кнопке.
От номенклатуры до витрины каталога Номенклатуратовары из 1ССвойства и SKUхарактеристикиКарточкафото, описаниеИндекспоиск и фильтрКаталогвитрина клиенту
Схема: номенклатура из 1С обрастает свойствами и торговыми предложениями, наполняется контентом карточки и индексируется — так формируется витрина, по которой ищут и фильтруют.

Как работает воспринимаемое ожидание

Воспринимаемая производительность — это то, насколько быстрым пользователь считает сайт, независимо от секунд на таймере. Человек оценивает скорость не секундомером, а ощущениями: есть ли обратная связь, виден ли прогресс, узнаёт ли он будущую структуру. Скелетон работает именно на этом уровне.

Когда посетитель видит контуры карточек, его мозг уже «читает» будущую страницу и достраивает ожидание. Появление реальных данных на подготовленных местах воспринимается как «дозагрузка», а не как «перерисовка с нуля». Поэтому та же по времени пауза со скелетоном ощущается заметно короче, чем со спиннером или пустым экраном.

Где в каталоге Битрикса нужны скелетоны

Скелетон нужен там, где между действием пользователя и появлением контента есть асинхронная пауза. В типовом магазине на 1С-Битрикс это несколько мест:

Скорость каталога в целом — фундамент, на который скелетоны наслаиваются. Как её поднимать системно, мы разбираем в услуге аудита и оптимизации на 1С, а вопросы инфраструктуры — в статье про хостинг и инфраструктуру BitrixVM.

Скелетоны и умный фильтр

Умный фильтр catalog.smart.filter — главный кандидат на скелетоны. Пользователь отмечает свойства, компонент пересчитывает выдачу и подменяет список товаров без перезагрузки страницы. В момент пересчёта старые карточки исчезают, а новые ещё не пришли — и если в этот зазор показать пустоту, интерфейс кажется сломанным.

Правильный сценарий выглядит так: как только пользователь применил фильтр, на месте товаров появляется сетка скелетонов той же геометрии, что и карточки. Когда AJAX-ответ приходит, скелетоны заменяются реальными товарами. Число плейсхолдеров можно держать равным ожидаемому числу карточек на странице, чтобы высота блока не прыгала.

Важно: при пустой выдаче фильтра скелетон нужно вовремя убрать и показать понятное состояние «ничего не найдено» с альтернативами. Скелетон, который «крутится вечно» на нулевом результате, хуже честного сообщения.

Связка с композитным сайтом

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

Персональная цена группы клиента, наличие по складу, содержимое корзины — всё это динамика, которую нельзя закэшировать одинаково для всех. Пока она грузится, вместо «прыгающих» пустых мест логично показать мини-скелетоны. Подробнее о том, как устроена отложенная загрузка и деплой таких решений, мы писали в материале про CI/CD и деплой на Битрикс.

Скелетоны против скачков вёрстки

Отдельная ценность скелетона — он резервирует место под будущий контент и тем самым борется со скачками вёрстки (CLS, Cumulative Layout Shift). Если картинка или блок цены появляются «вдруг» и сдвигают всё вокруг, пользователь теряет точку клика и раздражается. Скелетон занимает ровно ту площадь, которую займёт контент.

Скачки вёрстки — большая отдельная тема, влияющая и на UX, и на Core Web Vitals. Детальный разбор — в статье про то, как убрать скачки вёрстки и приручить Cumulative Layout Shift на Битриксе.

Как спроектировать скелетон карточки

Хороший скелетон повторяет геометрию реального блока, а не просто закрывает область серым прямоугольником. Для карточки товара это набор плейсхолдеров под её основные элементы.

  1. Область изображения. Прямоугольник с тем же соотношением сторон, что и фото товара.
  2. Название. Одна-две «строки» разной ширины, имитирующие текст.
  3. Цена. Короткий блок на месте будущей цены; для B2B — с учётом того, что цена может догружаться отдельно.
  4. Кнопка и наличие. Плейсхолдер под кнопку «В корзину» и метку наличия.

Плейсхолдеры делают нейтрально-серыми с лёгкой анимацией «мерцания» (shimmer), которая подсказывает, что это временное состояние, а не готовый контент. Анимация должна быть спокойной: агрессивное мигание утомляет и выглядит дёшево.

Тайминги: задержка и минимальное время

Скелетон легко испортить неправильными таймингами. Две главные настройки — задержка появления и минимальное время показа.

Эти правила защищают от двух крайностей: мелькающих плейсхолдеров на быстром интернете и «вечного скелетона» при сбое запроса.

Реализация в 1С-Битрикс пошагово

Технически скелетоны в каталоге на 1С-Битрикс собираются поверх штатных AJAX-механизмов компонентов. Общая последовательность такая:

  1. Выделите асинхронные зоны. Найдите места, где список или блок перерисовывается AJAX-ом: фильтр, подгрузка страниц, догрузка цен.
  2. Сверстайте шаблоны скелетонов. Под ключевые блоки (карточка, строка списка) сделайте HTML/CSS-плейсхолдеры нужной геометрии.
  3. Подключите к событиям. Перед AJAX-запросом показывайте скелетоны, после получения ответа — заменяйте их реальной разметкой из компонента.
  4. Настройте тайминги. Добавьте задержку появления и обработку таймаута с ошибкой.
  5. Свяжите с композитом. Динамические блоки (цена, остаток) закройте мини-скелетонами до их догрузки.
  6. Проверьте на медленной сети. Прогоните сценарии с троттлингом, чтобы увидеть скелетоны в деле, а не только на быстром интернете.

Если каталог сложный, а логика подгрузки нестандартная, эту часть выносят в аккуратную фронтенд-разработку поверх компонентов. Смежные инженерные темы — REST и вебхуки — мы разбирали в статье про REST, вебхуки и безопасность в Битрикс, а работу с данными — в материале про D7 ORM в Битрикс.

Доступность и деликатные детали

Скелетон — это временный визуальный шум, и его нужно сделать корректным для всех пользователей.

Частые ошибки

Чек-лист внедрения

  1. Асинхронные зоны найдены. Определены все места каталога, где контент подгружается с паузой.
  2. Скелетоны совпадают с блоками. Геометрия плейсхолдеров равна геометрии реальных карточек и строк.
  3. Место зарезервировано. Плейсхолдеры держат высоту и сетку, скачков вёрстки нет.
  4. Тайминги настроены. Есть задержка появления и обработка таймаута с ошибкой.
  5. Пустая выдача обработана. На нулевом результате показывается «не найдено», а не бесконечный скелетон.
  6. Композит учтён. Динамические цены и остатки закрыты мини-скелетонами до догрузки.
  7. Доступность проверена. Скринридеры, reduced-motion и тёмная тема учтены.
  8. Тест на медленной сети пройден. Поведение проверено с троттлингом, а не только на быстром интернете.

Вывод

Скелетоны не делают сайт быстрее по секундомеру, но делают его быстрее по ощущениям — а именно ощущение скорости удерживает покупателя в момент ожидания. Заменив абстрактные спиннеры на плейсхолдеры реальных карточек, вы убираете «пустой экран», сглаживаете переходы и заодно боретесь со скачками вёрстки.

В каталоге на 1С-Битрикс скелетоны особенно уместны на умном фильтре, AJAX-подгрузке и догрузке персональных цен по композиту. Настройте геометрию плейсхолдеров, аккуратные тайминги и честную обработку ошибок — и состояние загрузки из слабого места превратится в деталь, которая работает на конверсию.

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

Чем скелетон отличается от спиннера?

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

Скелетоны реально ускоряют сайт или это только визуально?

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

Где в каталоге на 1С-Битрикс уместны скелетоны?

В первую очередь там, где контент подгружается асинхронно: результаты умного фильтра catalog.smart.filter, AJAX-подгрузка следующей страницы товаров, обновление списка после смены сортировки, отложенная загрузка цен и остатков по клиенту. В этих местах между действием пользователя и появлением товаров есть пауза, которую и закрывает скелетон.

Не будет ли скелетон мигать при быстрой загрузке?

Будет, если показывать его мгновенно на быстрых ответах. Поэтому скелетон показывают с небольшой задержкой (например, 150–200 мс): если ответ пришёл раньше, пользователь сразу видит контент без мелькания плейсхолдеров. А если загрузка затянулась — скелетон уже на экране. Это стандартный приём против «мигающих» состояний.

Как скелетоны связаны с композитным сайтом Битрикса?

Композитный сайт мгновенно отдаёт статическую часть страницы из кэша, а динамические блоки (цена группы, остаток, персональные данные) догружаются AJAX-ом уже после. Именно эти догружаемые блоки логично закрывать скелетонами: статика видна сразу, а на месте будущих динамических значений стоят плейсхолдеры, которые заменяются реальными данными.

Скелетон нужно рисовать под каждый тип блока отдельно?

Да, хороший скелетон повторяет геометрию реального блока: карточка товара, строка списка, баннер имеют разную структуру. Универсальный «серый прямоугольник» работает хуже, потому что после загрузки контент всё равно перестраивается. Обычно делают несколько шаблонов скелетонов под ключевые блоки каталога и переиспользуют их.

Скелетоны помогают в SEO?

Напрямую скелетон не индексируется и на ранжирование сам по себе не влияет. Но он помогает косвенно: убирает скачки вёрстки (CLS), удерживает пользователя в момент ожидания, снижает отказы. А поведенческие факторы и стабильность интерфейса уже входят в общую оценку качества сайта, поэтому аккуратные состояния загрузки работают на SEO вместе с остальной оптимизацией.

Поделиться:

Каталог тормозит и мигает при загрузке?

Проведём аудит производительности, внедрим скелетоны и уберём скачки вёрстки на вашем магазине 1С-Битрикс. Рассчитаем работу по вашему проекту.

Аудит и оптимизация 1С

Игорь Воскресенский

Команда B2Bsite. С 2014 года разрабатываем интернет-магазины и порталы на 1С-Битрикс: ускоряем каталоги, внедряем аккуратные состояния загрузки и повышаем конверсию витрины.

← Все статьи блога