Changelog
2.3.9 (2026-11-10)
Fixed
- Fixed the Generate responsive images, Cleanup responsive images and Run pre-fly checking buttons in Stores → Configuration showing "Invalid Form Key" and doing nothing. The 2.3.7 security fix started checking the admin form key on these actions, but the buttons never sent it correctly, so every click was rejected, whether Add Secret Key to URLs was on or off. The buttons now send the form key with each request and work again.
- Fixed phones with a 3x pixel density, such as iPhone Pro Max and Pixel Pro models, loading the large desktop copy of responsive images instead of a mobile one. The 2x mobile copy added in 2.3.8 was still not sharp enough for these screens, so the browser skipped past it to the desktop image. Generate responsive images now also creates a 3x copy of the mobile size, stored in a
resize-480-3xfolder next to the existing ones, and offers it to the browser. Cleanup responsive images removes it together with the other copies. Run Generate responsive images again after updating so the new copies exist. - Security improvements.
2.3.8 (2026-11-06)
Fixed
- Fixed responsive images telling the browser the wrong sizes. The
srcsetandsizesattributes always announced the resized copies as 480 and 800 pixels wide, no matter which widths were set under Responsive images → Config. A desktop copy resized to, say, 1920 pixels was announced as 800, so browsers picked the wrong copy. The attributes now use the configured widths. When the desktop width is left blank, 800 is used so the attribute stays valid. - Fixed phones and other high-density screens loading the large desktop copy instead of the mobile one. The mobile copy alone was not sharp enough for a screen that packs two device pixels into each CSS pixel, so the browser skipped past it to the far bigger desktop image. Generate responsive images now also creates a 2x copy of the mobile size, stored in a
resize-480-2xfolder next to the existing ones, and offers it to the browser. Cleanup responsive images removes it together with the other copies. Run Generate responsive images again after updating so the new copies exist; until then, pages keep offering the mobile and desktop copies as before. - Fixed responsive image generation enlarging source images that are narrower than the configured width, which produced blurry, larger-than-needed files. The resize now only shrinks. A source image that is already narrower than the target is written at its own size. This was most likely for the new 2x mobile copy, which targets twice the mobile width (960 pixels for the default 480).
2.3.7 (2026-11-04)
Fixed
- Fixed critical CSS generation failing for pages whose critical CSS is larger than about 64 KB. The extraction tool exited before it had finished writing its result, so the result was cut off and the admin showed "Control character error, possibly incorrectly encoded". The full result is now written before the tool exits.
- Fixed the Generate responsive images, Cleanup responsive images and Run pre-fly checking admin actions not checking the admin form and secret keys. A crafted link opened by a logged-in admin could trigger these actions. The buttons already send both keys, so nothing changes in normal use.
- Fixed the responsive image resize command receiving unescaped file names and the configured width. A file name containing shell syntax, or a non-numeric width value saved in configuration, could run arbitrary commands on the server. File paths are now passed as escaped arguments, and only the whole-number width is used.
- Fixed values from the Preload recourses list being written into the page head unescaped. A quote in a saved value could break out of the link attribute and insert markup into every storefront page, and
$1in a value was expanded as a pattern reference. Values are now escaped, and entities you typed yourself, such as&in a URL, are kept as they are instead of being encoded twice. - Fixed a Critical CSS rule being able to close the inline
styleelement and inject markup into the page. The/stylesequence was removed in one pass, which could rebuild it from the surrounding text. It is now removed until none is left. The same protection is applied to stylesheets inlined by the Add styles to HTML from CSS resources setting. - Fixed the Add styles to HTML from CSS resources setting fetching remote stylesheets without checking the server's TLS certificate, and fetching protocol-relative (
//) stylesheet links over plain HTTP. Certificates are now verified, and protocol-relative links are fetched over HTTPS. Stylesheets served with an invalid or self-signed certificate (common on staging servers) are no longer inlined; the page loads them normally. Links with an explicithttp://address are still fetched as written.
2.3.6 (2026-10-28)
Features
- AVIF images — a new Use AVIF images setting under Stores → Configuration → PageSpeed Optimizer → Image optimization creates an AVIF copy of every JPEG and PNG image and shows it on the storefront in place of the original. AVIF files are usually smaller than WebP, so pages load faster. The setting is off by default and applies to the whole installation. It needs the
avifenctool on the server, and your web server must send.aviffiles with theimage/avifcontent type. When WebP is also on, each image is shown as AVIF where an AVIF copy exists and as WebP everywhere else. This applies to page images,picturesources, product images, galleries, swatches and Page Builder background images. GIF images are never queued for AVIF. Browsers without AVIF support do not display these images. - AVIF quality — a separate AVIF quality field (1–100, default 60) sets how strongly AVIF copies are compressed. It is kept apart from the image quality level because AVIF looks just as good at a lower number: at 60 the files are already smaller than WebP at 100. After you change it, the next optimization runs convert the existing AVIF images again, with no reset needed.
- AVIF copies are made by the existing image optimization cron and by
bin/magento mirasvit:optimize-image:optimize, which has a new--avifoption to make only AVIF copies.bin/magento mirasvit:optimize-image:validatenow checks foravifenc. The admin shows a warning when AVIF is on butavifencis missing, and the image statistics show an AVIF Files count.bin/magento mirasvit:optimize-image:resetalso removes AVIF copies. - ⚠️ The
mst_optimize_image_filetable gets three new nullable columns,avif_path,avif_hashandavif_quality, plus an index onavif_hash. Runbin/magento setup:upgradeafter updating.
Improvements
- AVIF conversion handles failures safely. If
avifencfails on one image, the error is logged and the image keeps its compressed and WebP copies; an older AVIF copy of it is removed, so the WebP copy is shown instead of an outdated picture. The failed image is tried again when theavifencbuild on the server changes, when AVIF quality changes, or after a week. Olderavifencversions (before 1.0, as shipped with Debian 12 and Ubuntu 22.04) are detected and given the options they understand. bin/magento mirasvit:optimize-image:optimize --image,--webpor--avifnow queues only images that need that kind of processing. Before, a run limited to one kind could keep picking up images it would not touch, and then stop early. Images already compressed at the current level are no longer compressed again when their compressed copy is up to date and they only need an AVIF or WebP copy.
Fixed
- Fixed Defer Google Fonts doing nothing on most current themes. Only the old
fonts.googleapis.com/css?link was recognized. Thecss2?family=…link that Google has given out since 2020 was ignored, so the font stylesheet still blocked page rendering, got no preload and nodisplay=swap, and nothing was logged. Both link types are now deferred. A link that asks for another display mode, such asdisplay=block, now getsswapin its place instead of a seconddisplayparameter. - Fixed some storefront images being matched to the wrong image record, or to none, when their address contained the media folder name more than once, for example
/media/catalog/media/x.jpg. Those images were not shown in their optimized or WebP form, or a different optimized file was shown in their place. - Fixed
picturesources getting a secondtypeattribute when replaced with a WebP or AVIF copy. Browsers read the first one, so they could treat the copy as the original format. - Fixed
bin/magento mirasvit:optimize-image:optimizestopping with an error on stores that keep media on remote storage, such as Amazon S3. The command checked and measured the optimized and WebP copies on the local disk instead of in the bucket. - Fixed
bin/magento mirasvit:optimize-image:optimizesaving an image with no size when its optimized or WebP copy was missing. Such an image is now removed from the list with the reason printed, and the next scan adds it again. - Fixed images whose compressed copy had been deleted never being compressed again while their WebP copy remained. They are now queued again.
- Fixed critical CSS inlining downloading stylesheets over HTTP while the page was rendering, instead of reading them from disk. Stylesheets linked from the site root (
/static/...) got a double slash in their address, so they were not found locally. This slowed down page rendering.
2.3.5 (2026-10-19)
Fixed
- Fixed the Generate responsive images, Cleanup responsive images and Run pre-fly checking buttons in the module configuration doing nothing when clicked on admin setups where the button's HTML id contains special characters such as
:. The button could not find itself on the page, so the action never started and no progress or result was shown. - Fixed fonts and background images going missing on pages that use critical CSS. When the critical CSS came from a stylesheet with relative file paths (for example, a theme's web fonts or icon images), the browser looked for those files next to the page instead of next to the stylesheet. The files were not found, so text could show in a fallback font and icons or backgrounds could be missing until the full stylesheet loaded. These paths are now corrected during extraction. Files on your own domain are linked from the site root, and files on a CDN are linked by their full address. Critical CSS generated before this update keeps the broken paths until it is generated again.
2.3.4 (2026-10-12)
Improvements
- The module is now ready for Mirasvit Core 2.0. It uses Magento's own JSON handling for its settings, product gallery and swatch images, Page Builder background images, JS bundle tracking and the PageSpeed score charts in the admin. It no longer relies on a Core helper that Core 2.0 removes, so upgrading Core will not break the storefront or the admin.
- ⚠️ On upgrade, a one-time step converts the Responsive images and Preload fonts settings from the old pre-Magento 2.2 storage format to JSON, in every scope (
mst_optimize/optimize_image/responsive/imageandmst_optimize/optimize_html/preload_fontsincore_config_data). Without this step, stores that last saved these settings on Magento 2.1 or earlier would see them come back empty. Settings already stored as JSON are not changed, and a value that cannot be read is left as is and logged as a warning.
2.3.3 (2026-10-09)
Features
- Image optimization on remote media storage — images are now optimized and converted to WebP on stores that keep media on remote storage, such as Amazon S3. Before, the module did nothing on these stores and logged no error. It looked up each image under a full bucket URL that matched no record. The media-folder scan found no files, and the optimizer tools never got a file to work on, so every page kept serving the original images. Now, on remote storage, images are picked up when storefront pages request them, because scanning a whole bucket would be slow and costly. Each image is downloaded as a working copy for the optimizer tools, and the result is uploaded back. Stores with local media work as before, and their existing image records stay valid without any migration.
Improvements
- On stores with remote media, storefront pages no longer run a database lookup for every image looking for a record that could never match. This removed 21 of 195 queries on one tested home page. Pages also send fewer requests to the bucket: the module remembers which optimized copies exist and stops re-downloading SVG and ICO files to check their type.
- Image records are now keyed by where the media folder actually is, as set in Magento's directory configuration. Stores that moved
pub/mediaelsewhere (split deployments, hosted platforms) now get correct matches. A store root such as/var/wwwis also no longer mixed up with a media folder at/var/wwwdata/media. - ⚠️ Stores that use the Webpages scan strategy with remote media may still have image records saved under the old URL-shaped keys. These records no longer match anything and are not cleaned up automatically. They are harmless; you can safely truncate the
mst_optimize_image_filetable to remove them.
Fixed
- Fixed the checkout breaking when Move JavaScript To Page Bottom was turned on: customers could not place an order.
/checkoutis now the default value of the move-JS URL exception list, matching the JS bundling exception list. Stores that saved the JavaScript settings before this default existed have an empty saved value that overrides it. On upgrade, each empty JS bundling or move-JS exception value, in any scope, is set to/checkout. Lists you filled in yourself are not changed. - Fixed Delay JavaScript skipping every inline script on a page that contained one large inline script (about 9 KB or more; Algolia and cookie-consent settings easily reach that size). Nothing was logged when this happened.
- Fixed the store-view setting for Move JavaScript To Page Bottom being ignored; only the default-scope value was applied.
- Fixed disabling this module also disabling Magento's own Minify JavaScript Files setting (Advanced → Developer).
- Fixed JS bundles no longer loading on the storefront after Minify JavaScript Files was turned off without redeploying static content.
- Fixed JavaScript used on only some pages being added to the default bundle that every visitor downloads. Repeat visits to the same page made the file look as if every page used it.
- Fixed the JS bundle tracking endpoint returning a server error on malformed data and discarding the valid URLs in the same request.
- Fixed the Ignore List not applying to YouTube iframes when Defer YouTube videos was enabled.
- Fixed lazy-loaded iframes never loading when the page output was processed twice; each pass also added another
noscriptcopy. - Fixed a page that contained the same inline script twice losing one copy, even when that copy was inside an excluded block.
- Fixed the critical CSS extractor picking up styles from iframes on the page, such as third-party chat widgets. Once inlined into the page, one widget's styles froze the storefront: scrolling and clicks stopped working, and the content was squeezed into a single screen.
- Fixed raw error text being shown in the admin when critical CSS extraction failed unexpectedly. The admin now shows a short message, and the details are written to the exception log.
- Fixed the admin reporting "The rule has been deleted." when deleting a critical CSS rule that no longer existed, for example from an outdated grid in another tab or after pressing Back.
- Fixed GIF optimization working only when started from the Magento root folder; it failed for cron jobs and services that run from a different working folder.
- Fixed images under
pub/but outsidepub/media, such as versioned static images, being treated as missing even though they were on disk. - Fixed
bin/magento mirasvit:optimize-image:optimizewith a path argument reporting "No files to process" under the Webpages scan strategy. Its progress bar also started from too low a count. - Fixed image records on remote media being deleted whenever an image appeared to be missing, which undid their optimization until the next scan. On these stores, records for
pub/staticand other local files are still cleaned up. - Fixed several remote-storage issues: optimized copies and WebP versions were checked on the local disk while the page URL pointed to the bucket. Pending images also showed "Not allowed file extension" in the debug output, and the cron looked for optimized copies in the wrong place.
- Fixed failed PageSpeed checks being saved as a score of 0, which made the score graph drift toward zero and the store look slower. A check fails when there is no outbound access, the API key is invalid or expired, the quota is used up, or the request times out. Failed checks are now skipped and the reason is logged, and
bin/magento mirasvit:optimize-insight:pagespeedexits with an error code. - Fixed saved PageSpeed score records having no ID, so they could not be loaded or deleted.
2.3.2 (2026-09-22)
Features
- Exclude image formats from optimization — a new Exclude image formats from optimization field under Stores → Configuration → PageSpeed Optimizer → Image optimization lets you leave JPEG, PNG or GIF images alone. An excluded format is neither compressed nor converted to WebP, and never enters the optimization queue at all. Nothing is excluded by default, so existing stores are unaffected, and each format can be excluded on its own. The JPEG option covers both
.jpgand.jpegfiles. Clearing a format puts it back into the queue on the next run. - Restore one image format —
bin/magento mirasvit:optimize-image:resetaccepts a new--formatoption (for example--format=gif, repeatable) that restores the originals for just that format and leaves the optimized and WebP copies of the other formats in place. This is the documented way back after excluding a format, since copies made before the exclusion are kept. An unknown format name is refused with the list of valid ones instead of matching nothing.
Improvements
- Responsive image generation and cleanup now read the image table once per run instead of once per configured responsive image, and each of those reads scanned the whole table. On stores with a large image table (one customer's had grown to 13.3 million rows) and several configured responsive images this was the slowest part of the job. The files produced are identical; cleanup now also deletes a file covered by two configurations once instead of once per configuration.
- Storefront pages look up all their images in two database queries instead of two per image. On a Hyvä home page, 30 of the page's 103 queries were these lookups — and all 30 were misses, because that store serves its images from a CDN. The markup produced is unchanged.
- ⚠️ Matching a configured responsive image against stored image paths is now a plain case-insensitive substring test. It now also matches when the configured name differs in letter case from the stored path (those images were resized before and would otherwise have stopped being). It no longer treats
_and%in a configured name as wildcards — previouslyhero_banner.jpgalso matchedheroXbanner.jpg. This aligns generation with the check that decides which image is actually served.
Fixed
- Fixed
bin/magento mirasvit:optimize-image:resetstopping with a fatal error part-way through when it hit an image file that exists but cannot be read. The run aborted, leaving every record it had already processed stripped of its optimized and WebP copies on disk while the rest of the table still pointed at files the run had deleted. Such a record is now removed like a missing one, and the next scan re-creates it if the file becomes readable again.
2.3.1 (2026-09-15)
Improvements
- The admin warning about WebP conversion now names the image formats that cannot be converted on your server (for example, only GIF when the
gif2webptool is missing butcwebpworks) instead of reporting that WebP conversion does not work at all — and it is no longer shown on stores that keep WebP turned off.bin/magento mirasvit:optimize-image:validatenow also checks forgif2webp.
Fixed
- Fixed the image optimization cron running for hours and re-processing the same images over and over on servers where the required tools are missing or only partly installed. While it did, it held the
defaultcron group, so other jobs — including the order, invoice, shipment and credit memo e-mails — piled up hundreds of missed runs. The queue now only picks up images the installed tools can actually produce a result for, stops as soon as it notices the same batch coming back, and ends a run after five minutes (bulk work belongs tobin/magento mirasvit:optimize-image:optimize, which now has the same safeguards and tells you when nothing can be processed). - Fixed images being silently skipped forever when the server reports their file type with a different spelling than expected (for example
image/x-pngfor a PNG,image/pjpegfor a JPEG, or a type with acharsetsuffix) — there was no error and no log entry, the images simply never appeared in the optimization queue. These spellings are now recognised, so the affected images get optimized. - Turning image optimization off no longer switches off the cleanup of the image-optimization table: the file scan and the orphaned-record sweep now run before the on/off check. This matters because switching optimization off is the natural reaction to discovering an oversized table — which is exactly when the pruning has to keep running.
- Fixed the JavaScript bundling feature's tracking requests starting a Magento session on every storefront page. With locking session storage (Redis) they waited on the session lock the page request itself was holding, adding 400 ms to 1.3 s to page response times — one store measured page-finish times of up to 1.6 minutes. Neither request reads or writes the session, so no session is started for them now.
- Fixed the JavaScript bundle tracking endpoint recording nothing when it received a single URL instead of a list — it answered with "success" while quietly storing nothing, leaving only a warning in
exception.log. A single URL is now handled like a list. - Fixed misspelled admin labels: "Add styles to HTML from CSS resourses" and its help text now read "resources", and the image lazy-load hint now reads "Only affects background images added from the page builder". Existing translations for all locales are unchanged.
2.3.0 (2026-09-03)
Features
- Developer Mode switch — a new Developer Mode setting under Stores → Configuration → PageSpeed Optimizer → General controls the
?debug=lazyand?debug=optimize-imagedebug output on the storefront. It ships turned off, so this diagnostic information is no longer visible to anyone who guesses the URL parameter on a live store; turn it on only while troubleshooting. - Clean up orphaned image records — the new
bin/magento mirasvit:optimize-image:cleanupcommand removes image-optimization records for files that no longer exist on disk, and deletes the optimized/WebP copies left behind with them. Useful after purging the product image cache or deleting products. The command refuses to run (and removes nothing) when media is stored remotely or in the database, where missing files cannot be detected reliably.
Improvements
- The image optimization cron now sweeps out orphaned records on every run, so the optimization table no longer grows without limit after image cache purges — on one store it had reached 13 million rows (11.7 GB) for about 14,000 real images. The sweep works in batches, so it stays fast and light even on tables that large, and is skipped automatically on remote (S3) or database media storage.
- Storefront pages issue far fewer database queries for image optimization: repeated lookups of the same image within a page are now reused instead of re-queried (a category listing dropped from ~150 queries down to one per distinct image).
- ⚠️ New default: the "Do not use JavaScript bundles on pages" list now defaults to
/checkout, so JavaScript bundling no longer breaks the checkout on a fresh install. Stores that never saved a value for this field will pick up the new default (config pathmst_optimize/optimize_js/bundle_js_exception) — set the field explicitly if you want bundles on checkout. - The help text for the "Do not use JavaScript bundles on pages" field now explains exactly what it accepts: a pattern is part of the URL path, matching is case-sensitive, a full action name (e.g.
checkout_index_index) limits it to a single page, full URLs and wildcards are not supported, and a lone/disables bundles across the whole store.
Fixed
- Fixed
setup:static-content:deployfailing with an "Undefined constant … BUNDLE_JS_DIR" fatal error on Mage-OS installations — the module now detects Magento's deploy component properly instead of looking for it at a fixed vendor path. - Fixed the
?optimize_js=URL parameter being written into the page markup as given, which allowed a crafted link to inject content into the storefront HTML. Only the two valid modes are now accepted; anything else falls back to the default. - Fixed a single
0in the iframe lazy-load exception list being silently dropped instead of used as a pattern. - Fixed several admin configuration labels and help texts that still displayed in English on non-English admin panels — including the image optimization strategy options, the PageSpeed insight score labels and the "Preload recourses" help. All admin wording, including the new settings above, is translated across the 15 supported locales.
2.2.0 (2026-07-01)
Features
- Delay JavaScript Until User Interaction — Holds heavy third-party scripts (Google Tag Manager, chat, analytics, review widgets) until the shopper first interacts with the page, or an optional timeout — lowering Total Blocking Time without losing functionality. Set include/exclude patterns under Stores → Configuration → PageSpeed Optimizer → JavaScript Optimization and test them with the built-in Dry Run mode; core scripts (RequireJS, jQuery, Knockout, Magento UI, Hyvä/Alpine) are never delayed.
- Critical CSS per page type — Define per-page-type critical CSS (product, category, CMS, checkout, third-party) on the new Critical CSS Rules page (Content → PageSpeed Optimizer) so above-the-fold styles paint immediately; a built-in extractor captures each page's real CSS, on demand or on a schedule. To then load the remaining stylesheets without blocking first paint, enable Defer Non-Critical CSS under Stores → Configuration → PageSpeed Optimizer → CSS Optimization. ⚠️ The extractor needs Node.js and Chrome/Chromium on the server (storefront handling stays pure PHP — Magento Cloud–safe).
Improvements
- JavaScript Optimization now coordinates with Magento's native Minify JavaScript Files instead of conflicting. ⚠️ On upgrade it switches on automatically if native minify is already enabled — disable it under PageSpeed Optimizer → JavaScript Optimization if unwanted.
- Admin and storefront wording is now fully translatable (translations for 15 locales).
Fixed
- Fixed the checkout fatal error (PHP 8.1+) when an empty/null response body passed through the output pipeline — every step now guards its input. Completes the fix started in 2.1.26.
- Fixed YouTube previews losing their title, and a class-less lazy-loaded
iframerendering with broken markup. - Image optimization no longer re-checks for the WebP/optimization tools on every image (this spawned surplus processes during the cron).
- Restored the admin warning about a Weltpixel slider-lazyload conflict — a typo had stopped it from ever appearing.
2.1.26 (2026-05-26)
Fixed
- Fixed a fatal error on the checkout page caused by a null page content reaching the output processor pipeline (PHP 8.1+ deprecation in strpos/preg_match escalated to fatal in developer mode)
2.1.25 (2026-04-22)
Improvements
- Image preload entries using the
imagepreload::prefix now support amediaattribute, allowing you to preload images only for specific screen sizes (e.g., preload a desktop hero image only on desktop). Format:imagepreload::href|srcset|sizes|media
Fixed
- Fixed fonts not loading on checkout pages when "Defer Google Fonts" is enabled — the feature is now automatically skipped on checkout to avoid conflicts with the page's Content Security Policy
2.1.24 (2026-03-25)
Features
- Added support for
imagepreload::prefix in the Preload recourses configuration field - Added automatic preloading of the main product image on product pages
Improvements
- Compatibility with Magento 2.4.9
Fixed
- Fixed Defer Google Fonts to actually defer the font CSS request instead of only adding display=swap
2.1.23 (2026-02-18)
Improvements
- Changed the resizing algorithm to preserve the quality of the original images during resizing
2.1.22 (2026-02-11)
Fixed
- Fixed responsive images not being applied to product images (when webp conversion is enabled)
2.1.21 (2025-09-29)
Features
- Added "path" argument to the mirasvit:optimize-image:optimize command to allow optimizing a specific image or directory
2.1.20 (2025-09-12)
Improvements
- Added the ability to enable/disable image optimization
2.1.19 (2025-07-14)
Improvements
- Added the ability to set a Google API key for automatic page speed analysis
2.1.18 (2025-06-26)
Fixed
- Fixed the error on product pages (some cases)
2.1.17 (2025-06-02)
Fixed
- Fixed index key length error caused by utf8mb4 encoding
2.1.16 (2025-04-14)
Fixed
- Compatibility with Magento 2.4.8
2.1.15 (2025-03-28)
Improvements
- Preventing script injection when collecting JS resources for bundles
2.1.14 (2025-03-19)
Fixed
- Fixed the issue with image optimization when the filename does not include an extension
2.1.13 (2025-02-17)
Fixed
- Fixed the issue with image optimization when the filename has the wrong extension
2.1.12 (2025-02-14)
Fixed
- Fixed the issue with detecting the correct file extension when the filename has the wrong extension
2.1.11 (2025-01-31)
Fixed
- Fixed the issue with "Move JS to Page Bottom" and long scripts (empty pages)
2.1.10 (2025-01-24)
Fixed
- Fixed the issue with the "Move JavaScript To Page Bottom" processor
2.1.9 (2025-01-16)
Fixed
- Fixed the issue with images in search autocomplete popup (Lazy load, Elasticsearch Ultimate, Hyva)
2.1.8 (2025-01-09)
Fixed
- Fixed the issue with certain images not converting to WebP
2.1.7 (2024-12-23)
Fixed
- Fixed the issue with lazyload breaking image layout when the image tag has alt attribute with > symbol in it
2.1.6 (2024-12-23)
Fixed
- Fixed the issue with module's menu in Mirasvit Menu (ACL)
2.1.5 (2024-11-25)
Improvements
- Image Lazy Loading improved
2.1.4 (2024-11-19)
Improvements
- Built-in exceptions for WebP images removed
2.1.3 (2024-10-29)
Fixed
- Prevent reloading lazyloaded iframes after they scrolled out from the viewport
2.1.2 (2024-10-28)
Fixed
- Fixed the issue with lazyloading iframes (since 2.1.0)
2.1.1 (2024-10-21)
Fixed
- Fixed the issue with error 'Undefined variable' in image optimization cron
2.1.0 (2024-10-21)
Improvements
- Lazyload for background images by CSS classes
- Lazyload for background images added in the page builder
- Browsers' native lazyload
- JavaScript lazyload library removed
- Replace background images with WebP images
2.0.18 (2024-10-11)
Fixed
- Fixed the conflict with lazyload from Rokanthemes_PageBuilder
2.0.17 (2024-10-08)
Improvements
- Ability to set high fetch priority for preloaded images (lazyload feature)
2.0.16 (2024-09-16)
Improvements
- Cleanup generated images after original images were deleted (Product, Category, CMS, Catalog Images cache)
2.0.15 (2024-08-19)
Fixed
- Fixed the issue with image optimization cron and old images
2.0.14 (2024-04-22)
Improvements
- Performance (DB queries) optimized
2.0.13 (2024-03-25)
Fixed
- Fixed the issue with WebP for images with the same path but different file extensions
2.0.12 (2024-02-20)
Improvements
- Reset webp path in the database if webp file was removed from the filesystem
2.0.11 (2024-01-24)
Improvements
- Replace WEBP images in source tags
2.0.10 (2024-01-23)
Fixed
- Fixed the issue with preloading fonts
2.0.9 (2023-12-20)
Improvements
- Improved WebP image compatibility with product galleries and swatches
2.0.8 (2023-12-07)
Improvements
- Improved replacing swatch options images with WEBP
2.0.7 (2023-10-23)
Fixed
- Fixed the issue with generating WEBP images after optimized images have been generated
2.0.6 (2023-10-05)
Fixed
- Fixed the issue with notification messages disappear on frontend after module's ajax call
2.0.5 (2023-09-05)
Fixed
- Fixed the issue with error on configurable product page when the product has many configurable options (WEBP images)
2.0.4 (2023-08-16)
Fixed
- Fixed the issue with review block in Breeze theme caused by WebP feature
2.0.3 (2023-07-28)
Fixed
- Do not scan iopt dir for images to optimize
2.0.2 (2023-07-25)
Fixed
- Fixed the issue with error when generating WebP images for images with file extension in uppercase
2.0.1 (2023-07-24)
Fixed
- Fixed the issue with image optimization cron tasks running simultaneously
- Optimize image with relative urls
2.0.0 (2023-07-14)
Improvements
- Implemented a brand-new approach to image optimization.
Notice
- The extension can optimize images and generate WebP images not only from the pub/media folder but any internal image available in the store (theme, media, static files) when the Webpages image scan strategy is used.
- Significantly reducing resource sizes.
- Since the usage of browsers that do not support WebP images continuously decreasing and their usage is now ~1% worldwide the extension dropped support of such browsers.
- Old commands for image optimization and WebP images are now merged into one command with corresponding options (flags). For more information refer to the user manual of the extension.
- Separate cron tasks for optimizing images and generating WebP images now merged into one cron task.
- Configuration option "Use WebP images on product pages" is removed. Original images will be replaced automatically with WebP images on product pages when the Use WebP images setting is enabled and corresponding WebP images are generated.
- The command bin/magento mirasvit:optimize-image:reset now removes both optimized and WebP images.
1.5.1 (2023-06-06)
Fixed
- Webp images (HYVA)
1.5.0 (2023-04-20)
Improvements
- Migrate to declarative schema
- JS files collecting for JS bundles improved
1.4.0 (2023-03-16)
Fixed
- PHP8.1 compatibility
1.3.23 (2023-03-06)
Fixed
- Fixed the issue with Move JS/CSS features applied to AJAX responses (requests without proper headers)
1.3.22 (2023-03-02)
Improvements
- WebP images support for Swissup Breeze themes' product gallery widget
1.3.21 (2023-01-20)
Fixed
- Fixed the issue with errors during image optimization process (quote in filename)
1.3.20 (2022-11-15)
Fixed
- Fixed the issue with the error 'Undefined index: data-role=swatch-options'
1.3.19 (2022-08-18)
Improvements
- WebP for swatch images in product gallery
Fixed
- Console command return value
1.3.18 (2022-06-09)
Fixed
- Fixed the issue with memory limit error when LazyLoad enabled (since 1.3.17)
1.3.17 (2022-06-08)
Fixed
- Fixed a few issues related to errors detected by validator.w3.org
1.3.16 (2022-05-27)
Fixed
- Fixed the issue with webp images for video preview on product page
- Fixed the issue with frontend page builder
1.3.15 (2022-01-21)
Fixed
- PHP 8.1 compatibility
1.3.14 (2021-12-02)
Improvements
- Ability to disable JavaScript bundling on a page basis
1.3.13 (2021-10-18)
Fixed
- Issue with move JS to bottom and long scripts
1.3.12 (2021-10-13)
Fixed
- Possible gaps in the markup after enabling "Move JS to Page Bottom"
1.3.11 (2021-09-07)
Fixed
- Fixed the issue with webp images on product pages when tags included in fotorama config
Improvements
- Support for notorama product gallery widget
1.3.10 (2021-07-27)
Fixed
- Fixed the issue with "Move JS to Page Bottom" and long scripts (empty pages)
1.3.9 (2021-07-15)
Fixed
- fixed the issue with resized image can be smaller that original image with original image width in responsive images config
1.3.8 (2021-07-06)
Fixed
- Preload only configured CSS exceptions
1.3.7 (2021-06-29)
Improvements
- Proper work of 'Use Webp for Fotorama' feature with cache
1.3.6 (2021-06-22)
Fixed
- Fixed the issue with the error when webp image removed
1.3.5 (2021-06-16)
Improvements
- Support for Catalog media URL format 'Image optimization based on query parameters' (added in Magento 2.4.2)
1.3.4 (2021-06-14) Fixed
- Remove from DB images that removed from the filesystem
- Update image status if webp image removed from the filesystem
1.3.3 (2021-06-11)
Fixed
- Fixed the issue with webp images when picture-source-img construction is present in the layout
- Correct type for preloaded CSS
Improvements
- Additional configs
1.3.2 (2021-05-20)
Fixed
- Fixed possible issue with not using webp images on product pages
1.3.1 (2021-05-13)
Fixed
- Fixed the issue with the error in logs (Undefined index: lighthouseResult)
1.3.0 (2021-05-05)
Fixed
- Fixed the conflict with 3rd-party fotorama-based gallery widgets (Notice: Undefined index: mage/gallery/gallery)
1.2.9 (2021-04-30)
Features
- Preload CSS exceptions
1.2.8 (2021-04-29)
Fixed
- Fixed the issue with product pages not being cached (affects from 1.2.1)
1.2.7 (2021-04-26)
Improvements
- Small improvement of optimizations regarding fonts
1.2.6 (2021-04-21)
Improvements
- Small optimization improvements
1.2.5 (2021-04-08)
Fixed
- Issue with error 'Uncaught Error: Call to a member function getWebpPath() on boolean'
1.2.4 (2021-04-06)
Fixed
- Fixed the issue with changing products color on category pages
1.2.3 (2021-03-19)
Fixed
- CSS move to bottom (prevent move for canonical tags)
- Issue with processing (loading) CSS for inline
- Issue with preload fonts (custom domain for static content)
1.2.2 (2021-03-12)
Fixed
- The error "Notice: Undefined index: HTTP_ACCEPT"
1.2.1 (2021-03-12)
Features
- Ability to use webp images in gallery widget on product pages
Improvements
- Ability to generate/delete resized images from CLI
- Responsive images generation improved
1.2.0 (2021-03-11)
Fixed
- Fixed the issue with images in search autocomplete popup (WYOMIND)
- Fixed the issue with preload fonts
- Fixed the issue with applying optimizations in feeds
- Minor fixes
1.1.9 (2021-02-04)
Improvements
- Score check improved
Fixed
- Fixed the issue with lazyload iframes
- Fixed the issue with inline CSS from resources feature
1.1.6 (2021-01-15)
Fixed
- Fixed the issue with error related to the responsive images functionality
1.1.5 (2021-01-14)
Features
- Responsive Images (a href="https://mirasvit.com/docs/module-optimize/current/configuration/settingsimage-optimization"Check here/a)
Improvements
- Ability to exclude webp image from lazyload by matching class of the original image
- Minify JS exceptions
1.1.4 (2020-12-24)
Improvements
- Webp quality depends on the Image Quality Level config
Fixed
- Fixed the issue with inline styles from sources without protocol
1.1.3 (2020-12-16)
Improvements
- GIF to WEBP conversion
- Ability to add styles from CSS resourses directly to the HTML document
Fixed
- Fixed the issue with empty exceptions for image lazyload
1.1.2 (2020-12-15)
Improvements
- Ability to pre-connect third-party origins
1.1.1 (2020-12-11)
Improvements
- Database performance improved
1.1.0 (2020-12-09)
Fixed
- Fixed issue with errors during webp conversion due to braces in the name of the file
- Fixed the issue with the admin panel not accessible after disabling JS optimizations
1.0.25 (2020-12-07)
Improvements
- Database performance (indexes)
1.0.24 (2020-11-25)
Improvements
- Ability to change some optimization configs in the scope of stores
- Add debug.css only to debug pages
1.0.23 (2020-11-19)
Improvements
- Image optimization strategy for webp conversion
1.0.22 (2020-11-18)
Features
- Lazyload for offscreen iframes
1.0.21 (2020-11-12)
Improvements
- Additional CSS
Fixed
- Fixed the issue with image source in single quotes - webpages strategy
1.0.20 (2020-11-09)
Improvements
- Lazyload
1.0.19 (2020-11-03)
Improvements
- Improved image optimization strategy
- Debug mode for OptimizeImage
1.0.18 (2020-10-19)
Fixed
- Fixed issue with adding preload fonts to ajax response
1.0.17 (2020-10-06)
Improvements
- Minor code changes
1.0.16 (2020-10-01)
Fixed
- Compatibility with PHP 7.4
1.0.14 (2020-09-16)
Fixed
- Fixed error on pages with a few YouTube videos
1.0.13 (2020-09-15)
Improvements
- Validation for the ability to optimize images
1.0.12 (2020-09-10)
Improvement
- Conflicts validation
1.0.11 (2020-09-07)
Fixed
- Fixed issue with warnings during png images compression.
1.0.10 (2020-09-04)
Improvement
- Images compression
1.0.9 (2020-09-01)
Improvements
- Treshold for bundle/track requsts
Fixed
- Fixed issue with not all images displayed in some sliders
1.0.8 (2020-08-27)
Feature
- Lazy load for YouTube videos
Improvements
- Merge JS files option in the configurations of the extension
1.0.7 (2020-07-29)
Improvements
- Support of Magento 2.4
Fixed
- issue with CSS exceptions
1.0.6 (2020-06-17)
Fixed
- Issue with lazy load for images with a path in single quotes
1.0.5 (2020-06-02)
Fixed
- Issue with Magento 2.1.* compatibility
Improvements
- Disabling images conversion to webp when "Use WebP Images" is disabled
1.0.4 (2020-04-23)
Fixed
- Not all images visible with webp and lazyload
- Issue with webp conversion (Unsupported color conversion request)
1.0.3 (2020-03-10)
Improvements
- PageSpeed Optimizer in admin menu
- Move lazy-load exceptions to configuration
1.0.2 (2020-03-05)
Improvements
- Ability to exclude JS files from movement to the bottom of page
- Lazy-load (server transparent image placeholder in the original image size)
- Request validation (post, ajax, checkout etc)
1.0.1 (2020-02-10)
Improvements
- Additional exceptions (configurable in admin) for lazy-load
Fixed
- Issue with css defer
- Small config issues
1.0.0 (2020-02-03)
Improvements
- Additional exceptions for lazy-load
0.0.10 (2020-01-24)
Improvements
- Lazy load for webp images
- Ability to exclude specified URLs from move_js
Fixed
- Possible issues with measure google pagespeed score
0.0.9 (2020-01-02)
Improvements
- WebP images settings
- WebP Picture tag
- Added the command for validate required image optimization software
0.0.8 (2019-12-26)
Improvements
- WebP support
0.0.7 (2019-12-25)
Fixed
- Issue with saving the settings
0.0.6 (2019-12-24)
Improvements
- Lazy Images & Defer google fonts
0.0.5 (2019-12-23)
Fixed
- Replace 1px empty image with transparent
0.0.4 (2019-12-23)
Improvements
- Image optimization
- Add css option to all css files: font-display:swap
- Exception URL list for Move CSS option
- Deffer CSS
0.0.3 (2019-12-18)
Improvements
- Image optimization statistic
- JS minification
- PHPMD
- Debug option for lazy load images
- Optimize images queue
Fixed
- Issue with LazyLoad (Firefox)
0.0.2 (2019-12-16)
Improvements
- Image optimization module
0.0.1 (2019-12-11)
Improvements
- Initial release