E-commerce: Просування та запуск інтернет-магазину
Корисні статті та інструкції щодо просування, запуску та розвитку інтернет-магазинів у сфері E-commerce

Надшвидка архітектурна для e-commerce, або як зробити надшвидкий магазин на прикладі Hotlist.biz



Як створити надшвидкий інтернет-магазин: гайд


🚀 Як зробити надшвидкий магазин - на прикладі платформи Hotlist.biz

Hotlist.biz — це надшвидка e-commerce-платформа для створення інтернет-магазинів із великим функціоналом, у якій швидкість закладена на рівні архітектури. Платформа використовує повне кешування, асинхронні процеси, відкладене завантаження JavaScript, мінімізацію та об’єднання CSS і JS, відмову від важковагових бібліотек і точкове оновлення даних за часовими мітками. Такий підхід забезпечує миттєве завантаження сторінок, стабільну роботу під високим навантаженням, відмінні показники Google PageSpeed і максимальну ефективність SEO навіть для великих e-commerce-проєктів.

У сучасному e-commerce швидкість — це не «оптимізація» і не набір косметичних правок, а фундаментальна властивість архітектури. Для великих інтернет-магазинів із сотнями тисяч товарів, складними фільтрами, динамічними блоками та активною взаємодією з користувачем будь-яке помилкове рішення на старті неминуче призводить до деградації швидкості, SEO та загальної стабільності проєкту.

Саме тому у Hotlist.biz швидкість була закладена не на рівні формальних рекомендацій Google, а на рівні архітектурного мислення. У результаті платформа демонструє миттєве завантаження сторінок, блискавичну роботу пошуку та фільтрів і стабільність навіть під високими навантаженнями. Розглянемо деякі рішення.



📈 Архітектурна оптимізація Google PageSpeed, а не формальні правки

У Hotlist.biz показники Google PageSpeed — це наслідок правильної архітектури, а не просто набір порад.
Типова «оптимізація PageSpeed» обмежується:

  • порадами Lighthouse
  • формальним зменшенням ресурсів
  • компромісами у функціональності

Наш реальний показник оптимізації – 99%, 100%, 100%, 100%, що є практично фантастичним результатом.








❓ Як нам це вдалося? Ключові рішення

⚡ Повністю відкладене завантаження JavaScript

Базовий принцип платформи: ніякий JavaScript не завантажується, поки він не потрібен користувачу.

На старті сторінки:

  • завантажується лише мінімальний базовий службовий скрипт
  • він містить перелік можливих взаємодій та правила підвантаження модулів
  • відсутні важкі бібліотеки та UI-логіка

Усі інші скрипти:

  • підвантажуються виключно при взаємодії: при першій дії користувача (клік, відкриття, ініціація події) відправляється запит на завантаження відповідного скрипта; після завершення завантаження подія автоматично активується повторно і виконується потрібна логіка без втрати дії
  • кешуються: кешування відбувається на рівні файлів; скрипт оновлюється лише у випадку, якщо дата його зміни новіша за дату останнього кешованого файлу
  • повторно не завантажуються без потреби: використовується система глобальних змінних та прапорів стану, які фіксують факт завантаження скрипта; якщо модуль уже присутній у пам’яті, повторне завантаження і ініціалізація не виконуються — одразу запускається потрібна фінальна дія скрипта

Як це працює на практиці


  • користувач натискає кнопку або елемент інтерфейсу
  • базовий скрипт перевіряє, чи завантажений потрібний модуль
  • якщо ні — модуль підвантажується у фоні
  • дія не повторюється після завершення завантаження — після підвантаження модуля всі подальші взаємодії автоматично обробляються правильною логікою нового скрипта

Цей підхід використовується для:

  • модальних вікон
  • UI-елементів
  • навігації
  • фільтрів
  • допоміжних інтерфейсних компонентів

У результаті:

  • мінімальний First Contentful Paint
  • швидкий Time to Interactive
  • відмінні показники Google PageSpeed без обмеження функціоналу

Приклад використання відкладених завантажень скриптів - https://hotlist.biz/ua/scripts_guide.html



