Magento 2 Speed Optimization & Advanced JS Bundling.


Sales questions or looking to customize this extension? Reach out to us HERE

 Extension included in Extension included in Pearl Theme Magento 2 Extension included in Stack Framework for Magento 2
Home Page. weltpixel

Category Page. weltpixel

Product Page. weltpixel

About the Magento 2 Speed Optimization & Advanced JS Bundling module.

The Magento 2 Speed Optimization extension significantly increases your Google Page Speed score, just by installing and configuring the module. This is achieved by implementing a series of improvements like reducing the number of server requests in an efficient way through the following optimizations:

  • Magento 2 Advanced Bundling implementation
  • Moving JS files to the bottom of the page
  • Preloading CSS files

Magento 2 Advanced Bundling

When using default magento bundling, your site will end up with fewer requests but this process is quite inefficient because it takes all your JS files and bundle the into one big JS file that is loaded on all your pages, leading to increased page size and significantly higher loading time. What you gain by having fewer server requests, you lose by loading unnecessary JS on all your store pages.

Advanced Bundling helps you bundle the JS files in an intelligent way, by creating different types of JS bundles specific to each Magneto page. This way you benefit from the fewer requests while loading only the necessary JS specific for each page type. JS files are bundled in an efficient way, minimizing the page size and providing the speed improvements that your store needs. The Advanced Bundling process is recommended by Magento as a manually applied solution to increase speed, and this module was created to help merchants bypass the high degree of implementation complexity.

Moving JS files to page bottom

By loading your CSS files before your JS files you will be able to show the content of your page faster, and assure optimum surfing experience for the end user. First Paint Score of your page will increase significantly, and the end users will feel that your website is fast and responsive, without endless spinning wheel waiting time while browsing trough your site. Not only will site visitors have a great surfing experience but also search engines will rank your store with a higher speed score, and boost your SEO index.

Preloading CSS files

This feature will also give you an additional speed boost. Stylesheets included in the head section will be downloaded asynchronously, preventing them from blocking the page render and decreasing load times.

Here’s why page speed is a major part of a great user experience - especially for the growing population of mobile users.

  • Reduce Bounce Rate - Increase Conversion Rate!

    The Magento 2 Speed Optimization Extension is designed to make your web store user friendly, delivering faster page load times and increasing customer satisfaction. You’ll see a boost on Google Page Speed Insights which in turn will lead to an increase in your overall conversion rate as customers can easily navigate your site.

  • SEO Optimization for a Mobile First Internet.

    It’s no secret that the world of SEO is constantly changing. Since 2018 there has been a heavy focus placed on the actual user experience of a website - especially for mobile. Google’s mobile first indexing has been the gold standard, and plays a large role in your rankings. While many sites have switched to a mobile first design, your page speed optimization plays an equally important part.

The Magento 2 Speed Optimization Extension prepares your site for Google mobile first indexing and helps get you back on the front page!

Features of the Extension.

  • Increases and optimizes your store's speed. Significantly higher results on Google Page Speed Insights, GT Metrics, Pingdom, Web Page Test.
  • Allows for easy implementation of Magento 2 Advanced Bundling in just a few minutes.
  • Reduces page size to a minimum when using advanced bundled JS files, compared to default magento bundle process.
  • Reduces the number of server requests.
  • Allows for JS files loading at the bottom of the page, for better first paint score.
  • Allows the preloading of CSS files for even more speed.
  • Easy installation and configuration.


  • Step 1:
    Before installing please check the extension compatibility. This extension is currently compatible with the following Magento versions 2.2.X. - 2.3.5. It is recommended to install the extension first on a testing server before you install it on a live (production) server.
  • Step 2:
    Copy the extension files to below paths of your magento 2 instance. If ‘app/code/WeltPixel’ folder is missing, please create it manually:
  • Step 3:
    Copy the installation GUI folder 'weltpixel-extension-installation' in the root of your Magento installation. In some Magento configurations the public root folder may be under 'pub' directory.
  • Step 4:
    In your browser go to www.yourmagentostore.com/weltpixel-extension-installation/ and simply follow the installation steps from the graphical interface, presented in your browser. See the installation video: 1 Minute Module Installation via browser GUI.
  • Step 5:
    Wooohooo! The extension is now installed on your Magento store! Congrats!

  • Troubleshooting

    If you experienced any issues or limitations with this quick GUI installation, see also SSH Installation below. SSH installation does the same thing but you are required to issue the commands step by step via CLI. Some servers may have high security configurations and may limit the functionality of this GUI Installer.

