How to Speed Up a Joomla Website in 2026
Lighthouse 100 is not a ranking win. This 2026 Joomla speed guide starts with field Core Web Vitals, then cache, PHP, images, and INP.
- Published
- Updated
- Reading time
- 7 min read

On this page 15 sections
- What you will learn
- What “fast” means in 2026
- Step 1: Measure one URL, logged out, on mobile
- Step 2: Put PHP and the host on Joomla 6 footing
- Step 3: Turn on Joomla cache the way the site actually works
- Step 4: Compress on the server, then confirm in Joomla
- Step 5: Fix LCP, which is usually an image
- Step 6: Cut JavaScript until INP recovers
- Step 7: Use a CDN for bytes, not as a substitute for PHP
- Step 8: Clean the CMS so the cache has less to store
- What not to do
- Related guides and services
- Key takeaways
- Frequently asked questions
- Conclusion
To speed up a Joomla website in 2026, fix Time To First Byte and images first, then JavaScript. Google ranks field Core Web Vitals (LCP, INP, CLS), not your one-off Lighthouse screenshot. Joomla 5 and 6 already have cache, Gzip, and the Web Asset Manager. Most slow sites are still on PHP 7, uncompressed images, Progressive cache on a logged-in shop, or five minify plugins fighting each other.
The 2023 version of this URL was a long “10 ways” list. That list still works. The destination changed. FID is gone. INP is the interactivity metric. Cassiopeia and modern templates load almost no jQuery unless an old extension drags it in. If you only enable Conservative Caching and call it done, you will not win a PageSpeed argument.
This is the order we use at Infyways on Joomla 4, 5, and 6 (current 6.1.3 / 5.4.8). For a full optimization project, see Joomla website optimization.
What you will learn
- Why lab scores lie and Search Console field data does not
- Conservative vs Progressive vs System Page Cache, without breaking logins
- What actually moved in Joomla 5 and 6: Web Asset Manager, PHP 8.3, less default JS
- The image and INP work most “speed up Joomla” posts still skip
What “fast” means in 2026
| Metric | What Google wants (good) | Usual Joomla cause when it fails |
|---|---|---|
| LCP | Largest content paints quickly | Hero JPEG, no dimensions, slow TTFB |
| INP | Clicks respond in about 200 ms or less | Heavy JS, jQuery stacks, chat widgets |
| CLS | Layout stays still | Images without width/height, late fonts, ads |
| TTFB | Server answers fast | PHP 7, no cache, distant origin, huge SQL |
Use PageSpeed Insights and Search Console together. The top of PSI is field data when Google has enough traffic. Lighthouse below that is a lab story on a simulated phone. A green lab and a red field report means your real visitors are slower than the test. Trust the field numbers for ranking.
Test tools still worth a pass: PageSpeed Insights, GTmetrix, WebPageTest, and your host’s TTFB. They do not replace Search Console.
Step 1: Measure one URL, logged out, on mobile
Pick the homepage and one heavy inner URL (product, article with modules). Test logged out. Logged-in administrator pages will always look worse. Note LCP element (usually the hero image), unused JavaScript, and TTFB. Do not change ten settings at once. You will not know what helped.
Step 2: Put PHP and the host on Joomla 6 footing
Joomla 6 expects modern PHP (8.3 on the official 5 to 6 path). Shared hosting on PHP 7.4 will lose to a cheap VPS on 8.3 with OPcache. HTTP/2 or HTTP/3, SSD, and a region near your users beat another caching plugin.
If you are still on Joomla 3, speed work is a delay tactic. Upgrade path is in Joomla 3 to Joomla 6.
Step 3: Turn on Joomla cache the way the site actually works
Global Configuration, System tab, Cache Settings:
- Conservative Caching: safe default. Modules can still vary. Use this on shops, membership, and anything with a cart or login.
- Progressive Caching: more aggressive. Fine for a brochure site that is identical for every guest. It will show the wrong module to the wrong user if you sell or personalize.
- Cache Handler: File is fine on small sites. Redis or Memcached if the host actually runs them. Do not pick Redis because a blog said so.
- Cache Time: start around 15 minutes. Raise it if content barely changes.
Separately, the System, Page Cache plugin caches full HTML for guests. That is often the biggest Joomla-native win. Exclude cart, checkout, and account pages. Purge cache after template or extension updates.
Module-level cache helps repeating chrome (menus, footers). Do not cache a module that shows the logged-in name.
Step 4: Compress on the server, then confirm in Joomla
Gzip in Global Configuration, Server tab, still matters if the host is not already sending Brotli or Gzip. Many Nginx stacks already compress. Enabling Gzip twice does nothing useful. Confirm in the response headers (content-encoding: gzip or br). Walk through the admin toggle in test and enable Gzip in Joomla. If the host offers Brotli, prefer it at the server and leave Joomla Gzip off to avoid double work.
Also send long cache-control for /media, /templates, and images. Joomla’s Web Asset Manager appends a version query when assets change, so long browser cache is safe if you actually use WAM. See the Web Asset Manager docs.
Step 5: Fix LCP, which is usually an image
Resize the hero to the largest size you display. Serve WebP or AVIF with a fallback. Set width and height so CLS does not jump. Lazy-load below the fold only. Never lazy-load the LCP image.
A 4000px PNG in a 720px column will beat any cache plugin. If you want that conversion inside Joomla, our JoomlaX WebP/AVIF tools exist for that job. CDN the /images tree after the files are small.
Step 6: Cut JavaScript until INP recovers
Joomla 4+ templates should not ship jQuery for decoration. If the page still loads jQuery, an extension asked for it. Unpublish sliders, live chat, and “add to any” buttons you do not use. One chat widget can wreck INP on mobile.
Do not install three CSS/JS minify extensions. They race, break Web Asset Manager order, and duplicate HTTP requests. Pick one approach: a capable template, or one well-supported optimizer, or Cloudflare’s rocket features, not all three.
Defer non-critical JS. Keep first click handlers light. INP is about the worst interaction on the page, not the first paint only.
Step 7: Use a CDN for bytes, not as a substitute for PHP
Cloudflare, Bunny, or Fastly help static files and TTFB for distant users. Purge after deploys. Page rules that cache HTML for logged-in cookies will leak carts. Cache /media and images aggressively. Be careful with HTML at the edge on Joomla sites that set cookies on first view.
Step 8: Clean the CMS so the cache has less to store
- Uninstall unused extensions. Disabled plugins still load in some stacks. Uninstall.
- Keep Joomla on 6.1.3 or 5.4.8. Old 3.x PHP loops are slow and unsafe.
- Limit modules in the header. Every module is queries and HTML.
- Turn off debug and uncompressed scripts on production.
- Database: delete expired sessions, old banner tracks, and leftover
#__sessionbloat if the host shows huge session tables.
What not to do
| Habit | Result |
|---|---|
| Progressive cache on a shop | Wrong prices or a logged-in module on a guest page |
| Five “speed” plugins | Broken CSS, duplicate jQuery, worse INP |
| Lazy-loading the logo and hero | Worse LCP |
| Chasing 100 on Lighthouse desktop | You ignore mobile field data |
| Gzip plus Brotli plus a minify CDN plus JCH | Unreadable CSS and no way to debug |
Related guides and services
- Joomla caching strategy
- Joomla PHP settings
- Joomla .htaccess for compression and caching headers
- Joomla website speed optimization service – if you want it done for you
Key takeaways
- Speed up Joomla for LCP, INP, and TTFB, not a vanity lab score.
- Conservative cache plus Page Cache for guests beats Progressive cache on personalized sites.
- Images and PHP version usually beat another minify extension.
- Use the Web Asset Manager. Stop injecting raw script tags in the template.
- One optimizer stack. Then re-measure the same URLs.
Frequently asked questions
Conclusion
Speed work on Joomla is a sequence: measure, host, cache, compress, images, JavaScript. Skip the sequence and you get a graveyard of speed extensions. If you want that sequence run as a project, use Joomla website optimization and keep the site patched under support.
Filed under Joomla


