Introduction

Site Performance, Scripts Optimization, Core Enhancements, SEO & Metadata, Site speed

EasySpeed is a Joomla system plugin that makes your pages load faster and improves their Core Web Vitals, without changing how your site looks. It works on the finished page Joomla builds. It keeps only the CSS your pages use and defers render-blocking scripts safely. It serves WebP or AVIF images at the size each screen needs, stops web fonts from shifting text, and answers guests from a built-in page cache.


EasySpeed: speed and Core Web Vitals for every Joomla site

It runs in plain PHP on your own hosting: no external optimisation service, no API key, no Node.js and no CDN required. It works with any template and extension, with built-in adaptations for SP Page Builder, Helix Ultimate and YOOtheme Pro. Every optimisation has its own switch. A new installation starts in Diagnostics mode, which only measures, so you can read its report on your pages before it changes anything.

Version 1.1.1, updated 13 October 2026. For Joomla 4.4, Joomla 5 and Joomla 6.

Measured on our own site, joomlamax.com, on 28 September 2026 (Lighthouse 12, mobile, median of three runs, with EasySpeed switched off and on for the same page):
- Performance score 63 → 99
- Largest Contentful Paint 7.1 s → 1.9 s
- Render-blocking files 7 → 0

Results depend on your template, extensions, hosting, images and third-party scripts.


What EasySpeed does

  • Only the CSS your pages use: stylesheets merged and cut down, with classes added later by JavaScript found automatically.
  • First visits that appear sooner: the stylesheet is written into the page. For a very large stylesheet, the first screen's rules come first and the rest follows after the first picture.
  • Scripts deferred safely: the page appears first, and deferred scripts still run by themselves, in their original order.
  • Statistics tags and ads that can wait for the visitor (optional): analytics, Google Tag Manager and Google AdSense can start on the visitor's first touch or when an ad comes near the screen.
  • Lighter images: WebP copies, optional AVIF, responsive srcset and sizes, and the main image loaded first.
  • Background videos with a poster: the page paints before the video arrives.
  • Fonts that keep text still: size-matched fallback fonts, and icon fonts cut to the icons you use.
  • A built-in page cache: finished pages served to guests before Joomla builds them again. An article, banner or category edit refreshes only the pages that show it.
  • Clear reports inside Joomla: what changed on the latest page, what still slows it down, and whether your server and CDN are set up well. EasySpeed also checks that your server still sends EasySpeed's own files.

Stylesheets: only the CSS each page uses

Templates, page builders and extensions load styles for every feature they offer, while a page uses a fraction of them. EasySpeed reads the finished page, merges its stylesheets and keeps the rules your pages use.

Scripts often add classes later, for menus, sticky headers, sliders and animations. EasySpeed reads those classes from the scripts on your site, so you rarely need to list any by hand. When a page or one of its stylesheets changes, the stylesheet is rebuilt.

  • Shared between pages of the same kind, so a visitor's browser reuses one file from page to page.
  • First visits need no other file to appear: for a new visitor, the stylesheet and the head's blocking scripts are written into the page itself.
  • Critical CSS for large stylesheets: when a stylesheet is over 400 KB, a first visit gets the rules its first screen draws with inside the page. The rest of the stylesheet comes at the end of the page and is fetched once the first picture has been drawn, so it no longer competes with that picture.
  • No animation storm: CSS transitions are held while the rest of the stylesheet is applied, then released.
  • Nothing the page needs is lost:
    • Stylesheets that @import files from your own site get those files written in their place.
    • Animations that only a script names are kept, such as the fade that closes Joomla's message box.
  • No duplicates:
    • A stylesheet linked twice is bundled once, and repeated style blocks are removed.
    • When a page builder or template already loads a full copy of Font Awesome, Joomla's own copy is dropped if the page uses none of its icon- classes.

Scripts: deferred safely, in their original order