How to Install via SSH.

  • Step 1:
    Before installing the SpeedOptimization extension on a Magento 2 store, please check the extension compatibility. This extension is currently compatible with the following Magento versions: 2.0.X. - 2.3.5. It is recommended to install the extension on a testing server before installing it on a live (production) server.
  • Step 2:
    Copy the extension files to below paths of your magento 2 instance. If ‘app/code/WeltPixel’ folder is missing, please create it manually:
  • Step 3:
    Access the root of your magento 2 project from command line and run the following commands:
    php bin/magento module:enable WeltPixel_Backend --clear-static-content
    php bin/magento module:enable WeltPixel_SpeedOptimization --clear-static-content
    php bin/magento setup:upgrade
  • Step 4:
    Flush any cache that you might still have enabled on your server or in Magento.
  • Step 5:
    Woohoo, the extension is installed!

How to Upgrade the extension.

  • Step 1. Remove extension code under app/code/WeltPixel/SpeedOptimization before adding the new extension files. The extension may be refactored and old unused files may cause random issues so it's best to only keep the latest version of the files.
  • Step 2. Follow normal installation instructions above.

Configure the Speed Optimization extension.

Magento Core Options are included in the module for visibility. Once the store is placed in Production mode, these Magento Core options are hidden, but will always be visible in this section.

  • Go to Admin > WeltPixel > Speed Optimizaton > Speed Optimization Settings
  • Speed Optimization General Settings
    • Enable - [ Yes / No ] Enable / Disable the Speed Optomization module for your store.

JS Optimization

  • Enable Advanced Bundling - [ Yes / No ] Enable / Disable the Advanced JS Bundling functionality. For best performance, it's recommended to complete the Advanced Bundling process. Instructions on how to configure Advanced Bundling can be found in the guide below.
  • Merge JavaScript Files - Magento Core - [ Yes / No ] Enable / Disable the merging of JavaScript files. This is a Magento Core option.
  • Enable JavaScript Bundling - [ Yes / No ] Enable / Disable the bundling of JavaScript files. This is a Magento Core option.
  • Minify JavaScript Files - [ Yes / No ] Enable / Disable the minification of JavaScript files. This is a Magento Core option.
  • Move JavaScript to the bottom of the page - [ Yes / No ] Enable / Disable the moving of JavaScript files to the bottom of the page for faster page load. This functionality is also available in the Magento Core starting with Magento 2.3.2. The Core option is only available in Developer mode and can be found in Admin -> Stores -> Configuration -> Advanced -> Developer -> JavaScript Settngs -> Move JS code to the bottom of the page. Magento versions <= 2.3.1 only benefit from this functionality with the Speed Optimization module. For best performance, it's recommended to set this option to Yes.

CSS Optimization

  • Merge CSS Files - Magento Core - [ Yes / No ] Enable / Disable the merging of CSS files. This is a Magento Core option. For best performance, it's recommended to set this option to Yes.
  • Minify CSS Files - Magento Core - [ Yes / No ] Enable / Disable the minification of CSS files. This is a Magento Core option. For best performance, it's recommended to set this option to Yes.
  • Enable CSS Preload - [ Yes / No ] Enable / Disable the preloading of CSS files. If set to Yes, stylesheets included in the head section will be downloaded asynchronously, preventing them from blocking the page render and decreasing load times. For best performance, it's recommended to set this option to Yes.
  • Preload all CSS Files - [ Yes / No ] Enable / Disable the preloading of all CSS files. If set to Yes, all CSS files will be preloaded, including Media Query CSS files, which are excluded if this option is set to No.

    Note: If enabled, depending on server speed, there may be a flash of unstyled content, until all styles are downloaded and applied.


