Оптимизация сайтов (PageSpeed) на базе 1С Битрикс
Клиент: proPlastic и proSMD

Задача
Долгая загрузка страниц, десктопные страницы отображают мобильную версию, низкие баллы по PageSpeed
Решение
Сокращение времени отрисовки LCP объекта, устранение ресурсов блокирующих загрузку, улучшение показателей PageSpeed для мобильной и десктопной версий сайтов

Ход работы

Основные показатели, с которыми работает PageSpeed – это LCP и FCP.

Главная стратегия по оптимизации этих показателей – неиспользуемые в данный момент пользователем компоненты отображать позже, а то, что ему нужно – выдать как можно скорее.

Длительное отображение LCP объекта

LCP объект – крупнейший элемент на странице, который видит пользователь при обращении к странице. На практике это картинка или баннер.

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

На главной странице двух сайтов LCP объектом выступает слайдер изображений, конкретнее самый первый слайд, который увидит клиент.

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 1 – LCP объект

Как показал аудит, на сайтах установлено расширение для отложенной загрузки изображений. Оно откладывает загрузку изображений, пока пользователь не увидит область, в которой они находятся.

Проблемой оказалось то, что LCP объект должен загружаться сразу, но расширение откладывало его на потом. Из-за этого показатель загрузки крупного объекта возрастал, что негативно влияло на оценку оптимизации по PageSpeed.

Что было сделано:

  1. Исключили LCP объект из отложенной загрузки
  2. Перенесли изображение в тег <img>, чтоб можно было задать приоритет загрузки. Иначе изображение загружалось бы через стили, а это более поздний этап при отрисовке страницы
  3. Выставили максимальный приоритет первому слайду
  4. Для следующих слайдов поставили низкий приоритет, так как пользователь их не видит
  5. На мобильной версии proSMD прогружались изображения для десктопа, но были скрыты стилями. Это забивало трафик ненужными обращениями к серверу, поэтому вывод таких изображений был убран
  6. Все изображения были сконвертированы в формат webp и обжаты до качества 80, что позволило значительно сократить их размер и уменьшить время загрузки
  7. Изображения внутри слайдера на мобильной версии сайта имели размер больше ширины стандартного смартфона, поэтому приняли решение пропорционально обрезать такие изображения
  8. Видео-фреймы из rutube были также отложены, потому что пользователь мог даже не долистать до видео, а rutube при этом подгружал большое количество скриптов и стилей
  9. Для изображений до сгиба страницы был выставлен средний приоритет, чтобы они не мешали отрисовке главного изображения, но и были следующими в очереди загрузки

Показатель FCP

Показатель FCP отвечает за время, когда начинает отрисовываться страница.

В идеале это должно происходить сразу после получения ответа от сервера. Однако зачастую это невозможно, потому что начало отрисовки могут блокировать:

  • скачивание и обработка CSS файлов 
  • скачивание и выполнение js скриптов 
  • прочие блокирующие операции

Перед отрисовкой страницы браузеры необходимо понять:

  • какие стили применить
  • какие скрипты выполнить

Что было сделано:

  1. Отложили загрузку скриптов, которые не требуют быстрого взаимодействия с пользователем (виджеты, всплывающие уведомления и т.д.)
  2. Ядро битрикса являлось узким горлышком при оптимизации сайта. Каждая версия переносила наработки из прошлых версий, как снежный ком, увеличиваясь в размерах из-за устаревшего и неиспользуемого функционала. Просто отложить его выполнение влекло за собой ошибки в работе сайта. Однако расширения, которые подгружало ядро, удалось отложить, что значительно сократило время блокировки рендера страницы
  3. Крупную библиотеку jquery перенесли в низ страницы, чтоб загрузка происходила после отрисовки LCP объекта
  4. Отложили загрузку квизов и метрики, а также обращений к виджетам bitrix24
  5. Убрали дублирующиеся обращения к сторонним ресурсам, ведущим к одному и тому же файлу
  6. Локально загрузили шрифты Google, так как обращение к их серверам более времязатратно
  7. Убрали preconnect для домена g.fonts, так как нет необходимости заранее подключаться к серверам Google
  8. Стили виджетов, сторонних сервисов и шрифты были отложены до конца загрузки страницы

Рассинхрон шаблонов для мобильной и десктопной версии сайта

Баг был воспроизведен. Основная причина – некорректная работа режима композита на сайте.

Композит был отключен, после чего проблема исчезла.

Дополнительные работы

  1. Настроили сжатие статического контента для каждого сайта
  2. Увеличили время кеширования статического контента
  3. Добавили в кеширование форматы файлов webp и woff2

Результаты

Для теста производительности были использованы сервисы:

  • Google Pagespeed
  • Lighthouse
  • DevTools Perfomance

Условия тестирования

Сеть:

4G  в условиях низкой скорости

Кеш:

отключен

Параметры теста мобильной версии:

Эмулятор смартфона: Moto G Power

Троттлинг CPU: Средние смартфоны (двойной троттлинг)

Было

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 2 – Замер загрузки страницы

Как видно на изображении, отрисовка LCP объекта занимает порядка 8.45 секунд, что достаточно много. При этом разрыв между FCP и LCP составляет почти половину общего времени загрузки.

  • желтые и фиолетовые блоки – стили и скрипты
  • зеленые блоки – изображения

Среди изображений находится объект LCP, который на момент замера находится ниже остальных в очереди загрузки.

Стало

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 3 – Замер после оптимизации

Наше изображение поднялось выше в очереди загрузки, а тяжеловесные скрипты и стили были вынесены ниже во вторую и третью очередь.

Таким образом:

  • сначала отрисовывается LCP объект
  • затем загружается дополнительные ресурсы

В результате время отрисовки LCP сократилось примерно на 6-7 секунд.

Замеры по PageSpeed

proPlastic

Мобильная версия

Было:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 4 – Мобильная версия proPLASTIC до оптимизации

Стало:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 5 – Мобильная версия proPLASTIC после оптимизации

Десктопная версия

Было:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 6 – Десктопная версия proPLASTIC до оптимизации

Стало:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 7 – Десктопная версия proPLASTIC после оптимизации

proSMD

Мобильная версия

Было:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 8 – Мобильная версия proSMD до оптимизации

Стало:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 9 – Мобильная версия proSMD после оптимизации

Десктопная версия

Было:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 10 – Десктопная версия proSMD до оптимизации

Стало:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 11 – Десктопная версия proSMD после оптимизации

Категории proSMD

Мобильная версия

Было:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 12 – Мобильная версия категории proSMD до оптимизации

Стало:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 13 – Мобильная версия категории proSMD после оптимизации

Десктопная версия

Было:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 14 – Десктопная версия категории proSMD до оптимизации

Стало:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 15 – Десктопная версия категории proSMD после оптимизации

Категории proPLASTIC

Мобильная версия

Было:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 16 – Мобильная версия категории proPLASTIC до оптимизации

Стало:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 17 – Мобильная версия категории proPLASTIC после оптимизации

Десктопная версия

Было:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 18 – Десктопная версия категории proPLASTIC до оптимизации

Стало:

Оптимизация сайтов (PageSpeed) на базе 1С Битрикс

Рисунок 19 – Десктопная версия категории proPLASTIC после оптимизации

Получить бесплатный аудит
Получить
Напишите нам