A website speed is a direct way to get a higher ranking. Customers prefer shopping in a store with fast loading speed. Thus, the reason for all-round use of Magento 2 speed optimization tool is common sense.
If you're not satisfied with the current performance of your website or want to speed it up, we offer to use our Magento 2 speed extension.
The less your visitors wait for the page loading, the faster they start shopping. The primary task of the Page Speed module is to help you to reduce server response time required to load images or HTML document. The extension provides your site with advanced approaches like:
- JavaScript, CSS, HTML minification
- Innovative Js bundling method
- CSS delivery optimization
- Prioritizing visible content
- Catalog images compression
- Automating image optimization via cron jobs
- Lazy loading images technique
- Adding expires headers
- DNS-prefetch
- WebP images support
- Responsive images technique
- HTTP/2 push server preload
You can start testing pagespeed issues in Magento 2 speed up developer mode. Our module also includes the Analyze config to help you test page speed score directly from the backend
Extension Demo
- Extension demo server - demo site
- Google page speed test - test results
- GtMetrix page speed test - test results
Extension approved on Magento Marketplace
- Free installation
- Activate up to 10 times
- All extensions $79
- Approved on Magento Marketplace
Take advantage of Gzip compression

Minify Javascript files to speed up execution time

Minify HTML to reduce download and parse times

Minify CSS to improve your page load performance

Prioritize the critical CSS to render your site fast

Optimize images for page speed

Decrease load times for returning visitors

Speed up web pages by pre-resolving DNS

Provide users with WebP optimized images

Optimize image delivery to different devices