EasySpeed defers render-blocking JavaScript while keeping its execution order. It reads each script file on your site to learn what it provides. Files that an inline script needs straight away (jQuery, React and others) stay where they are. Menus, sliders, forms and analytics run as before, without waiting for a visitor to move the mouse.

  • Advertising tags that write into the page (document.write) are never deferred when they are files on your site or tags of known ad servers, so adverts are not left empty.
  • Google reCAPTCHA on demand: the checkbox captcha loads when a visitor reaches its form, not on every page view. (Only for Joomla's reCAPTCHA captcha plugin.)
  • Module scripts at low priority: they no longer compete with your stylesheet and main image, and still run at the same moment. The files Bootstrap's components import (dom.min.js, popper.min.js) are fetched at low priority too.
  • Early connections to the other servers a page needs.
  • Optional, off by default:

    • Start statistics tags later, including Google Tag Manager's own snippet. Choose "on the first touch or after a few seconds", or "only on the first touch".
    • Load Google AdSense when an ad comes near the screen. Only for Google AdSense.
    • Run a page's start-up code in small pieces for faster taps on phones.

    The settings explain each trade-off. For example, a visitor who never touches the page is not counted, and fewer ad impressions can mean less income.

Statistics and advertising tags are listed with their cost on the Diagnostics tab. Third-party tags such as ads, analytics and chat are never removed for you: that decision stays yours.


Images and background videos

  • WebP copies made on your own server with PHP, in several widths. No external image API and no per-image fees. Your original files are never changed.
  • AVIF (optional): where your server supports it, each width is served as whichever is lighter, AVIF or WebP.
    • EasySpeed tests your server first.
    • It then keeps checking in the background that the web server still sends AVIF files. If a security extension or the host starts refusing them, AVIF pauses itself and visitors get WebP until it is fixed. The settings show the reason, and your choice is kept.
  • Responsive srcset and sizes. sizes is narrowed wherever your stylesheet gives an image a fixed pixel width, and transparency is preserved in every copy.
  • The main image first: the important above-the-fold image gets priority and a preload, even when a template or page builder marks it lazy. It can be a different image on phones and desktops. Other images load lazily.
  • Less layout shift: missing width and height are added to images on your site. SP Page Builder, Swiper and Owl Carousel sliders get their space before their script runs.
  • Background images in stylesheets are converted too.
  • Prepare all images: make every copy in one go from the plugin's settings. Stored pages then refresh in the background, and visitors get the earlier copy in the meantime.
  • Background video posters: press Make posters once to make a still picture, in your browser, for each autoplaying background video on your own site. The page paints first, and the video starts after its poster, once the page has loaded.

Fonts that keep text still

  • Size-matched fallback fonts stop text from jumping when web fonts arrive, a common cause of Cumulative Layout Shift.
  • Text appears before fonts arrive, laid out at the fonts' true widths.
  • Icon fonts cut to the icons your pages use, such as Font Awesome.
  • On phones, for a visitor who has just arrived, text fonts and icon fonts that cannot be cut down are applied after the first paint.
  • Stylesheets from other domains, such as a Google Fonts stylesheet, can be copied to your server and bundled with the rest (off by default). The font files themselves still load from where they are.

A built-in page cache that refreshes itself

EasySpeed stores the finished, optimised page and serves it to guests before Joomla builds the page again, so your server answers in a fraction of the time.

  • Fills itself from your sitemap or by following your site's own links. This happens during normal traffic on servers that allow work after the response (PHP-FPM/FastCGI or LiteSpeed): no crawler service and no cron job. Elsewhere, each page is stored the first time a guest opens it.
  • Refreshes precisely: stored pages remember the articles and modules they show.
    • Saving or deleting an article clears only the pages that show it.
    • Changing a banner, a tag or a category refreshes the pages that show it.
    • Publishing or unpublishing also clears the pages that list that kind of item.
    • Changes to menus, modules, templates, plugins or languages clear the whole store.
  • Cleared with Joomla's cache if you like: System > Clear Cache > Delete All also empties the stored pages. This has its own switch, on by default. A Joomla update never clears the store.
  • Edited pages rebuilt at once after a save, including saves in SP Page Builder's editor, where your server allows background work.
  • Updates without an empty cache: after a plugin update or most settings changes, stored pages are rebuilt in the background while visitors keep getting the earlier copy. This needs PHP-FPM/FastCGI or LiteSpeed. Changing Mode, Apply to or Excluded components still empties the store.
  • Safe for forms and logins: logged-in visitors always get the live page, and each guest gets their own form security token.
  • Never store these addresses: keep pages such as search results, a basket or a checkout out of the cache. They are still optimised.
  • No extra copies for tracking links: common tracking parameters (the standard utm_ tags, gclid, fbclid and more) share a page's stored copy. Each browser gets the copy made for the image format it supports.
  • Stale-while-rebuilding: on PHP-FPM/FastCGI and LiteSpeed, an expired page is served while its replacement is prepared.
  • The Cache tab lists stored pages with status, size and expiry. You can rebuild or remove one page, or empty the store. If a CDN or firewall blocks the server's own requests, the tab says so.

Works on every Joomla site

EasySpeed optimises the page Joomla sends, so it works with any template and extension. On top of that:

  • SP Page Builder: EasySpeed handles its lazy images, background video posters, per-device visibility classes, animations and time-zone script. Saves in its editor clear the stored page and, where your server allows work after the response, rebuild it at once.
  • Helix Ultimate: its drop-down list widget (Chosen) is removed on pages that do not need it, and its typography gets matching fallback fonts.
  • YOOtheme Pro: UIkit's visibility classes are read when choosing the main image. Drop-down menus stay closed and the active menu item is drawn correctly on a first visit. Videos that UIkit plays itself are left to UIkit.
  • Options for one extension or service say so in their description, for example the faster search filter for J-BusinessDirectory or the AdSense option.
  • Multilingual sites, sites in a subfolder, and sites behind Cloudflare or another CDN are supported.

You stay in control

  • Diagnostics mode first: EasySpeed measures and reports before you let it change anything.
  • Status tab: a before-and-after table for the latest page measured, what changed, and findings ranked by impact. The table covers stylesheet and script requests, blocking scripts, images without dimensions and HTML size.
  • Server and Diagnostics tabs:
    • Check compression, browser caching and your CDN, and confirm that your web server still sends EasySpeed's own files.
    • See where a page's build time goes, and weigh your statistics and advertising tags.
  • Guests only by default: editors and administrators always see the page as Joomla builds it.
  • Every page checked before it is sent: if a check fails, the original page goes out and the Status tab says why.
  • An emergency switch on every address: add ?easyspeed=off to compare any page without EasySpeed.
  • Clean uninstall: stored pages, generated stylesheets and image copies are removed.

Requirements

  • Joomla 4.4, 5 or 6
  • PHP 7.4 or newer
  • PHP's GD extension with WebP support, for WebP images
  • For AVIF: PHP 8.1 or newer with AVIF support in GD, and a web server that sends .avif files as image/avif
  • Ordinary shared hosting is enough. Background work needs PHP-FPM/FastCGI or LiteSpeed: filling the cache, rebuilds after edits and the background file check.

Good to know

  • Use one page cache at a time. Switch off Joomla's System - Page Cache or another cache plugin when you turn on EasySpeed's.
  • Third-party scripts keep their cost. Ads, analytics and chat widgets are not removed. Unless you choose to start statistics tags or AdSense later, they still count in speed tests.
  • No score tricks: every visitor and every speed test gets the same page. EasySpeed does not hold every script back until a visitor moves the mouse, and the optional delays for statistics tags and AdSense apply to everyone alike. What PageSpeed Insights measures is the page your visitors get.
  • Security extensions: if a .htaccess maker or firewall limits the file types allowed in the media folder (for example Admin Tools' .htaccess Maker), make sure avif is allowed. EasySpeed tells you on the Server tab if it is not.
  • Results vary with your template, extensions, hosting, images and third-party scripts. Compare any page with ?easyspeed=off to see EasySpeed's effect on your own site.

Documentation: https://joomlamax.com/documents/easyspeed/ explains every setting in plain words and includes a quick start, troubleshooting and the full changelog.


Changelog

1.1.1 (13 October 2026)

New

  • Fetch the rest of the stylesheet after the first picture (Stylesheets, On). On a first visit, the rest of a large stylesheet is fetched once the first picture has been drawn, or once the page has been read, so it no longer competes with that picture. It is applied in the same place.
  • Load Google AdSense when an ad comes near the screen (Optimisation, Off). Only for Google AdSense. AdSense's script loads when an ad slot comes within two screens, or on the first scroll, tap or key.
  • Start the statistics tags (Optimisation). Choose "On the first touch or after a few seconds" (the default) or "Only on the first touch".
  • Clear stored pages with Joomla's cache (Cache, On). System > Clear Cache > Delete All also empties the stored pages.
  • Background check of EasySpeed's files. While AVIF is on, EasySpeed checks in the background that the web server still sends its AVIF pictures, stylesheets, fonts and WebP pictures. It checks:

    • once a day;
    • when .htaccess or web.config changes;
    • every hour while something is refused.

    A refused AVIF pauses itself, with WebP meanwhile. Other refusals are shown on the Server tab with the fix.

Faster

  • The files Joomla's Bootstrap components import are fetched at low priority.
  • "Load statistics tags after the page has loaded" now also holds Google Tag Manager's own snippet. A mouse movement counts as the visitor's first touch.

Fixed

  • Banner, tag and category changes now reach the stored pages that show them, including modules served from Joomla's cache. New, published and featured articles reach the latest-articles modules.
  • Publishing or unpublishing on Joomla 5 and 6 no longer empties the whole store.
  • Joomla's message box can be closed again: animations named only by a script are kept.
  • Stylesheets that @import files from your own site keep them.
  • A web server that refuses AVIF no longer locks the AVIF switch. It now shows "Paused" and keeps your choice.
  • The AVIF test, the Server tab and the file check ask the site over HTTP/1.1, as the background page rebuilds always did. On a site behind Cloudflare, the server's own HTTP/2 requests had been answered with a challenge.
  • Statistics tags and AdSense start on the visitor's own scroll only. On sites whose content security policy uses a nonce or requires Trusted Types, they are left to load as written.
  • The package no longer contains a stray text file left from testing.

1.1.0 (1 October 2026)

New (every feature has its own switch)

  • Built-in adaptations for YOOtheme Pro: UIkit drop-down menus and the active menu item, and UIkit videos.
  • Draw a first visit before a large stylesheet arrives and Only the rules the first screen draws with: with a stylesheet over 400 KB, a first visit gets the first screen's rules at once.
  • Background video posters:
    • Give background videos a poster and Start background videos after their poster.
    • Poster only for visitors who ask for less (reduced motion, Data Saver, 2G).
    • Poster only on phones.
  • Load Google reCAPTCHA when a visitor reaches its form.
  • Fetch module scripts at low priority.
  • Share it among pages of the same kind, Bundle a stylesheet linked twice only once, and Hold transitions while the rest of the stylesheet is applied.
  • On phones, show the page before icon fonts that cannot be cut down.
  • Use AVIF where accepted (off by default). The server is tested first.
  • Never store these addresses, Load statistics tags after the page has loaded (off), and Run the page's start-up code in small pieces (off).
  • Faster J-BusinessDirectory search filter (only for J-BusinessDirectory).

Improved

  • Saving settings and "Prepare all images" refresh stored pages in the background instead of emptying the store.
  • Saving Excluded URLs or Never store these addresses removes only the matching pages.
  • After you save an article or an SP Page Builder page, its stored pages are rebuilt within seconds (on PHP-FPM/FastCGI or LiteSpeed).
  • Pages build two to three times faster with identical output.
  • Defer blocking scripts reads each script file, so more files are deferred safely.
  • Disk use is far lower, and background work takes turns.
  • More tracking parameters share a page's stored copy.

Fixed

  • The CSS minifier broke calc() values on every site.
  • document.write ads were left empty.
  • Icons were missing on stylesheets linked by a full address.
  • SP Page Builder saves did not refresh stored pages.
  • Styles for widgets built by scripts could be removed.
  • Pop-ups could be picked as the main image.
  • Full addresses in Excluded URLs never matched.
  • CDN and firewall challenges counted as rebuilt pages; they now count as failures, with the reason shown.

1.0.0 (28 September 2026)

The first public release.

  • Three modes: Off, Diagnostics (measure only) and Optimise, with a Status report for each page.
  • A stylesheet per page, cut down to the rules the page uses, with classes that scripts add read from the scripts. One shared stylesheet for all pages.
  • First visits that need no other file to appear: the stylesheet and the head's scripts written into the page.
  • Fonts without delays or jumps: size-matched fallback fonts, and icon fonts cut to the icons used.
  • Defer blocking scripts safely, with a list of scripts never to defer.
  • Remove redundant assets: repeated style blocks, a second Font Awesome, and Helix Ultimate's unused Chosen widget.
  • Image fixes: missing dimensions, the main image first and the rest lazy, a main image per device, and space for sliders.
  • WebP copies made on your own server, with Prepare all images.
  • Resource hints, Collapse markup whitespace, and a page cache filled from your sitemap.
  • Tools for the owner: Server, Diagnostics and Exclusions tabs, and the ?easyspeed=off emergency switch.
  • Built-in adaptations for SP Page Builder, Helix Ultimate and YOOtheme Pro's UIkit visibility classes.
Functionality
Improved my mobile PageSpeed score from 40 to 92 and my desktop score to 98. Excellent results on my Joomla website! ChatGPT recommended
Ease of use
Installation was straightforward, and without extensive manual optimization. EASY like EasySpeed ;)
Support
I haven't needed to contact support yet, so I can't fairly evaluate the support experience.
Documentation
I haven't used the documentation enough to give a fair assessment yet.
Value for money
For my website, the improvement from 40 to 92 on mobile and 98 on desktop makes EasySpeed well worth the price.
I used this to: Optimizing my Joomla 6 website built with SP Page Builder and Helix Ultimate. I use EasySpeed to improve Google PageSpeed Insights performance on mobile and desktop, optimize page loading, and deliver a faster experience to visitors.
Easy SMTP
Paid download

Easy SMTP

By Joomlamax
Email
EasySMTP makes sure your Joomla site's emails go out, and shows you what happened to every one of them. It sends Joomla's email through the provider you choose, keeps a searchable log of every outgoing message, lets you resend a failed email with one click, tracks opens and clicks, and switches to a backup provider automatically when your main one fails. Registrations, password resets, contact f...
Hikashop Facebook (Meta) Pixel Tracking
Paid download

Hikashop Facebook (Meta) Pixel Tracking

By Joomlamax
HikaShop extensions
Professional Hikashop Meta Pixel & Conversions API (CAPI) integration for accurate, resilient e‑commerce tracking. Overview JoomlaMAX HikaShop MetaPixel seamlessly integrates Facebook’s Meta Pixel and Conversions API with HikaShop on Joomla!. Dual tracking (browser + server) maximizes event capture and strengthens attribution—especially on iOS and ad‑blocked browsers. ✅ Dual tracking...

Joomla! EasySpeed

Version:
1.1.1
Developer:
Joomlamax
Last updated:
Oct 13 2026
1 hour ago
Date added:
Sep 28 2026
License:
GPLv2 or later
Type:
Paid download
Includes:
p
Compatibility:
J4 J5 J6
Download

Uses Joomla! Update System

Score:


Write a review