Joomla!® EasySpeedSpeed and Core Web Vitals for every Joomla site
Fast on the very first visit — with nothing to configure and nothing to break.
EasySpeed is a Joomla system plugin that rebuilds every page for speed: a stylesheet holding only the rules that page uses, WebP images in the sizes each screen needs, fonts that never make text jump, and finished pages stored and served at static-file speed. It works with any template and extension, with built-in adaptations for SP Page Builder and Helix Ultimate — and it all runs in PHP on your own server: no external service, no API keys, no Node.js.
Measure → Rebuild → Store → Serve
Built-in page cache · Works on shared hosting · Every optimisation has its own switch · Removes itself cleanly
Measured, not promised
Two real Joomla sites. Same page, with and without EasySpeed.
Google Lighthouse 12, mobile — the same simulated phone and network PageSpeed Insights uses. Median of three runs each, 28 September 2026. “Without” is the same live page with EasySpeed switched off for that request.
joomlamax.com
SP Page Builder + Helix Ultimate, product pages and a blog
| Mobile, lab | Without | With |
|---|---|---|
| Largest Contentful Paint | 7.1 s | 1.9 s |
| First Contentful Paint | 5.4 s | 1.3 s |
| Render-blocking files | 7 | 0 |
| Page weight | 1,116 KiB | 641 KiB |
| Images | 218 KiB | 51 KiB |
Scores of the three runs: 63, 89, 62 without · 99, 99, 99 with.
A magazine home page
SP Page Builder + Helix Ultimate, with ads, analytics and 40+ images
| Mobile, lab | Without | With |
|---|---|---|
| Largest Contentful Paint | 8.4 s | 1.9 s |
| Cumulative Layout Shift | 0.136 | 0.001 |
| Render-blocking files | 7 | 0 |
| Page weight | 4,321 KiB | 1,239 KiB |
| Images | 3,393 KiB | 458 KiB |
Scores of the three runs: 59, 55, 59 without · 72, 98, 98 with.
Scores vary from run to run and site to site. Third-party tags — ads, analytics, chat — cost points no plugin can remove, and EasySpeed never removes them for you.
The problem
Why Joomla sites feel slow — and why generic optimisers struggle
Templates, page builders and extensions each ship the code for everything they could ever show. Every page downloads all of it.
Stylesheets for everything, on every page
A framework template, a page builder and a few extensions quickly add up to hundreds of kilobytes of CSS in separate render-blocking files. On an SP Page Builder Pro 6.9.1 and Helix Ultimate 2.2.10 page we measured about 787 KB — including two copies of Font Awesome. Each page uses a fraction of it.
Classes that only exist after JavaScript runs
Animations, sticky headers, mega menus, carousels and off-canvas menus add their classes at runtime. Strip “unused” CSS blindly and they break; keep all of it and the page stays heavy.
The hero image waits in line
Many templates and page builders — SP Page Builder among them — mark almost every image as lazy, including the large one Google measures as your Largest Contentful Paint. The most important picture on the page is loaded last.
The “delay all JavaScript” trap
Lazy loaders in templates and page builders — Helix Ultimate’s and SP Page Builder’s among them — swap real image sources in with JavaScript. Hold every script back until the first click, and a speed test — which never clicks — sees a page with no images and no layout. So do visitors, until they touch it.
What sets EasySpeed apart
One page. One stylesheet. Only the rules that page uses — found automatically.
EasySpeed reads each page the way your template, modules and extensions actually built it — every header, menu, slider and module — and builds a stylesheet for that page alone.
The hard part of removing unused CSS is not the CSS you can see. It is the classes your scripts add later: the animation that starts on scroll, the header that turns sticky, the mega menu that opens, the carousel that moves. EasySpeed finds those classes itself, in the page’s own markup and scripts, and keeps the rules they need. Animations the page names are kept by name — SP Page Builder’s included.
There is no list of “dynamic selectors” for you to discover and maintain, and nothing to re-check after you edit a page: when the page changes, its stylesheet is rebuilt.
- 14 stylesheet files became 1 on joomlamax.com; render-blocking files went from 7 to 0.
- Font Awesome cut to the icons you use: about 168 KB of icon fonts became about 7 KB on our test sites.
- First-time visitors get the stylesheet inside the page itself, so the first paint waits for nothing.
Other optimisers can remove unused CSS too — but JCH Optimize’s own documentation asks you to identify the classes JavaScript adds and enter them by hand as “CSS Dynamic Selectors”. EasySpeed does that work for you, on every page.
Before: every page loads all of it
- bootstrap.min.css190 KB
- sppagebuilder.css202 KB
- font-awesome (Helix)121 KB
- font-awesome (SPPB)121 KB
- template, presets, custom…+
- animations, addon styles…+
Measured on an SP Page Builder + Helix page: about 787 KB in 8+ render-blocking files
After: this page, and nothing else
- Only the rules this page renders
- Classes its scripts add later, kept
- Its animations, kept
- Icons cut to the ones it shows
- Sent inside the page on a first visit
Render-blocking files: 0
Rebuilt automatically when the page changes
Compatibility
Works on every Joomla site — and goes deeper on SP Page Builder & Helix Ultimate
EasySpeed optimises the finished page Joomla sends, so it does not matter which template, component or module produced it. Where SP Page Builder or Helix Ultimate are in use, extra adaptations switch on by themselves.
Any Joomla 4.4, 5 or 6 site
- Any template: Joomla’s own Cassiopeia, commercial frameworks or your own.
- Any extension: articles, shops, directories, forms, galleries — whatever builds the page.
- Nothing to configure per site: it measures each page and adapts to what it finds.
- Every optimisation has its own switch, for the rare page that needs an exception.
Built-in adaptations for SP Page Builder & Helix Ultimate
- Two copies of Font Awesome — the one Joomla loads for Helix and SP Page Builder’s own — reduced to one, then cut to the icons you use.
- SP Page Builder’s lazy hero image loaded first, so your Largest Contentful Paint is not last in line.
- Sections built twice for desktop and phone: the image each screen actually shows gets the priority.
- SP Page Builder’s time-zone script moved to idle time, off the path to the first paint.
- Helix Ultimate’s select widget dropped on Joomla 6 pages where nothing needs it.
- Animations, sticky headers and mega menus keep the rules they need.
EasySpeed Page Store
A page cache that runs itself — and answers to you
Joomla builds every page from scratch, for every visitor. EasySpeed builds it once, stores the finished page and serves it before Joomla starts working — then keeps every stored page correct on its own. Fast on the first visit, not only on the second.
Measured on a live magazine site in September 2026: seven pages, each requested before and after it was stored.
- 1. Measurewhat the page really uses
- 2. RebuildCSS, images, fonts, scripts
- 3. Storebefore anyone asks
- 4. Serveat static-file speed
01 · Runs itself
The store fills and refreshes itself
- Filled from your sitemap — the one in robots.txt, /sitemap.xml, or any address you give it.
- Carried on visitors’ requests, after their page is sent: no cron job, no crawler service, nobody waits.
- Pages cleared by an edit are rebuilt first, before anything else the store needs.
- Crawler traps avoided: duplicate component addresses and endless filter parameters are never stored.
- After an update, stored pages are rebuilt in the background, most important first — nothing is emptied.
02 · Always up to date
Refreshed exactly where content changed
- Each stored page remembers the articles it showed. Save one in Joomla, and only the pages that displayed it are cleared — the article, its category, the home page that features it.
- Unpublishing or deleting clears the pages that showed it, too.
- Menus, modules, templates, plugins, global configuration or languages changed? Every page is refreshed.
- A lifetime you choose, from 12 hours to a year, as a safety net for pages nobody edits.
- Never a waiting visitor: an expired page is still served at once while it is rebuilt behind the scenes, on FastCGI and LiteSpeed hosting.
03 · Safe for real sites
Built for shops, forms and members
- Only guests get stored pages; logged-in visitors, editors and customers always see the live site.
- Forms keep working: each visitor’s security token is put back into the stored page on its way out.
- Ad and newsletter links land on the fast copy:
utm_*,gclid,fbclid,msclkidand Mailchimp parameters share one stored page. - Every browser gets its copy: WebP pages for browsers that read WebP, plain ones for the rest.
- Exclude anything: a URL, a regular expression or a whole component — checkout, account, search.
04 · In your hands
Full control from the Joomla administrator
- See the store at a glance: pages stored, cleared by an edit, still to store, and disk used.
- Every stored page listed with its state, when it was stored, until when it stays current, and its size — filter and sort as you like.
- Rebuild or remove a single page, or empty the whole store with one confirmed click.
- Decide what matters, and nothing else: how long a page stays current, which sitemap to follow, what never to cache. Grace periods, pacing and shared memory (APCu, where your host offers it) are handled for you.
- Check it yourself: a stored page answers with
x-easyspeed: hit, and?easyspeed=offshows the page without it.
Illustration of the plugin’s Cache tab; the numbers are examples.
Images
Lighter images, made on your own server
EasySpeed turns your JPEG and PNG files into WebP copies in the sizes each screen needs — with PHP’s own image library, on your server. No image API, no monthly quota, no per-image fees.
- The right size for every screen — responsive
srcsetandsizestaken from your real layout. - The Largest Contentful Paint image found per screen width and loaded first; images below the fold wait their turn.
- Width and height added so nothing jumps — without ever stretching a logo your template sizes itself.
- Transparency preserved, and a copy is never offered if it would be heavier than your original.
- Background images in stylesheets converted too.
- “Prepare all images” converts the whole site in one go from the plugin screen.
3,393 KiB → 458 KiB, initial page load
218 KiB → 51 KiB, initial page load
everything runs on your server
Fonts
Text that appears at once — and never jumps
font-display: swap shows text immediately, in a fallback font of a different size. When your web font arrives, every line reflows and the page shifts. EasySpeed fixes the cause.
Size-matched fallback fonts
While your web font loads, the fallback is scaled to its exact metrics, so nothing moves when it swaps in. The metrics ship inside the plugin — no network calls.
Google Fonts from your own domain
Google Fonts are stored on your server and served with your pages. On phones they are applied right after the first paint, so text never waits for a font.
Icon fonts cut to size
Font Awesome is reduced to the icons your pages actually show. On joomlamax.com, fonts went from 437 KiB to 149 KiB.
Our principle
Real speed, not score tricks
EasySpeed defers scripts the safe way: they still run on their own, in order, before the page reports ready. Sliders, forms, menus and analytics work for every visitor and in every speed test. Nothing is postponed until a click, and the page PageSpeed measures is the page your visitors get.
- Safe defer with automatic back-off when an inline script needs a library straight away — jQuery ready handlers keep working.
- Early connections to the servers your page really uses, ranked by when the browser needs them.
- Third-party tags weighed, never removed behind your back — analytics, ads and chat are listed with their cost, and the decision stays yours.
Control
See exactly what changed — inside Joomla
- A before/after report for every page: stylesheet and script requests, parser-blocking scripts, images without dimensions, HTML size.
- Every optimisation has its own switch. Add
?easyspeed=offto any address to compare instantly. - Editors see the live site: apply EasySpeed to guests only while you work.
- A server check for compression, cache headers and CDN set-up.
- Tidy by design: old files are cleaned up automatically, and uninstalling removes every file EasySpeed created.
Comparison
EasySpeed vs JCH Optimize vs JSpeed
All three make Joomla faster. Here is how they differ, from each vendor’s own website, documentation and Joomla Extensions Directory listing, checked on 28 September 2026.
| Feature | EasySpeed | JCH Optimize (Pro) | JSpeed |
|---|---|---|---|
| Price | EUR 49 per year | USD 55 per year; a free edition is also available | EUR 49.99, one year of updates |
| Joomla versions | 4.4, 5 and 6 | 4, 5 and 6 | 3, 4, 5 and 6 |
| Works with any Joomla template | Yes | Yes | Yes |
| Built-in adaptations for SP Page Builder & Helix Ultimate | Yes — switched on automatically where they are used | General-purpose | General-purpose |
| Removing unused CSS | Per page and automatic; classes added by scripts are found in the page itself | “Reduce Unused CSS” — requires “Optimize CSS Delivery”; classes added by JavaScript are entered by hand as “CSS Dynamic Selectors” | “Above-the-Fold CSS” and “Assets Removal” |
| CSS for the first paint | The page’s whole (reduced) stylesheet inside the first response | “Optimize CSS Delivery” (critical CSS) | “Above-the-Fold CSS” |
| Page cache | Built in: filled from your sitemap by itself, refreshed only where content changed, expired pages served while they rebuild, every stored page listed with Rebuild and Remove | Page Cache plugin with a recache crawler; Pro can serve cached pages through .htaccess | Asset caching for return visits |
| Web fonts | Google Fonts on your domain, size-matched fallbacks (no text jump), icon fonts cut to the icons used | display=swap, preload and preconnect for Google Fonts | Not detailed in the feature list |
| Images | WebP made on your server; srcset from your layout; LCP image found per screen width | “Optimize Images” with JCH’s Image API; next-gen formats; properly sized images | WebP and AVIF converted in real time; srcset generation |
| CDN address rewriting | Not needed with proxy CDNs such as Cloudflare; no rewriting | Yes | Yes |
Sources: JCH Optimize subscriptions, Reduce Unused CSS, Page Cache plugin, Optimize Fonts, JSpeed, and the JCH Optimize and JSpeed JED listings. Products change — check each vendor for current details. JCH Optimize and JSpeed are trademarks of their respective owners.
EasySpeed at a glance
- What it is
- A Joomla system plugin that optimises every page for speed and Core Web Vitals
- Works with
- Every Joomla template and extension, with built-in adaptations for SP Page Builder and Helix Ultimate
- Joomla
- 4.4, 5 and 6
- PHP
- 7.4 or later (tested on 7.4 and 8.5)
- Page cache
- Built in: fills itself from your sitemap, refreshes only what changed, full control in Joomla
- Needs
- Nothing extra: no external service, API key, Node.js or CDN
- Price
- EUR 49 per year, including updates and support
- Updates
- One-click, inside Joomla, with your Download ID
- Developer
- JoomlaMax
Frequently asked questions
What Joomla site owners ask before making their site faster.
What is EasySpeed?
EasySpeed is a Joomla 4.4, 5 and 6 system plugin by JoomlaMax that makes any Joomla site load faster on the first visit. It builds a stylesheet for each page with only the rules that page uses, converts images to right-sized WebP on your server, prevents web fonts from making text jump, and stores finished pages so they are served at static-file speed.
Does EasySpeed work with my template and extensions?
Yes. EasySpeed optimises the finished page Joomla sends, so it works with any Joomla 4.4, 5 or 6 template and extension. On sites built with SP Page Builder or Helix Ultimate, extra built-in adaptations switch on automatically.
Will it break my layout, menus or animations?
EasySpeed is built not to. It keeps every CSS rule that classes added by scripts will need, keeps the SP Page Builder animations a page uses, and never delays scripts until a click. Every optimisation has its own switch, you can apply it to guests only while you work, and adding ?easyspeed=off to any address shows the page without it for comparison.
What PageSpeed score will my site get?
It depends on the site. On two live Joomla sites, Lighthouse mobile scores went from 63 to 99 and from 59 to 98. Third-party tags such as ads, analytics and chat cost points that no plugin can remove, and EasySpeed never removes them without your decision.
Do I need a CDN, Node.js, Redis or an external API?
No. EasySpeed runs entirely in PHP on your own server and works on ordinary shared hosting. WebP images are made with PHP’s GD library, which most hosts include.
How is EasySpeed different from JCH Optimize and JSpeed?
EasySpeed removes unused CSS per page without a hand-kept list of dynamic selectors, matches fallback fonts to your web fonts so text never jumps, makes WebP images on your server without an image API, and adds built-in adaptations for SP Page Builder and Helix Ultimate. JCH Optimize has a free edition and CDN rewriting; JSpeed also converts to AVIF.
Can I use EasySpeed together with JCH Optimize or JSpeed?
Use one optimiser at a time. Two plugins rewriting the same stylesheets, scripts and images do the work twice and can conflict. Switch the other one off before you enable EasySpeed.
How does EasySpeed’s page cache work?
EasySpeed stores each finished, optimised page and serves it to guests before Joomla builds anything; on a live site a stored page answered in 0.26 to 0.34 seconds against 2.85 to 3.50 seconds for Joomla to build it. The store fills itself from your sitemap in the background, and each stored page is refreshed when the content it showed changes.
Is the page cache safe for forms, shops and logged-in users?
Yes. Only guests are served stored pages; logged-in users always get the live site. Each visitor’s form security token is put back into the stored page, and any URL, pattern or component — checkout, account, search — can be excluded.
Do I still need Joomla’s System - Page Cache plugin?
No. Use one page cache: switch Joomla’s System - Page Cache plugin off. EasySpeed’s store replaces it, and it knows which pages to refresh when your content changes.
Can I see and control what is cached?
Yes. The Cache tab lists every stored page with its state, when it was stored, until when it stays current and its size. You can rebuild or remove a single page, empty the whole store, choose how long pages stay current and which sitemap to follow, and exclude any address or component.
What happens when I edit content?
When you save an article in Joomla, only the stored pages that showed it are rebuilt. Saving a menu, a module or the template refreshes every page. Any single page can be rebuilt from the Cache tab, and the whole store emptied with one click.
What does EUR 49 per year include?
All EasySpeed features, twelve months of updates and support, and one-click updates inside Joomla with your Download ID. When the year ends, EasySpeed keeps working on your site; renewing brings new updates and support.
What happens if I uninstall EasySpeed?
Everything EasySpeed created is removed: stored pages, image copies, stylesheets and its cache. Your site is left exactly as it was.
Simple Joomla licence
EasySpeed — EUR 49 / year
Everything EasySpeed does, with a year of updates and support.
- All features, no add-ons
- Joomla 4.4, 5 & 6
- One-click updates in Joomla
- 12 months of support
EasySpeed keeps working after the year ends. Renew only for new updates and support.
Give every visitor your fastest page — on the first visit.
Install, switch it on, and watch the report fill in. Nothing to configure, nothing to maintain.
Compatible with Joomla 4.4, Joomla 5 and Joomla 6.
