news
Impossible is Possible: How We Achieved Nearly 100% in Google PageSpeed
In today’s web world, site loading speed is one of the key success factors. Recently, we made a real breakthrough and raised our Google PageSpeed scores to nearly 100% across all critical metrics! This is the result of comprehensive and meticulous optimization, into which we poured maximum knowledge and experience.
What helped us achieve such a result?
1. Script and style loading optimization
We implemented deferred loading of JavaScript and CSS so that critical resources needed for page rendering load first, while all others load asynchronously and only when necessary. Most scripts on the platform load directly upon user interaction. Thanks to this, users see content instantly, and the browser is not blocked by unnecessary calls.
2. Compression and minimization of data
All scripts, styles, and images were maximally compressed and optimized. Using modern WebP/SVG image formats as well as CSS and JavaScript minification significantly reduced the overall amount of loaded data.
3. Effective caching and CDN
We set up caching on the server and used a content delivery network (CDN), allowing files to be delivered closer to users and reducing server response time.
4. Smart image handling
All images use adaptive loading — different sizes and formats for different devices and resolutions. Lazy loading techniques are applied, so images are not loaded until the user scrolls to them.
5. Font optimization
Fonts are loaded with the font-display: swap parameter, reducing text rendering delays due to font loading.
6. Improved rendering and DOM
We reduced unnecessary elements, optimized the HTML structure, removed redundant reflows and style recalculations, speeding up the first render and making the interface responsive.
All these measures have allowed us to practically achieve maximum scores in Google PageSpeed Insights — meaning the site loads fast, smoothly, and conveniently on any device and network.
Impossible became possible thanks to attention to detail and a comprehensive optimization approach. This opens new horizons for improving user experience and increasing conversions.
You will receive all these benefits if you choose the Hotlist.biz platform for creating websites and online stores.
Added manufacturer pages by country
A new page with a list of manufacturer countries has been added to the Hotlist.biz platform. Now visitors to your online stores can quickly find products by their country of origin.
In addition, on the product page, the manufacturer country name is now a clickable link. Clicking it will take you to a page showing all products from the same country as the selected item.
This update makes searching and selecting products even more convenient and helps users quickly find items of the desired origin.
The Price Range Swiper — a price range slider in the search filter — has been added to the Hotlist.biz platform. Now users can conveniently set the minimum and maximum price using the “From” and “To” sliders, which are displayed above the search form. This improves the ease and accuracy of product price filtering.
To install this code, follow these steps:
- Go to the «Pages» → «HTML Widgets» section.
- In the «Price range swiper - Price range slider in the search filter» item, copy the JavaScript code.
- Create a menu block and paste the copied code into it.
- Check the «JavaScript / CSS style» option.
- In the appeared parameters field, select «Javascript - async».
To connect styles:
- Copy the CSS style from the Price Range Swiper instruction page.
- Paste it into the design editor under the «CSS styles» tab.
The code is available at the link: #Price_range_swiper
Site Performance Update: JavaScript Optimization and Deferred Loading
We have carried out extensive JavaScript optimization on the site to increase loading speed and improve user experience. Now most libraries load deferred — only when truly necessary.
All scripts have been moved to separate files and are loaded exclusively on pages where they are used or when the user interacts with the relevant elements.
As a result, the following features have been improved:
- Scrolling of products and articles
- Changing product quantities when adding to the cart
- Interaction with product variants
- Adding products to favorites
- Showing and hiding filled values in the search filter
- Mobile menu
- Slide menu script
- And more...
This update significantly speeds up page loading and makes the site experience smoother and more comfortable. Thank you for choosing us!
CSS File Support Added in Blocks/Menus.
Now on Hotlist.biz, you can create not only cached JavaScript files but also CSS style files — directly within the block/menu text.
What this gives you:
To create a CSS file, set CSS in the block/menu parameters.
Insert your CSS style into the Block/Menu text and specify the pages where it should appear.
Now on Hotlist.biz, you can create not only cached JavaScript files but also CSS style files — directly within the block/menu text.
What this gives you:
- 🔧 Ability to add custom styles only on selected pages;
- 📁 Styles are stored in a separate cached file, not on the page itself;
- ⚡ Ensures clean and fast page loading without inline CSS.
To create a CSS file, set CSS in the block/menu parameters.
Insert your CSS style into the Block/Menu text and specify the pages where it should appear.
Analytics Update: Enhanced Signals for Google Tag Manager and GA4
The system now includes updated signals and events for Google Tag Manager and Google Analytics 4 (GA4).
The setup follows GA4 standards for full compatibility with modern reporting and automatic conversion tracking. Support for the outdated Google Analytics Universal version has been fully discontinued.
A dedicated CSS style has been added to improve the display of the cart table on mobile devices and screens narrower than 450 pixels. The style is loaded only on the cart page and does not affect other areas of the site. This makes the cart more user-friendly and readable on smartphones and small screens.
Now Hotlist.biz has implemented asynchronous product import — this means that you can upload large volumes of data without refreshing the page and without temporary site downtime for you.
🔹 Previously: during import, the site became temporarily unavailable to the administrator until the entire process was completed. This was inconvenient — especially with a large number of products.
🔹 Now: you can continue working with the site while the import runs in the background. The import process no longer blocks the interface, and lines from the file are processed and displayed in real time directly on the screen.
💡 For example, when uploading 5000 products, each containing dozens of images, processing time can take tens of minutes. Asynchronous import completely solves this problem — the site remains accessible, and you see the progress.
🔹 Previously: during import, the site became temporarily unavailable to the administrator until the entire process was completed. This was inconvenient — especially with a large number of products.
🔹 Now: you can continue working with the site while the import runs in the background. The import process no longer blocks the interface, and lines from the file are processed and displayed in real time directly on the screen.
💡 For example, when uploading 5000 products, each containing dozens of images, processing time can take tens of minutes. Asynchronous import completely solves this problem — the site remains accessible, and you see the progress.
You can enable the "Asynchronous Import" option to upload large volumes of data in the background.
Advantages:
- Import runs in the background — you can continue working with the site during processing.
- The browser is not overloaded, and you see progress in real time.
Important:
- If you do not use asynchronous mode, the site will become temporarily unavailable specifically for you during the import. However, for other users, it will continue to work normally.
- During asynchronous import, a detailed log for each product is not available — you will not see which specific fields were changed for each item in real time.
- After the import is completed, a brief summary report will be available with a list of updated, skipped, deleted, and problematic products and variations.
History is available under "Show previous import result" or "Previous import process".
The system has an API — an analogue of the WooCommerce API — which allows you to: receive order statistics, add, update and delete orders, view categories and manage products. All this is available through secure requests.
It is possible to bulk add or update products, including characteristics and varieties.
More details in the instructions: https://hotlist.biz/en/user_guide.html#hotengine-CommerceAPI
It is possible to bulk add or update products, including characteristics and varieties.
More details in the instructions: https://hotlist.biz/en/user_guide.html#hotengine-CommerceAPI
Added Booking Calendar. The calendar contains information about occupied slots located on the calendar. The colors of the statuses and tips are made similar to the sales statistics. In addition, the option to display time in the booking system has been added, the format is 24 hours, as well as 12 hours - AM / PM. Added the ability to make a booking system for many days.
A Booking Widget has been added.
The booking feature is an additional widget that allows implementing a booking system for available time slots. Bookings can be organized into groups, for example, for massage beds, restaurant tables, rental cars, or other resources.
You can specify the schedule for available time slots in your calendar, both recurring and one-time. After that, visitors will be able to make a booking.
Various statuses are available when booking. You can specify a default status to register, as well as activate a Payment feature, after which a different status, specified in the settings, will be applied.
The feature allows limiting the dates displayed in the calendar. Additionally, you can enable booking for one slot with a specified number of available spots.
The booking feature is an additional widget that allows implementing a booking system for available time slots. Bookings can be organized into groups, for example, for massage beds, restaurant tables, rental cars, or other resources.
You can specify the schedule for available time slots in your calendar, both recurring and one-time. After that, visitors will be able to make a booking.
Various statuses are available when booking. You can specify a default status to register, as well as activate a Payment feature, after which a different status, specified in the settings, will be applied.
The feature allows limiting the dates displayed in the calendar. Additionally, you can enable booking for one slot with a specified number of available spots.
Added widget with reviews Google Reviews - Api (Google My Business).
The widget allows you to receive reviews about your company from your Google My Business profile.
Google Reviews - Api
The widget allows you to receive reviews about your company from your Google My Business profile.
Google Reviews - Api
A new method for displaying the list of categories in the Store has been added. This method allows you to display a list of categories, as well as several child subcategories. This display method can be enabled using Widgets, "Widget with store categories", "Display method" - "Standard list with blocks (buttons) + list of subcategories".
Added an environment for the cart button «hotengine-shop-product-cart-parent», which may contain additional classes «hotengine-shop-product-compare-exists» and «hotengine-shop-product-favorite-exists» if product comparison or the 'Add to Favorites' icon is enabled, with a position «AFTER» or «BEFORE» the cart button. Furthermore, if the quantity toggle for adding products to the cart is enabled, the element will include the additional class «hotengine-shop-product-spinner-block».
Updated the icons for switching the product list display style.
Updated the style for displaying products in list view
Updated the icons for switching the product list display style.
Updated the style for displaying products in list view
Added a function to display the values selected in the search filter at the top of the page. The function can be enabled both in the "Mobile menu: Application" and in the "Search filter" functional menu. When enabling the function in the Mobile menu, you can set the minimum screen size for its activation.
jQuery UI has been completely removed from the website. The library is now installed only on certain pages of the Admin Center. The reason for the removal is optimization and speed improvement of loading. The jQuery UI library takes up more than 250 kB.
After optimization, we created our own modal window modules (dialog), changed the quantity of products before adding them to the cart (spinner), updated the customizable hotengine-popup modal module, and replaced the tab function (tabs) — now they are fully implemented using standard browser tools. In addition, the autocomplete function has been replaced with the smallest plugin — Awesomplete.
Thanks to this optimization, we have reduced the code of loaded libraries to 22 kB. Moreover, many of our libraries are separated into individual processes, so they are not loaded unnecessarily.
Please note that if you previously used functions like dialog, slide, accordion, autocomplete, or some other functions exclusive to the jQuery UI library, you will need to install the code for their loading. This can be done by adding a block/menu, placing it in service tags, with the following code.
The functions that are disabled:
After optimization, we created our own modal window modules (dialog), changed the quantity of products before adding them to the cart (spinner), updated the customizable hotengine-popup modal module, and replaced the tab function (tabs) — now they are fully implemented using standard browser tools. In addition, the autocomplete function has been replaced with the smallest plugin — Awesomplete.
Thanks to this optimization, we have reduced the code of loaded libraries to 22 kB. Moreover, many of our libraries are separated into individual processes, so they are not loaded unnecessarily.
Please note that if you previously used functions like dialog, slide, accordion, autocomplete, or some other functions exclusive to the jQuery UI library, you will need to install the code for their loading. This can be done by adding a block/menu, placing it in service tags, with the following code.
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>
The functions that are disabled:
- dialog()
- draggable()
- droppable()
- resizable()
- selectable()
- sortable()
- accordion()
- tabs()
- tooltip()
- datepicker()
- progressbar()
- spinner()
- slider()
- slider("option")
- slideUp()
- slideDown()
- fadeIn()
- fadeOut()
- position()
- widget()
In the coming days, a global update of the platform's functionality will be carried out. The large JUQEY UI library will be disabled. To install it, if you are using any of the functions listed below for styling your website, you need to manually include the library. This can be done by creating a block/menu and placing the following code in it:
The functions that will be disabled:
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>
The functions that will be disabled:
- dialog()
- draggable()
- droppable()
- resizable()
- selectable()
- sortable()
- accordion()
- tabs()
- tooltip()
- datepicker()
- progressbar()
- spinner()
- slider()
- slider("option")
- slideUp()
- slideDown()
- fadeIn()
- fadeOut()
- position()
- widget()