Reduce page rendering time via Server Push
Control font performance with font-display
Page Speed 1.17.0
22th December 2025TrackedDomDocument:: __construct()- fixed double$this->typoPipeline::runOptimizer()- fixed undefined variablesChain::logDebugInfo()- proper debug check- Preserve script tracking in
DeferJswithDocumentFragment - Fix data-mage-init attribute corruption in DOMDocument processing (#85)
- UTF-8 charset handling with meta charset injection
- Losing
<script>tags in DOM operations
- 11x faster: Removed
SignatureOffsetFinder, added profiling - 16x faster:
DeferJs- reverted to native DOM from DocumentFragment - 41x faster:
OffsetBasedStrategy- optimized with fast path and UTF-8 fallback- ASCII detection cache for common cases
mb_*→substr_replacefor ASCII strings- UTF-8 fallback only when needed
- 5.75x faster: Added
FastTagOffsetFinderstrategy - Optimized node indexing with combined XPath queries
- XPath query batching for DOM indexing
- Centralized profiler usage with
ProfilerLoggingTrait
- Unique Markers System:
Model/Patch/UniqueMarkers.php- Temporary
data-pspd-nmarkers for accurate offset tracking - Integrated as highest priority strategy
- Temporary
- XPath query validation with debug-aware logging
- Moved default XPath queries to
Tracker - Robust UTF-8 charset handling and structure restoration
PatchManager: exact regex check for<html>/<head>/<body>, better logging
- Added
UniqueMarkersIntegrationTest - Added
OffsetFinderChainSetuptrait - Comprehensive
DeferJsignore logic tests with execution order validation - Regression test for emoji and special characters (#84)
- Fixed tests for selective XPath indexing
- UTF-8 encoding tests
- All tests passing
- LCP Optimizer: batch node indexing, XPath constants
- PatchManager: better duplicate detection and validation
- Tracker: Added
//styleto default queries DirectMatchStrategy: clean up core fast/UTF-8 replacement logic- Drop global ASCII cache in
OffsetBasedStrategy, use local fragment check - Critical CSS API: improved error messages
- Breeze integration updates
Page Speed 1.16.2
05th December 2025- Updated Breeze integration.
Page Speed 1.11.6
28th May 2025- Prevent parsing non html response (robots.txt)
- Fixed implicitly marking parameter as nullable error in PHP 8.4
- Improve ExtrractHosts(use in preconnect, dns-prefetch)
- Spicify crossorigin attribute for link rel=preconnect
- Improve LCP detecting logic (add easyslide img on homepage)
Page Speed 1.11.1
12th March 2025- Prevent (Bundle\Manager __construct running) advanced js bundling if it disabled
- Fix bad string replacing Magento\Deploy\Service\Bundle
- Improve code readability
Page Speed 1.9.10
12th February 2025- Added LCP optimizer
- Added standalone preload optimizer
- Removed excessive replaces in lazyload
- Avoided marking too many requests with high priority
- Prevented lazyload offset problems
- Removed SERVER PUSH implementation
- Fixed criticalCss search in HTML
- Fixed criticalCss duplication
- Ignored images with class ‘product-image-photo’ in lazyload optimizer
Page Speed 1.9.5
29th November 2024- Fixed possible unprocessed deferred scripts on Safari
- Simplify unpack script
- Add varnish checking in expire optimizer
- Remove adding unnecessary 'defer' and 'async' in defer js optimizer
- Fix ignore by signature logic in deferjs optimizer
- Improve defering logic for minificated js
- Remove dublictes in code
- Fix getStoreIds when website
Page Speed 1.9.3
12th November 2024- Add {pagespeed_asset_url} support to custom preloaded resources (close #70)
- Add ‘Generate critical css for theme(s)’
- Add View/Asset/PlaceholderReplacer
Page Speed 1.8.15
8th October 2024- Add enable/disable html processing config option
- Image also should preloaded
- Add debug mode
- Add options for ‘Enable/Disable Pagespeed per page type’
Page Speed 1.8.11
1st October 2024- Fix greedy behaviour LIBXML_HTML_NOIMPLIED
- Add LIBXML_SCHEMA_CREATE
- Fix double urlencoding
- Fix wrong redirecting
- Add button for generate default critical css
Page Speed 1.8.10
18th September 2024- Fix file.min.js and file.js dublicate loading for ‘_’ and ‘$’ rjs contexts
- Prevent integrity adding (broke js files including) if another files doesn’t have integrity
- Prevent ‘jsbuild’ js error
Page Speed 1.8.7
02th September 2024- Fix csp integrity wit older magento versions
Page Speed 1.8.4
29th August 2024- Move PcreBacktrackLimit patch in standalone class and wrap all optimizers with it
Page Speed 1.8.0
29th July 2024- Fix nonce attribute in defer js (CSP integration)
- Add (move part code to) swissup/module-image-optimizer
Page Speed 1.7.37
4th July 2024- Fix too long sriHashes = script (PREG_BACKTRACK_LIMIT_ERROR)
Page Speed 1.7.32
30th May 2024- Add swissup/module-speculation-rules requirements
- Fix: ‘Uncaught SyntaxError: Function statements require a function name’ in unpack-defer.js
Page Speed 1.7.29
17th May 2024- Prevent broken attributes parsing data-mage-init=’ { }’
Page Speed 1.7.28
27th April 2024- Fixed "Invalid header value" error when image has newlines around src
Page Speed 1.7.27
12th April 2024- Remove useless (old version) of ParamsBuilder
- Fix curl options in custom admin form field(s)
Page Speed 1.7.26
28th March 2024- Magento 2.4.7 compatability update
Page Speed 1.7.25
5th December 2024- Reworked image adapter(s) integration (preference => plugin)
- Fix ‘Deprecated Functionality: Automatic conversion of false to array is deprecated’
- Fix phpstan errors
Page Speed 1.7.21
5th December 2023- Fix: Cannot use object of type Laminas\Http\Headers as array
- Fix phpstan zend warning
- Fix gzip header detection
- Fix HTTP2 detecting (skip default http_ver param)
- Add focusin observer in requirejs-override
- Add init data-mage-init js component(s) in viewport (init menu defore interaction)
Page Speed 1.7.20
28th November 2023- Fix unpack defering with enabled merge js
Page Speed 1.7.18
14th November 2023- Improve ‘interactive’ config description
- Fix checkoutConfig defering error
Page Speed 1.7.14
20th October 2023- Fix phpstan error
- Fix js unpacking for delayed scripts
- Add interactive unpacking mode for delayed scripts
- Add load-all-requirejs-scripts.js (disabled)
Page Speed 1.7.10
20th August 2023- Prevent: PHP8.1 Deprecated function
- Fix phpstan errors
Page Speed 1.7.4
7th April 2023- Decrease laminas/laminas-* composer requirements for old magento versions
- Fix guzzlehttp/psr7 requirements
- Added missing laminas-dom dependency
Page Speed 1.7.0
17th March 2023- PHP 8.2 compatibility
- Resize only important image types
- Add standalone Resizer.php and Scaler.php models
Page Speed 1.6.6
28th January 2023- Prevent: PHP8.1 Deprecated function trim(): Passing null to parameter
- Force to string converting before Minify_HTML
- Don’t minify data-breeze scripts (fix for JSMin: Unterminated RegExp)
Page Speed 1.6.2
30th December 2022- Fix: Notice: Undefined property: ParamsBuilder::magentoMetadata
- Off caching (‘private’) content for logged in customer(s)
Page Speed 1.6.0
23th November 2022- Fix backward compatability with old magento versions (2.4.1)
- Failure image optimising command only if All optimisers Not Executable
- Added image optimization via remote API
- Fix for require([‘vimeo/*’], …) magento/magento2#36435
- Add new composer requirements guzzlehttp/guzzle
- Improve CheckImageOptimizerExisting
Page Speed 1.5.14
22th September 2022- Update composer requirements
- Fix removing empty
- Remove dublicate messages
Page Speed 1.5.13
30th September 2022- Update advanced js bundling configuration (magento 2.4.5)
Page Speed 1.5.12
20th September 2022- Add pagebuilder integration (data-background-images)
- Remove all occurences of sourceMappingURL and sourceURL when JS files are aggregated
Page Speed 1.5.10
20th August 2022- Prevent Deprecated Functionality: strpos() in php 8.1
- Fix wrong user agent detection
- Removed jquery.cookie from deps (fixed Magento 2.4.5 broken add to cart)
- Do not add requireJs lazy loading script if module is disabled
- Fix phpstan errors
- Fix MEQP warnings
- Prevent not isset notices
Page Speed 1.5.7
31th May 2022- Fix: Don’t add negative sizes
- Fix: Implicit incompatible float to int conversion is deprecated, float array keys
Page Speed 1.5.5
10th April 2022- Fix: Don’t add negative sizes
- Fix: Implicit incompatible float to int conversion is deprecated, float array keys
Page Speed 1.5.4
10th April 2022- Fix: CSS improver break svg icons xmlns inside critical css
Page Speed 1.5.2
29th January 2022- Fix: TypeError: strlen() expects parameter 1 to be string, null given
- Replace \Zend\Dom => \Laminas\Dom
- Fix: Avoid using self-closing tag with non-void html element
- Don’t defer css loader script (fix pagespeedCss is not defined)
- Improve image service generators
- Improve option(s) logic in swissup:pagespeed:images:resize command
- Supress symfony process runtime exception (in image optimize)
Page Speed 1.4.26
18th August 2021- Fix class Optimizers\Cwebp not found
- Add optimization for View\Result\Layout cabbfb
- Fix 'isset() will return false' part
- Fix lose 'quality' param
- Fix logic 'isset() will return false when checking a variable that has been assigned to null
Page Speed 1.4.25
28th July 2021- Add our custom OptimizerChainFactory(without svgo)
- Rename our cwebp optimizer to ConvertToWebp
- Add CheckImageOptimizerExisting getMessages
- Remove dublicate checking cwebp
Page Speed 1.4.17
17th May 2021- Fixed incorrect image/picture tag markup when responsive images is used, but the images itself are not ready to use (not found).
Page Speed 1.4.17
27th April 2021- Breeze integration added.
- Fixed broken html when using critical css feature.
Page Speed 1.4.16
27th April 2021- Enable defer/critical css only on cms,catalog pages
- Disable build-in magento asyncCss on not allowed pages
- Added checking is image optimization was already enabled before CLI command run
Page Speed 1.4.16
7th April 2021- Fixed invalid font url when deploying theme from terminal
Page Speed 1.4.14
7th April 2021- Fixed invalid font url when deploying theme from terminal
Page Speed 1.4.14
30th March 2021- Added synax highlighter to the “Advanced bundling” and “Default critical css” config options.
- Decreased layout shifts when using image lazyload feature.
- Fixed now working WebP images when original IMG has only src attribute.
- Added ability to use {{pagespeed_asset_url}} in critical css. This feature allows you to include font or background urls as shown below: src: url('/fonts/opensans/light/opensans-300.woff2') format('woff2');
Page Speed 1.4.12
26th November 2020- Add –with-custom, –with-product options to ImagesResizeCommand.
- Advanced bundling improvement - better file resolving when minify js is enabled.
- Small code improvments.
Page Speed 1.4.11
23th September 2020- Added preloading for custom resources.
Page Speed 1.4.9
25th August 2020- Fixed broken mobile styles when critical css is enabled.
- Fixed js error when require.js loaded from CDN.
Page Speed 1.4.9
6th August 2020Improvements
- Minimize layout shifts with own css loader.
- Don’t push/preload images from
tag. - Fix webp+picture and lazyload data-srcset bug combination.
- Config refactoring.
- Fixed not working url to the CriticalCSS generator service.
Page Speed 1.4.6
17th July 2020Improvments
- Added alternative recommendations
- Added requirejs.nextTick setTimeout => requestIdleCallback
- Added experimental idle forced requirejs loading
- Improved getRjsJsonConfig function
- Added Preloder (http2pusher before)
Fixes
- Do not show filepath as config value if it was mistakenly written to config
- Do not show critical file path when config is not saved and file is not exist
- Fixed removing script(s) with ignoring attributes (ex:data-defer-js-ignore)
Page Speed 1.4.3
17th June 2020- Fixed //pub/static/ in font url
- Fixed in remove empty ‘criticalCss’
- Improved js config options sort order
Page Speed 1.4.1
15th May 2020- Add font http/2 pushing
- Add ignore defer js signatures
Page Speed 1.4.1
30th April 2020- Do not execute image resize task too often
- Magento 2.3.5 CSP compatibility
Page Speed 1.4.0
28th April 2020- Added ANALYZE; google pagespeed integration in config
- Add image optimize cron schedule
- Added filename filter argument to ‘images:resize’ console command
- Added limit filter argument to ‘images:resize’ console command
Fixes
- Fix (remove) empty data-type=”criticalCss”
- Move dublicate code in abstract class (custom config fields)
- Added comments about heavy server load for some features
- Add ‘data-srcset’ attribute to prepare list in WebP optimizer
Page Speed 1.3.17
20th March 2020Fixes
- Fix umlauts in image name bug
- Fix C14N internalization bug
- Fix php DOMDocument utf-8 international string (add prefix \xEF\xBB\xBF)
- Remove code dublicates
Improvments
- Improve bundling r.js config (swissup themes integration)
- Move require js config default value into separate file rjs.json
- Add AbstractImage optimizer
- Image opimizers code was refactored
- Move htt2push to construct di
- Update lazysizes.min.js version to 5.2.0
Page Speed 1.3.15
17th February 2020Features
- Marketplace data added
Page Speed 1.3.13
12th February 2020Features
- Fixed memory problem on some environments
Page Speed 1.3.12
3rd February 2020Features
- Fixed webp.webp.webp naming inside js
- Fixed $ext var notice
Page Speed 1.3.11
27th January 2020Features
- Ignore ‘text/x-magento-template’ in deferJs
- Added custom img attributes for webp optimiser
- Fixed webp naming inside js
Page Speed 1.3.10
21th January 2020Features
- Fix: backward compatability with magento 2.[1-2] was added
- Add bugfix patch for ‘segmentaion fault’ with cacheInterface plugin
Page Speed 1.3.9
15th January 2020Features
- Add integration with option ‘Use CSS critical path’
- Minify block_html before save to cache (#17)
- New naming rule for webp files, name.jpg => name.jpg.webp
Fixes
- Fix possible bug ‘sent too big header’ http/2 over 4k (nginx max)
- Fix advanced js bundlimg with .min.js suffix
Page Speed 1.3.6
25th November 2019Features
- Move fast image initialization to adapter
- Add AbstractCachableOptimiser class
- Add local cache in webp optizator
Fixes
- Fix gzip checking (h2+zend1)
- Fix lazyload image placeholder with srcset+sizes by html spec
Page Speed 1.3.5
1st November 2019Fixes
- Fix: Add root media files to resize images collection
- Fix: for webp images in media root located
- Fix: Warning: implode(): Invalid arguments passed for mage 2.3.0
- Fix: Pesponsive order media matching condition
- Fix: (Safari+webp) Don't change original
url if
tag was add - Fix: Intagrate lazyload and
Page Speed 1.3.4
19th Augsut 2019Features
- Add bundling from minified sources
- Improve image resize command
- Add bunling option docs link
Fixes
- Fix: background notice in magento 2.2
- Fix: logic to add
tag
Page Speed 1.3.2
26th July 2019Features
- Add advanced js bundling
- Add lazyload custom config options
- Dublicate move_inline_to_bottom config option
Fixes
- Remove native curl function calls; Improve HTTP/2 checking
- Remove get_headers() from gzip checking
- Fix http/2 push for remote links
- Fix: apache_get_modules() function does not exist in php-fpm
- Fix: escaped tag(s) in text/x-custom-template
- Fix: bug remove comments in x-custom-template(s) if start with comment ‘)
Page Speed 1.2.5
27th June 2019Fixes
- Fix srcset logic in responsive optimiser
- Improve dimensions checking at image resize command
Page Speed 1.2.4
8th June 2019Features
- Add webp logic for images inside x-magento-init (fotorama at product page)
- Move js polyfills initialization to requirejs-config
- Upgrade lazysizes to 5.1.0 version
- Upgarde loadCss js library code
Fixes
- Fix empty html warning in dnsprefetch
- Fix ‘Warning: strpos(): Empty needle’
Page Speed 1.2.3
21st May 2019Fixes
- Compatibility with Swissup_ProLabels module. Previously there was an issue when HTML minification enabled - some labels do not render.
Page Speed 1.2.2
15th May 2019Features
- Remove using php DomDocumenr save HTML
Fixes
- Added
tag patch at webm optimizer for safari compatibility - Fixed paypal x-magento-template’s bug
- Fixed :Uncaught Error Class ‘Swissup/../Gallery’ not found
Page Speed 1.2.1
18th March 2019Fixes
- Added translates
- Fixed GZIP test url in config
- Small code improvment
- Fixed magento 2.2.5 integration
Page Speed 1.2.0
26th February 2019Features
- Add Responsive Images feature
- Add HTTP/2 support
- Add webp image support
- Add console command swissup:pagespeed:images:resize
- Add font-display:swap by default for @font-face in merged css
- Add profiling
Fixes
- Fix ignore lazyload bug
- Fix Zend_Dom_Query class not exist
- Fix </script> inside scrip
- Fix undefined CURL_HTTP_VERSION_2_0
- Fix gzip checking
- Improve deferjs optimizer
- Add AMP checking ?amp=1
Page Speed 1.1.0
23th October 2018- Fixed set expires for all page
- Added debugging traps
Page Speed 1.0.1
12th September 2018- Improved defer css. add onerror
- Fixed null response
- Override _removeScriptCB (add exceptions for application/ld+json, etc.)
- Added critical CSS
- Fixed: View and view dir after unzip
Page Speed 1.0.0
21th August 2018- Minify HTML content
- Optimise catalog images (optimisation tools)
- Optimise css delivery (loadCss)
- Add critical CSS
- Add image lazy loading
- defer js (Remove render-blocking JavaScript)
- Add dns-prefetch
- Add Expire header
- Auto add specify image dimension
- Add developer mode compatibility
- Test GZIP compression