📦 Усі функціональні скрипти розділені на окремі невеликі модулі

  • додавання товару в корзину
  • порівняння товарів
  • завантаження випадаючих списків меню
  • показ слайдів із товарами
  • модальні вікна
  • кнопки зміни кількості додаваємих у кошик товарів
  • кнопка «Показати ще» та інші інтерактивні елементи

Кожен із цих скриптів:

  • підвантажується лише при взаємодії користувача
  • кешується окремо
  • не навантажує сторінку заздалегідь
  • забезпечує миттєву реакцію інтерфейсу та економію ресурсів


📌 Важливо уточнити і додаткове розділення завантажуваних бібліотек

Навіть якщо завантажено певну бібліотеку, наприклад для показу списку з товарами у вигляді віджету зі слайдами, вона може бути розділена на кілька додаткових служебних файлів:

  • Базовий скрипт відповідає за ініціалізацію списку товарів і його завантаження **
  • Додаткові модулі або бібліотеки підключаються окремо лише за потреби:
    • скролінг товарів мишею на десктопі
    • горизонтальна прокрутка на мобільному пристрої
    • спеціальні ефекти або автоперемотка слайдів
  • Кожен додатковий файл підвантажується тільки тоді, коли він активний у налаштуваннях для конкретного слайду
  • не навантажує сторінку зайвими ресурсами
  • кешується окремо та оновлюється лише при зміні

Цей підхід дозволяє зберігати максимально швидке завантаження сайту, навіть якщо на сторінці використовуються складні інтерактивні елементи та численні бібліотеки.

** Доречі, з точки зору SEO, завантаження всього каталогу виключно через скрипти є неправильним, адже пошукові системи можуть не бачити контент. У Hotlist.biz це враховано:

  • перший набір товарів відображається як реальний HTML-контент на сторінці
  • тільки після цього підвантажується JavaScript-бібліотека, яка забезпечує:
    • кнопку «Показати ще»
    • навігацію між слайдами товарів
    • інші динамічні взаємодії

Такий підхід дозволяє поєднувати SEO-дружність сайту та швидку, інтерактивну роботу користувацького інтерфейсу.



📱 Інтелектуальне мобільне меню без зайвого навантаження

Мобільне меню — один із найважчих компонентів будь-якого сайту. У Hotlist.biz воно:

  • не завантажується, якщо ширина екрану більша за задану — або якщо це не мобільний пристрій; тобто скрипт ініціалізується тільки тоді, коли дійсно потрібен мобільний інтерфейс, а зайве навантаження виключене (параметр можна вказати при створенні мобільного меню у налаштуваннях)
  • не ініціалізується, доки користувач не взаємодіє з меню
  • підвантажується лише за фактом реальної потреби

Розділення логіки, структури та контенту:

  • логіка меню зберігається в окремому кешованому JavaScript-блоці
  • пункти меню та вкладені структури зберігаються окремо — самі елементи відкритого мобільного меню не включені у базовий скрипт і не завантажуються заздалегідь
  • контент підвантажується динамічно при відкритті
  • кожен елемент кешується, має власну дату оновлення, не перевантажує систему навіть при складній навігації

Приклад постійної роботи мобильного меню - https://mirsemyan.com.ua/ua/

Приклад завантаження мобільного меню лише на екрані менше 900px та лише на мобільних пристоях - https://btq.in.ua/ua/



🖼️ Кешування та оптимізація зображень у списках товарів

У Hotlist.biz зображення оптимізуються на рівні архітектури відображення:

  • у списках товарів не завантажуються оригінальні великі зображення (наприклад, 2000×2000 px)
  • для кожного товару автоматично генеруються малі оптимізовані прев’ю («зменшені-картинки») саме під потрібний розмір списку
  • кожне прев’ю кешується окремо і повторно не генерується без необхідності
  • при зміні зображення оновлюється лише відповідна версія за часовою міткою

Додатково платформа підтримує:

  • автоматичну конвертацію зображень у сучасний формат WebP
  • стиснення без помітної втрати якості
  • мінімальний розмір файлів при збереженні високої візуальної чіткості