HTML Optimization

  • Minify HTML - Magento Core - [ Yes / No ] Enable / Disable the minification of HTML. This is a Magento Core option. For best performance, it's recommended to set this option to Yes.

What is Advanced JavaScript Bundling.

Bundling JavaScript modules for better performance is about reducing two things:

  1. The number of server requests.
  2. The size of those server requests.

In a modular application, the number of server requests can reach into the hundreds. The goal of JavaScript bundling is to reduce the number and size of requested assets for each page loaded in the browser. To do that, we want to build our bundles so that each page in our store will only need to download a common bundle and a page-specific bundle for each page accessed.

Configuring Advanced Bundling.

Prerequisite Tools

These tools need to be installed on your server in order for this process to work. In case you don't know if they're installed, or you're having trouble installing them, get in touch with your hosting partner. Without these tools, while you won't be able to implement the Advanced Bundling process, you can still benefit from the other optimization settings available with the module.


Note: This applies to Debian and Ubuntu based distributions. If you need to install nodejs on other distributions, check the nodejs Package Manager installation page, or with your hosting partner.

If you have a user with sudo access, you can install nodejs using the following command:

sudo apt-get install -y nodejs

You can then check to make sure node.js is installed with the following command:

npm --v


If you already have nodejs installed on the server, you can install require.js using the following command, issued from the root of your Magento installation:

npm install requirejs

You can confirm require.js is installed by running:


If the response is as follows, require.js is installed:

See https://github.com/requirejs/r.js for usage.

If you're unable to install via this method, check the official require.js page and verify with your hosting partner.


Step 1.

Generating your Custom JS Bundling file.

  • Enable the Collect JS in Frontend option, found in the Requirejs Bundle Generation section by setting it to Yes and Saving the configuration.
  • Flush all your available Magento Caches.
  • Go to the frontend and click on the Start button. Then you can start browsing your store. Make sure you navigate to all main pages that you want to have optimized (homepage, category page, product page, and even the cart and checkout pages).
  • Once you've completed browsing the store, click on the Stop button.
  • Click on Download button to receive the custom JS file generated for your store.
  • Go to the Magento Admin and set the Collect JS in Frontend option to No, and flush the Magento caches.
  • Rename the downloaded file to advancedbundling_build.js.
  • Upload your custom bundling file to your theme in the app/design folder on the server, in the following path: app/design/frontend/vendor/theme_name/

