Блог
Неможливе можливе: як ми досягли майже 100% у Google PageSpeed
У сучасному веб-світі швидкість завантаження сайту — один із ключових факторів успіху. Нещодавно нам вдалося зробити справжній прорив і підняти показники Google PageSpeed до практично 100% за всіма найважливішими метриками! Це результат комплексної і ретельної оптимізації, у яку ми вклали максимум знань та досвіду.
https://pagespeed.web.dev/analysis/https-hotlist-biz-ru/v87znuv93s?form_factor=desktop
Що допомогло досягти такого результату?
1. Оптимізація завантаження скриптів і стилів
Ми впровадили відкладене завантаження JavaScript і CSS, щоб критично важливі для відображення сторінки ресурси завантажувалися першими, а всі інші — асинхронно і лише за потреби. Більшість скриптів на платформі завантажується безпосередньо під час взаємодії з користувачем. Завдяки цьому користувачі бачать контент миттєво, а браузер не блокується зайвими викликами.
2. Стиск і мінімізація даних
Всі скрипти, стилі та зображення були максимально стиснуті і оптимізовані. Використання сучасних форматів зображень WebP/SVG, а також мініфікація CSS і JavaScript значно зменшили загальний обсяг завантажуваних даних.
3. Ефективне кешування та CDN
Ми налаштували кешування на сервері та використали мережу доставки контенту (CDN), що дозволило доставляти файли ближче до користувачів і зменшувати час відповіді сервера.
4. Розумна робота із зображеннями
Для всіх картинок реалізовано адаптивне завантаження — різні розміри і формати для різних пристроїв та роздільних здатностей. Використовуються техніки lazy loading, що дозволяє не завантажувати зображення, поки користувач до них не дійде.
5. Оптимізація шрифтів
Підключення шрифтів виконано з параметром font-display: swap, що знижує час відображення тексту без затримок через завантаження шрифтів.
6. Покращення рендерингу та DOM
Ми зменшили кількість зайвих елементів, оптимізували структуру HTML, прибрали непотрібні перерисовки та повторні обчислення стилів, що дозволило пришвидшити перше відображення і зробити інтерфейс чуйним.
Усі ці заходи дозволили нам практично досягти максимальних значень у Google PageSpeed Insights — а отже, сайт завантажується швидко, плавно та зручно на будь-яких пристроях і мережах.
Неможливе стало можливим завдяки увазі до деталей і комплексному підходу до оптимізації. Це відкриває нові горизонти для покращення користувацького досвіду і підвищення конверсії.
Всі ці переваги ви отримаєте, якщо оберете платформу Hotlist.biz для створення сайтів та інтернет-магазинів.
Додано сторінки виробників за країнами
На платформі Hotlist.biz з’явилася нова сторінка зі списком країн виробників. Тепер відвідувачі ваших інтернет-магазинів зможуть швидко знаходити товари за країною їхнього виробництва.
Крім того, у картці товару назва країни виробника стала активним посиланням. Натиснувши на нього, ви потрапите на сторінку з усіма товарами з тієї ж країни, що й вибраний товар.
Це оновлення зробить пошук і вибір товарів ще зручнішим і допоможе швидше знаходити продукцію потрібного походження.
На платформу Hotlist.biz додано Price Range Swiper — слайдер вибору діапазону цін у пошуковому фільтрі. Тепер користувачі можуть зручно встановлювати мінімальну та максимальну ціну за допомогою повзунків «Від» та «До», які відображаються зверху форми пошуку. Це покращує зручність і точність підбору товарів за ціною.
Для встановлення цього коду виконайте наступні кроки:
- Перейдіть у розділ «Сторінки» → «Віджети HTML».
- У пункті «Price range swiper - Слайдер вибору діапазону цін у пошуковому фільтрі» скопіюйте код JavaScript.
- Створіть блок меню та вставте в нього скопійований код.
- Встановіть позначку «JavaScript / CSS style».
- У появленому полі з параметрами оберіть «Javascript - async».
Для підключення стилів:
- Скопіюйте CSS стиль зі сторінки інструкцій зі створення «Price Range Swiper».
- Вставте його в редактор дизайну у вкладці «CSS стилі».
Код доступний за посиланням: #Price_range_swiper
Оновлення продуктивності сайту: оптимізація JavaScript та відкладене завантаження
Ми провели масштабну оптимізацію JavaScript на сайті для підвищення швидкості завантаження та покращення користувацького досвіду. Тепер більшість бібліотек завантажуються відкладено — лише тоді, коли це справді необхідно.
Всі скрипти винесені в окремі файли і підвантажуються виключно на тих сторінках, де вони використовуються, або коли користувач взаємодіє з відповідними елементами.
В результаті покращена робота наступних функцій:
- Перемотування товарів та статей
- Зміна кількості товарів при додаванні до кошика
- Взаємодія з різновидами товарів
- Додавання товарів до обраного
- Відображення та приховування заповнених значень у пошуковому фільтрі
- Мобільне меню
- Скрипт слайд-меню
- І інші...
Це оновлення значно пришвидшує завантаження сторінок і робить роботу сайту більш плавною та комфортною. Дякуємо, що обираєте нас!
Додано підтримку CSS-файлів у блоках/меню.
Тепер на Hotlist.biz ви можете створювати не лише кешовані JavaScript-файли, а й CSS-файли стилів — прямо в тексті блоків/меню.
Що це дає:
Для створення CSS-файлу вкажіть у параметрах блоку/меню — CSS.
Вставте в текст Блоку/Меню свій CSS-стиль і вкажіть сторінки, на яких його відображати.
Тепер на Hotlist.biz ви можете створювати не лише кешовані JavaScript-файли, а й CSS-файли стилів — прямо в тексті блоків/меню.
Що це дає:
- 🔧 Можливість підключення кастомних стилів лише на потрібних сторінках;
- 📁 Стилі зберігаються в окремому кешованому файлі, а не на самій сторінці;
- ⚡ Забезпечується чисте та швидке завантаження сторінок без вбудованого CSS.
Для створення CSS-файлу вкажіть у параметрах блоку/меню — CSS.
Вставте в текст Блоку/Меню свій CSS-стиль і вкажіть сторінки, на яких його відображати.
У систему додано оновлені сигнали та події для Google Tag Manager і Google Analytics 4 (GA4).
Налаштування виконано з урахуванням вимог GA4 — для максимальної сумісності з новими звітами та автоматичного відстеження конверсій. Підтримку застарілої версії Google Analytics Universal повністю скасовано.
Налаштування виконано з урахуванням вимог GA4 — для максимальної сумісності з новими звітами та автоматичного відстеження конверсій. Підтримку застарілої версії Google Analytics Universal повністю скасовано.
Додано спеціальний CSS-стиль для покращеного відображення таблиці товарів у кошику на мобільних пристроях та екранах шириною менше 450 пікселів. Стиль завантажується лише на сторінці перегляду кошика і не впливає на інші розділи сайту. Тепер оформлення кошика стало зручнішим та зрозумілішим на смартфонах і маленьких екранах.
Тепер на Hotlist.biz реалізована можливість асинхронного імпорту товарів — це означає, що ви можете завантажувати великі обсяги даних без оновлення сторінки та без тимчасового відключення сайту для вас.
🔹 Раніше: під час імпорту сайт ставав тимчасово недоступним для адміністратора, доки не завершиться весь процес. Це було незручно — особливо при великій кількості товарів.
🔹 Тепер: ви можете продовжувати роботу з сайтом, у той час як імпорт проходить у фоні. Процес імпорту більше не блокує інтерфейс, а рядки з файлу обробляються та відображаються в реальному часі прямо на екрані.
💡 Наприклад, при завантаженні 5000 товарів, що містять десятки зображень кожен, час обробки може займати десятки хвилин. Асинхронний імпорт повністю вирішує цю проблему — сайт залишається доступним, а ви бачите хід виконання.
🔹 Раніше: під час імпорту сайт ставав тимчасово недоступним для адміністратора, доки не завершиться весь процес. Це було незручно — особливо при великій кількості товарів.
🔹 Тепер: ви можете продовжувати роботу з сайтом, у той час як імпорт проходить у фоні. Процес імпорту більше не блокує інтерфейс, а рядки з файлу обробляються та відображаються в реальному часі прямо на екрані.
💡 Наприклад, при завантаженні 5000 товарів, що містять десятки зображень кожен, час обробки може займати десятки хвилин. Асинхронний імпорт повністю вирішує цю проблему — сайт залишається доступним, а ви бачите хід виконання.
Ви можете включити опцію «Асинхронний імпорт», щоб завантажувати великі обсяги даних у фоновому режимі.
Переваги:
- Імпорт виконується у фоні — ви можете продовжувати роботу з сайтом під час обробки.
- Браузер не перевантажується, а ви бачите прогрес в реальному часі.
Важливо:
- Якщо ви не використовуєте асинхронний режим, сайт стане тимчасово недоступний особисто для вас на час імпорту. Однак для інших користувачів він продовжить працювати в звичайному режимі.
- Під час асинхронного імпорту детальний лог по кожному товару недоступний — ви не побачите, які конкретно поля були змінені у кожної позиції в реальному часі.
- Після завершення імпорту буде доступний короткий зведений звіт з переліком оновлених, пропущених, видалених та проблемних товарів і різновидів.
Історія доступна в пунктах - «Показати результат попереднього імпорту» або «Попередній процес імпорту».
В системі доданий API — аналог WooCommerce API — який дозволяє: отримувати статистику замовлень, додавати, оновлювати та видаляти замовлення, переглядати категорії та керувати товарами. Все це доступно через захищені запити. https://hotlist.biz/ua/user_guide.html#hotengine-CommerceAPI
Доданий календар бронювання. Календар містить інформацію про зайняті слоти, розташовані на календарі. Кольори статусів та підказки зроблені аналогічно зі статистикою продажів. Крім того, додано опцію відображення часу в системі бронювання, формат 24год, а також 12год - AM/PM. Додана можливість створити систему бронювання на багато днів.
Додано віджет Бронювання.
Функція бронювання — це додатковий віджет, який дозволяє реалізувати систему запису в проміжки вільного часу. Бронювання можна реалізувати з поділом на групи, наприклад, для масажних ліжок, столиків у ресторані, орендних автомобілів або інших ресурсів.
Ви можете вказати розклад вільних вікон у вашому розкладі, як повторювані, так і разові. Після чого відвідувач зможе виконати бронювання.
При бронюванні доступні різні статуси. Ви зможете вказати реєстрований статус за замовчуванням, а також активувати функцію Оплати, після якої буде встановлюватися інший статус, вказаний у налаштуваннях.
Функція дозволяє обмежити відображувані в календарі дати. Крім того, можна реалізувати бронювання одного слоту на певну кількість місць.
Функція бронювання — це додатковий віджет, який дозволяє реалізувати систему запису в проміжки вільного часу. Бронювання можна реалізувати з поділом на групи, наприклад, для масажних ліжок, столиків у ресторані, орендних автомобілів або інших ресурсів.
Ви можете вказати розклад вільних вікон у вашому розкладі, як повторювані, так і разові. Після чого відвідувач зможе виконати бронювання.
При бронюванні доступні різні статуси. Ви зможете вказати реєстрований статус за замовчуванням, а також активувати функцію Оплати, після якої буде встановлюватися інший статус, вказаний у налаштуваннях.
Функція дозволяє обмежити відображувані в календарі дати. Крім того, можна реалізувати бронювання одного слоту на певну кількість місць.
Додано віджет з відгуками Google Reviews - Api (Google My Business).
Віджет дозволяє отримувати відгуки про вашу компанію із профілю Google My Business.
Google Reviews - Api
Віджет дозволяє отримувати відгуки про вашу компанію із профілю Google My Business.
Google Reviews - Api
Додано новий спосіб відображення списку категорій Магазину. Вертикальне Flex меню (Vertically Flex) – компактне вертикальне меню з фіксованою висотою, яке містить категорії та підкатегорії магазину. Дочірні категорії відображаються у блоці фіксованому по висоті, праворуч від кнопки батьківської категорії.
Додано новий спосіб відображення списку категорій у Магазині. Цей спосіб дозволяє відобразити список категорій, а також кілька дочірніх підкатегорій. Цей спосіб відображення можна увімкнути за допомогою Віджетів, "Віджет з категоріями магазину", "Спосіб відображення" - "Стандартний список із блоками (кнопками) + список підкатегорій".
Додано оточення для кнопки кошика «hotengine-shop-product-cart-parent», яке може містити додаткові класи «hotengine-shop-product-compare-exists» і «hotengine-shop-product-favorite-exists», якщо ввімкнено порівняння товарів або іконку «Додати до обраного», з розташуванням «ЗА» або «ПЕРЕД» кнопкою кошика. Крім того, якщо ввімкнено перемикач кількості доданих до кошика товарів, елемент міститиме додатковий клас «hotengine-shop-product-spinner-block».
Оновлено іконки перемикання стилю відображення списку товарів.
Оновлено стиль відображення товарів у вигляді списку.
Оновлено іконки перемикання стилю відображення списку товарів.
Оновлено стиль відображення товарів у вигляді списку.
jQuery UI повністю видалена з платформы. Встановлення бібліотеки відбувається тільки на деяких сторінках Адмін-Центру. Причина видалення — оптимізація та прискорення завантаження. Бібліотека jQuery UI займає понад 250 кБ.
Після оптимізації ми написали власні модулі спливаючих вікон (dialog), зміни кількості товарів перед додаванням до кошика (spinner), оновили налаштовуваний модуль спливаючих вікон hotengine-popup, замінили функцію вкладок (tabs) — тепер вони повністю реалізовані за допомогою стандартних засобів браузерів. Крім того, замінено функцію автозаповнення за допомогою найбільш компактного плагіна — Awesomplete.
Завдяки такій оптимізації вдалося скоротити код завантажуваних бібліотек до 22 кБ. Багато наших бібліотек тепер винесені в окремі процеси, тому вони не завантажуються без потреби.
Будь ласка, зверніть увагу: якщо ви раніше використовували такі функції, як dialog, slide, accordion, autocomplete або деякі інші функції, притаманні лише бібліотеці jQuery UI, вам необхідно встановити код для їх завантаження. Це можна зробити, додавши блок/меню, розмістивши в службових тегах, з наступним кодом.
Після оптимізації ми написали власні модулі спливаючих вікон (dialog), зміни кількості товарів перед додаванням до кошика (spinner), оновили налаштовуваний модуль спливаючих вікон hotengine-popup, замінили функцію вкладок (tabs) — тепер вони повністю реалізовані за допомогою стандартних засобів браузерів. Крім того, замінено функцію автозаповнення за допомогою найбільш компактного плагіна — Awesomplete.
Завдяки такій оптимізації вдалося скоротити код завантажуваних бібліотек до 22 кБ. Багато наших бібліотек тепер винесені в окремі процеси, тому вони не завантажуються без потреби.
Будь ласка, зверніть увагу: якщо ви раніше використовували такі функції, як dialog, slide, accordion, autocomplete або деякі інші функції, притаманні лише бібліотеці jQuery UI, вам необхідно встановити код для їх завантаження. Це можна зробити, додавши блок/меню, розмістивши в службових тегах, з наступним кодом.
Code: html
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.14.0/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.14.0/jquery-ui.min.js"></script>
- dialog()
- draggable()
- droppable()
- resizable()
- selectable()
- sortable()
- accordion()
- tabs()
- tooltip()
- datepicker()
- progressbar()
- spinner()
- slider()
- slider("option")
- slideUp()
- slideDown()
- fadeIn()
- fadeOut()
- position()
- widget()
В найближчі дні буде здійснено глобальне оновлення функціоналу платформи. Велика бібліотека JUQEY UI буде відключена. Для її встановлення, якщо ви використовуєте якісь функції зі списку нижче для стилізації вашого сайту, то необхідно підключити бібліотеку вручну. Це можна зробити за допомогою створення блоку/меню і розміщення в ньому коду
Функції, які будуть відключені:
Code: html
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.14.0/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.14.0/jquery-ui.min.js"></script>
Функції, які будуть відключені:
- dialog()
- draggable()
- droppable()
- resizable()
- selectable()
- sortable()
- accordion()
- tabs()
- tooltip()
- datepicker()
- progressbar()
- spinner()
- slider()
- slider("option")
- slideUp()
- slideDown()
- fadeIn()
- fadeOut()
- position()
- widget()