У результаті списки товарів завантажуються миттєво навіть при великій кількості позицій, без зайвого трафіку та з максимальними показниками Google PageSpeed.



💻 Максимальне використання вбудованих засобів HTML і CSS

На платформі Hotlist.biz інтерактивні елементи реалізовані переважно через стандартні HTML і CSS, без зайвих скриптів, що значно прискорює завантаження та рендеринг:

  • Вкладки (tabs) — через <label> + <input type="radio">, що дозволяє миттєво перемикати вкладки без підвантаження JavaScript.
  • Розкривні списки і акордеони — через <details> і <summary>, що забезпечує відкриття та закриття блоків нативними засобами браузера.
  • Прості фільтри, меню та інші блоки — використовують CSS-селектори (:checked, :target) для відображення або приховання контенту без JS.

Переваги такого підходу:

  • Швидкий First Contentful Paint (FCP) і оптимізація LCP;
  • Зменшення обсягу JavaScript, що підвантажується;
  • Повна SEO-дружність — пошукові системи бачать весь контент без додаткових запитів;
  • Стабільна робота навіть при високому навантаженні на сайт.

Приклади - https://hotlist.biz/ua/page.php?p=submit_catalog_page&subpage&html_widget



🧩 Для максимальної швидкості та продуктивності сайту

Рекомендується не використовувати HTML-таблиці для розташування контенту. Замість цього варто застосовувати CSS Flex та Grid, що дозволяє:

  • Гнучко і адаптивно розташовувати елементи;
  • Прискорити завантаження та рендеринг сторінок;
  • Покращити SEO і відображення на мобільних пристроях;
  • Мінімізувати зайві DOM-елементи та підвищити продуктивність.

Ця практика допомагає створювати легкі та швидкі сайти без додаткових скриптів для позиціонування контенту.



⚡ Повне кешування без memcache та обмежень оперативної пам’яті

Один із ключових принципів Hotlist.biz — повна відмова від memcache.

Memcache:

  • жорстко обмежений RAM
  • нестабільний при великих об’ємах даних
  • погано масштабується для великих e-commerce-проєктів

Альтернативна модель кешування Hotlist.biz:

  • кешується абсолютно все: HTML-блоки, JavaScript, CSS, меню, UI-компоненти, контентні структури і тексти
  • кеш не залежить від оперативної пам’яті
  • зберігається у вигляді окремих логічних блоків
  • оновлюється лише за фактом змін


🗓️ Розумна очистка кешу через дати змін

Глобальна очистка кешу — одна з найбільших помилок у великих магазинах. У Hotlist.biz використовується точкова логіка оновлення:

  • кожен тип даних має власну дату оновлення
  • кожен кеш-блок містить дату створення
  • при зверненні ці дати порівнюються
  • Якщо дата змін новіша — кеш перебудовується. Якщо ні — використовується готова версія.

Це дозволяє уникнути зайвих перерахунків, зберегти стабільність та підтримувати миттєву швидкість навіть при сотнях тисяч товарів.



📦 Відмова від великовагових бібліотек

Принциповий момент архітектури Hotlist.biz — відмова від важковагових бібліотек, таких як jQuery UI.

Чому це важливо?

Такі бібліотеки:

  • мають великий розмір
  • містять надлишковий функціонал
  • погіршують PageSpeed
  • завантажуються навіть тоді, коли не використовуються

Підхід Hotlist.biz:

  • використовуються власні самописні бібліотеки
  • або мінімальні зовнішні рішення, підібрані під конкретні задачі
  • кожна бібліотека
    • кешується
    • підвантажується лише при взаємодії
    • не впливає на стартове завантаження сторінки


🛠️ Об’єднання та мінімізація JavaScript і CSS

Для додаткового прискорення Hotlist.biz використовує агресивну оптимізацію ресурсів.


JavaScript


  • більшість бібліотек об’єднані в один базовий службовий файл
  • файл кешується
  • має часову мітку
  • змінюється рідко

навіть якщо платформа використовує десятки бібліотек:
  • вони фізично зібрані в один файл
  • браузер завантажує його один раз
  • повторних запитів немає