Step 2.

  • Head into Admin > WeltPixel > Speed Optimizaton > Speed Optimization Settings > JS Optimization
  • Set the Enable Advanced Bundling option to Yes. This will automatically disable default magento Merge, Bundling and Minify of the JS files as a different optimization process will be used after switching to production mode.
  • Once Advanced Bundling is set to Yes, a box containing a series of instructions will be displayed.

    • Enable Production Mode - You can do this via the command below:
    • bin/magento deploy:mode:set production
    • Deploy Static Content for all Locales - It's crucial for the Static Content to be deployed before running the Advanced Bundling process. You can use the command below:
    • bin/magento setup:static-content:deploy [your_locale]
    • Avoid accessing the frontend before completion -In case you are using CDN or external cache solution, it's recommended to avoid accessing the frontend before this process is complete, to avoid caching an incomplete version of the files.

    Step 3.

    • Select Locale - All available Locales come pre-selected, however, you can choose to apply the Advanced Bundling for any number of Locales.

    Step 4.

    • Prepared Content - This step of the Advanced Bundling process lets you know that the Static Content for the selected locales has been prepared, and you're ready to move to the next step.

    Step 5.

    • SSH Commands - This step generates the necessary SSH commands that need to be run in order for the process to be completed. The commands are numbered, depending on the number of Locales that you've selected back in Step 2. The commands will need to be run in order, and you'll have to wait for each command to finish before running the next one. Once all the listed commands have been run, flush the Magento Cache from the Cache Management section. Afterwards, reload the frontend, and the Advanced Bundling should be complete!
    • Note!: If your r.js file is installed in a different location to the one in the generated command, make sure you edit the generated command to contain the full path to r.js on the server. An example would be /chroot/home/a84jfps/node_modules/requirejs/bin/r.js -o pub/static/advancedbundling_build_Pearl_weltpixel_custom.js baseUrl=pub/static/frontend/Pearl/weltpixel_custom/en_US_tmp dir=pub/static/frontend/Pearl/weltpixel_custom/en_US

    CLI commands for deployment scripts.

    If you're using deployment scripts on your Magento Instance, you can include the following command in your script, to eliminate the need of preparing the static content for the Advanced Bundling process via the Admin Section. Note: Make sure the Enable Advanced Bundling setting in Admin -> WeltPixel -> Speed Optimization Settings -> JS Optimization is set to Yes. and the config is saved.

    php bin/magento weltpixel:requirejs:generate

    Using a Custom JS Bundling file.

    If you need to use a custom bundling file, simply create a new file called 'advancedbundling_build.js' and save it in the following path: app/design/frontend/vendor/theme_name/WeltPixel_SpeedOptimization/lib/advancedbundling_build.js. In the file, you can add your own JS which will be bundled, or remove existing JS if, for any reason, it cannot be bundled or it is not available on your Magento environment. This way, when the JS bundling is done, your file will be used instead of the one generated by the Speed Optimization module. Once you've done this, a command will be generated in the Magento Admin (or via the CLI) which you will need to run in order to successfully complete the Advanced JS Bundling process.

    Further Optimization for Apache Servers.

    There are some additional steps that you can take in order to squeeze even more speed out of your Magento 2 store. On Apache Servers, you can edit the .htaccess file found in the root of your project by adding the following for an even greater speed boost, courtesy of the Nexcess Docs.

    This section discusses how to compress both static content such as text, CSS, JavaScript, and individual HTML files, and dynamic content such as content generated by CMSs like Magento, WordPress, and ExpressionEngine, among others.

    Static content: This will activate the Apache mod_deflate module and compress static resources into smaller files before transfer to the browser. To enable, uncomment the appropriate lines as shown below:

            ## enable apache served files compression
            ## http://developer.yahoo.com/performance/rules.html#gzip
                # Insert filter on all content
                SetOutputFilter DEFLATE
                # Insert filter on selected content types only
                AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript 
                # Netscape 4.x has some problems...
                BrowserMatch ^Mozilla/4 gzip-only-text/html
                # Netscape 4.06-4.08 have some more problems
                BrowserMatch ^Mozilla/4\.0[678] no-gzip
                # MSIE masquerades as Netscape, but it is fine
                BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
                # Don't compress images
                SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
                # Make sure proxies don't deliver the wrong content
                Header append Vary User-Agent env=!dont-vary

    Attention: The following will not function on LiteSpeed servers. Browsers use Expires headers to define the lifespan of cached page components. While all page components should include Expires headers, static components and images should use far-future Expires headers. To activate this feature, uncomment the appropriate line and, directly above it, add ExpiresActive On. For example:

            ## Add default Expires header
            ## http://developer.yahoo.com/performance/rules.html#expires
                ExpiresActive On
                ExpiresDefault "access plus 1 year"

    ETags allow browsers to validate cached page components from visit to visit. While useful, they can hamper websites hosted on server clusters in some cases. Disabling them as follows will often improve performance:

            ## If running in cluster environment, uncomment this
            ## http://developer.yahoo.com/performance/rules.html#etags
                FileETag none

    Tech Specifications
    CompatibilityMagento Open Source, Magento Commerce, Magento Commerce Cloud B2B
    Magento version2.2, 2.3.0, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5
    Updates costFree lifetime updates
    Update frequencyMonthly or each time a new Magento version is released
    Support period1 Month Free Support, with options to extend
    Refund period30 days, for any reason
    UpdatedMay 07, 2020
    Code100% Open Source Code
    Bundle optionsFor best value buy it as part of the Pearl Theme or Stack Framework
    Write Your Own Review
    You're reviewing:Magento 2 Speed Optimization & Advanced JS Bundling.
    Your Rating

    Change Log.

    What’s new in v.1.9.8 - July 6, 2020

    • New Feature: Implemented a highly optimized version of the Advanced JS Bundling Process. The module can now gather all custom JS files from specific pages and allow for up to 45% faster page load compared to previous versions due to only loading specific js files / page type. The number of JS requests is also drastically reduced.
    • New Feature: Added the possibility of excluding individual JS scripts from being moved to the bottom of the page via the extenion's option.
    • Fixed a bug which prevented the Translate Inline functionality from working properly when the module was enabled.
    • Added translations.
    • Code cleanup.
    • Whitelisted domain for Content Security Policies introduced in Magento 2.3.5.

    What’s new in v.1.9.7 - May 7, 2020

    • Fixed a niche bug that caused the mobile menu to kick in on desktop when dragging and dropping an element from the menu, when the Speed Optimization module was enabled.
    • Confirmed compatibility with Magento 2.3.5.
    • Implemented small Backend performance optimizations.
    • Added nxcli.net (Nexcess temporary URL) as a valid domain in the licensing process.
    • Added an option in the Developer section to allow for switching Magento's CSP between "report-only" and "restrict".

    What’s new in v.1.9.6 - April 9, 2020

    • Fixed a Backend issue on Magento Commerce whereby the Category Schedule functionality was not working properly.

    What’s new in v.1.9.5 - March 10, 2020

    • Fixed an error that occurred on Magento Enterprise when Critical CSS and the Speed Optimization module were enabled.
    • Added backend Google reCaptcha compatibility for Magento 2.3.x

    What’s new in v.1.9.4 - February 5, 2020

    • Fixed an issue which caused the Mega Menu to load vertically on Mozilla Firefox and Internet Explorer - this fix bypasses the Preload CSS admin setting for these browsers.
    • Fixed a compatibility issue related to JS Bundling on Magento 2.3.4.
    • Code enhancements for increased security. Changed User Group info collection method.
    • Confirmed compatibility for Magento 2.3.4.

    What’s new in v.1.9.2 - Novemver 27, 2019

    • Fixed an issue that caused missing transaction data in Google Analytics due to an incompatibility with the Move JS to Bottom of the Page setting within the Speed Optimization module, when the Google Tag Manager extension was configured.
    • Added the possibility of preparing the Advanced Bundling process via SSH command.
    • Added a build.js fallback for custom themes.
    • Added Magento and PHP version in the WeltPixel Developer section.

    What’s new in v.1.9.1 - October 16, 2019

    • Fixed an issue whereby an error was thrown when running the Advanced Bundling while Single Store Mode was enabled.
    • Fixed an error which occurred when running Swagger with the module enabled.
    • Fixed an issue which caused an impossibility to agree to the Terms and Conditions on the Checkoutpage, when enabled via Magento.
    • Added the possibility to exclude blocks from being moved to the bottom of the page via Admin Option.
    • Confirmed compatibility with the latst Magento 2.3.3 version.
    • Included the WeSupply Toolbox integration extension - Proactive Notifications Email & SMS, Returns & RMA, Store Locator, Delivery Date Estimate, Logistics Analytics, NPS & CSAT score. Get Free on-boarding and launch within 24 hours.

    What’s new in v.1.9.0 - July 18, 2019

    • Initial release.

    Recently Viewed
    No recently views items
    Clear All
    Newsletter Fashion Box
    How about a gift?