CSS


  • CSS-файли мінімізуються
  • видаляються переноси рядків і зайві пробіли
  • кешуються з довгим TTL
  • оновлюються лише при реальних змінах


🧩 Кешування користувацьких JavaScript і CSS

Hotlist.biz дозволяє підключати власні JavaScript і CSS через службові блоки платформи.

  • кожен користувацький файл має власну часову мітку
  • мітка змінюється тільки при редагуванні
  • браузер завантажує лише актуальну версію
  • кеш не очищується без потреби
  • Логіка ідентична кешуванню товарів або контентних блоків.


⚡ Миттєва фільтрація при сотнях тисяч товарів

Фільтрація — найскладніший сценарій для e-commerce.

У Hotlist.biz:

  • перший запит може бути трохи важчим
  • результат одразу кешується
  • наступні запити виконуються за долі секунди

Навіть при

  • великих каталогах
  • складних логічних умовах
  • високому навантаженні

Приклад миттєвого завантаження 5000 товарів знайдених пошуковим фільтром за характеристиками - https://mirsemyan.com.ua/ua/pers_shop/semena_main_ua/...



📁 Кешування рекламних та експортних файлів

У Hotlist.biz кешуються всі рекламні та експортні дані: Google Merchant, Rozetka, Prom, Hotline, Epicentrk, Sitemap та інші зовнішні канали.

  • Для кожного каналу створюється окремий кешований файл
  • Файли оновлюються лише при реальних змінах контенту на сайті (товари, ціни, наявність)
  • Це дозволяє
    • уникнути перевантаження сервера при генерації великих фід-файлів
    • забезпечити актуальні дані для всіх рекламних платформ
    • підтримувати високу швидкість роботи сайту навіть при великій кількості експортів


⚡ Асинхронний імпорт без блокування сайту

Імпорт — одна з найбільш небезпечних операцій для стабільності.

Як це реалізовано в Hotlist.biz:

  • імпорт запускається як серверний асинхронний процес
  • сайт залишається доступним для відвідувачів та власнику сайту
  • у браузері власника відображається детальний статус виконання
  • Створюється службовий кешований файл процесу, у якому фіксується:
    • загальна кількість товарів
    • кількість імпортованих позицій
    • ліміти виконання
    • статус кожного кроку
  • Якщо файл перестає оновлюватися — система визначає завершення або помилку.
  • Повторний імпорт неможливий, поки не завершено попередній — це захищає сервер від колосального навантаження


🖥️ Серверне оточення як основа швидкості

Для максимального результату Hotlist.biz рекомендує:

  • LiteSpeed як один із найшвидших сучасних веб-серверів
  • грамотне серверне кешування
  • оптимальні HTTP-налаштування (HTTP/2 і т.д.)
  • багато детальних рекомендацій щодо конфігурації серверів можна знайти у відкритих джерелах та методом тестів


⏱️ Контроль актуальності кешованих файлів через часові мітки

Єдиний нюанс такого підходу: іноді сервер може віддавати попередню версію файлу, який вже був змінений, через кешування на рівні веб-сервера.

У Hotlist.biz цю проблему вирішено за допомогою часової мітки:

  • до запиту на файл додається мітка останньої зміни
  • сервер повертає актуальну версію файлу, навіть якщо стара залишилася в кеші
  • це гарантує, що браузер завжди отримує останні оновлені скрипти, стилі та контент
  • Такий підхід дозволяє зберігати переваги кешування без втрати актуальності даних.


🌎 Hotlist.biz — одна з найшвидших e-commerce-платформа у світі

Створена для:

  • великих каталогів
  • високих навантажень
  • SEO
  • масштабування
  • стабільної роботи

Багато механізмів платформи — унікальні, продумані та реалізовані командою професіоналів з глибоким розумінням e-commerce та високонавантажених систем.

Швидше — просто не буває. Деякі інші рекомендації та статті ви можете знайти у блозі платформи https://hotlist.biz/ua/blog/sitecreate_ua/

Як створити інтернет-магазин: повний цикл
Як використовувати AI ChatGPT для наповнення інтернет-магазину
Хочете магазин, який буде працювати замість вас? Автоматизація інтернет магазину