Implementing and leveraging online businesses can make your consumer base far beyond the existing local audience. Creating an online store used to be a challenge a few years ago, but new and improved eCommerce tools and platforms make this process easier than ever. Are you looking for the easiest way to start your own online business immediately? Every online store needs a content management system (CMS) to simplify the creation and modification of online store content (lists, purchase orders, etc.). Partly due to its free and open source format, Joomla has become one of the most popular CMS options available to all potential online store operators. Many people have questions in mind if Joomla is good for eCommerce. Let me tell you, it is very easy to create a website with Joomla. Even so, beginner eCommerce operators may still need help when using Joomla to build an online store. Therefore, I created this tutorial to teach you how to use Joomla to create an eCommerce website. After mastering this e-commerce website tutorial, you will immediately build your own powerful and versatile online store.
Find the best web host
Before choosing a domain name, you need to find the best online hosting service for your website. There are many options in this step, including the hosting provider you choose and the type of service (dedicated, shared, hosted, etc.). In fact, many web hosting providers now offer options to meet the needs of online store operators. These options may be your best choice. Since you intend to use Joomla as a CMS, I strongly recommend that you seek dedicated Joomla hosting. These providers have optimized their user experience to maximize Joomla’s built-in features, allowing you to make the most of online stores.
Choose a domain name
Regarding building an online store, you must start from scratch. This usually means buying a digital “land” on which an online store will be built. To do this, you need to buy a domain name. Your domain name serves as a logo on the front of the online store. In other words, it should be unique and memorable, but it shouldn’t be too complicated.
Download and Install Joomla
Once you have booked the domain name, you can take the next step and download Joomla from the official website. After the download is complete, you will have two options to install Joomla on the website: automatic and manual. Depending on the web hosting provider you choose, you may be able to install Joomla on your new website in one click. In your website console, search for the one-click installation option, and then navigate to the colored Joomla button (if available). However, in most cases, you will need to manually install Joomla on your website. The first step of this process can be done from the main control panel of your website. Create a MySQL database from there. This is where all your website data (including Joomla software) is stored. After completing this step, you can upload Joomla and implement it on your website. To implement Joomla, open a new window and navigate to the URL of your website. This will start the Joomla installation process, and then you can follow the instructions on the screen to successfully complete the installation.
Install Templates and Extensions
There are two free and premium extensions available for Joomla eCommerce website. For Joomla eCommerce website development, the best component to use is Virtuemart which is non-commercial. It’s easy to integrate and user friendly. I also find HikaShop relatively useful for Joomla eCommerce solutions. And it will become an excellent alternative to Virtuemart. The eCommerce extension comes with many features that have minimal restrictions in the free version and wide opportunities in the commercial version. Therefore, in addition to the user experience, I generally like the extension. There are a lots of tutorials available over internet to setup and configure these Joomla eCommerce component. Incase you seek any professional help or Virtuemart Services, you can contact us anytime.
Configuration and Setup of Joomla eCommerce
With the main features and appearance, you can begin to configure the many options that make up a customized online store. These options can run the color gamut in all aspects of your website, including templates, checkouts, SEO, shopping cart, etc. Be prepared to spend some time carefully reading and applying these initial settings. Configuration is not just a step-by-step process. You need to make configuration changes regularly, especially after adding a product list. The best way to check if your changes are working as expected is by testing the site in real time and running it on a separate browser that is not logged in as the site administrator.
Addition of Products
Many people are eagerly waiting for this step, and now the product list can finally be released. At this point, you can use Joomla’s built-in functions to create and manage lists without adding trouble. In this regard, Joomla can intuitively handle a large amount of “behind the scenes” information, including price and availability. In addition to the product list, you can also use this time to enrich your online store. This should include the creation of a homepage and important pages such as “About Me” and “Contact Us”. Each of these additional pages can improve the spirit of your online store and increase the likelihood that visitors will remember your store later.
Summary
Ultimately, Joomla makes building and deploying an eCommerce platform as easy as possible. Joomla eCommerce is simplified from start to finish, from installation to product listing. Joomla e-commerce sites are among the most comprehensive today and are just a few clicks away to take advantage of this versatility in your own business. Now that you have learned how to successfully implement Joomla with this eCommerce website tutorial, you can start taking the first steps towards increasing your online success.
Sometimes you may want to uninstall Joomla from the server for one of the following reasons:
You want to move the Joomla website to another server and you want to use the current host to delete all information related to the website.
There was a problem with your initial installation and you want to redo everything from the beginning.
You just want to get rid of your Joomla website!
Unlike installation, there is no such method to uninstall the Joomla directly from the server. Uninstall of Joomla is done manually. For this, you need to delete all the Joomla files and drop the MySQL database that has been created during installation.
Well, the process is very simple, here is what you can do:
Log in to the FTP of your website and delete all Joomla folders and files.
Make sure you do not delete folders that do not belong to your Joomla website.
If you have installed a lot of extensions and/or a lot of images/files on your website, this process may take a long time.
Go to phpMyAdmin and delete the database containing the data of the Joomla website.
Make sure not to delete shared databases (databases shared by different websites, the only difference is the table prefix). Go to the “Cron Jobs” page (or Cron Manager) in cPanel and delete all cron associated with the Joomla website.
Generally, it takes a lot of time to delete the files through FTP, so its recommended to remove data through host manager (ex: Cpanel, Plesk).
How to uninstall Joomla from cPanel?
If you have installed the Joomla through any of the Joomla website using Softaculous an auto-installer in cPanel, then you can uninstall the Joomla in a single click. Softaculous is a commercial script library that automatically installs commercial and open source web applications onto websites. Most of the hosting provides like Godaddy, Siteground and Hostgator provides cPanel with Softaculous in it.
If you need help uninstalling the Joomla website, or if you think the process is daunting, then we will help you. Please contact us and we will serve you.
Summary
If you are afraid to perform this process, please don’t do it and seek help from a Joomla professional.
Remember, if something goes wrong, it will definitely go wrong! Be careful while you delete the files or folders.
If you are not sure about a file or directory, please do not delete it, and then seek the help of a Joomla professional again.
This process does not delete the email account associated with your Joomla domain.
Gzip compression in Joomla shrinks text responses (especially HTML that PHP builds) before they leave the server, so browsers download less data. On Joomla 4, 5, and 6 you enable Gzip Page Compression under System → Global Configuration → Server. That switch compresses Joomla’s buffered page output when PHP zlib is available. Static CSS and JavaScript files are a separate job for Apache mod_deflate / the Joomla .htaccess gzip section, Nginx, LiteSpeed, or a CDN (often Brotli with Gzip fallback).
Many “5 simple steps” posts turn the Global Configuration toggle on and stop. Then GTmetrix still complains about uncompressed assets, or the site shows ERR_CONTENT_DECODING_FAILED from double compression. This guide covers what the toggle really does, how to test correctly, DIY server rules, Brotli in 2026, and how to undo a bad stack without guessing.
What you will learn
Gzip Page Compression vs server or CDN compression for static files
How to enable and disable the Joomla setting safely
How to test with DevTools and curl (not only a random online badge)
DIY .htaccess / host panel options and the official htaccess.txt gzip block
Why double Gzip breaks pages and how to fix it
Where Brotli fits, and when compression is not the real speed problem
What Joomla Gzip Page Compression actually compresses
Layer
Compresses
Where you enable it
Gzip Page Compression
Buffered HTML (and related PHP output) when zlib works
Global Configuration → Server
Apache / LiteSpeed / Nginx
Often CSS, JS, HTML, JSON, SVG, fonts
Host panel, vhost, or .htaccess
Joomla htaccess.txt gzip section
Prebuilt .css.gz / .js.gz if those files exist
Root .htaccess from current htaccess.txt
CDN (Cloudflare and similar)
Edge compression, often Brotli + Gzip
CDN dashboard
Official help describes the setting as compressing buffered output if supported. Requirements: PHP compiled with zlib, and no second compressor already mangling the same response.
Step 1: Confirm zlib and current headers
System → System Information → PHP Settings. Confirm zlib (or zlib compression support) is available.
Open the live homepage in a private window.
DevTools → Network → select the document request → Headers. Look for Content-Encoding: gzip or br.
Optional curl check from any machine that can reach the site:
Note whether compression is already on before you change anything. Many hosts and CDNs already gzip HTML.
Step 2: Enable Gzip Page Compression in Joomla
System → Global Configuration → Server tab.
Gzip Page Compression: Yes.
Save & Close.
System → Clear Cache.
Retest the document response for Content-Encoding: gzip.
If the site breaks (blank page, encoding error), set the option back to No immediately, clear cache, and jump to the troubleshooting section. Double compression is the usual culprit.
Step 3: Test properly (HTML vs CSS/JS)
What you test
How
Pass looks like
HTML document
DevTools Network → first document, or curl -I with Accept-Encoding
Content-Encoding: gzip or br
A CSS file
Click a .css request in Network
Same header, or CDN br
A JS file
Click a .js request
Same
Online checkers
GTmetrix, KeyCDN HTTP Header Checker, giftofspeed, etc.
Joomla’s toggle can pass HTML while CSS/JS stay uncompressed. That is expected until the server or CDN compresses static files.
Step 4: DIY server compression for static assets
Prefer the host’s “Optimize website” / “Compress content” panel when it exists. On Apache, a minimal deflate block (only if the host does not already compress) looks like:
Do not stack aggressive mod_deflate on top of Joomla Gzip Page Compression if HTML starts failing. Pick one HTML compressor.
Keep a backup of .htaccess before editing.
After Joomla updates, diff your .htaccess against the shipping htaccess.txt. The GZIP & BROTLI section evolved (including E=no-brotli:1 on precompressed assets).
Official notes: The htaccess.txt file. If the site looks strange after enabling that gzip section, the comments in htaccess.txt say your server may already gzip CSS/JS. Comment the block out.
Step 5: Brotli and CDN in 2026
Modern browsers prefer Brotli (Content-Encoding: br) when the edge supports it. Joomla has no “Brotli Page Compression” switch. Enable Brotli on LiteSpeed, Cloudflare, or Nginx with the brotli module, and keep Gzip as fallback for older clients.
If the CDN already compresses, you often leave Joomla Gzip on or off based on whether origin HTML is still uncompressed in a bypass test
Test with a cache-bypassing header or orange-cloud off briefly so you know whether origin or edge is doing the work
Precompressed .js.gz / .css.gz must not be compressed again (the stock htaccess rules set no-gzip / no-brotli for those files)
Step 6: Troubleshoot and disable cleanly
Symptom
Likely cause
Fix
ERR_CONTENT_DECODING_FAILED
Double Gzip / Brotli
Turn Joomla Gzip off, or remove duplicate server rules, clear caches
HTML compressed, CSS/JS not
Only page compression on
Enable server/CDN compression for static types
Nothing compressed
No zlib, proxy stripping encoding, or Accept-Encoding missing in the test
Check PHP info, retest with the curl header above
Works in curl, fails in browser
Extension, SW, or CDN cache serving a bad body
Purge CDN, disable service worker, retest private window
To disable Joomla’s layer only: Global Configuration → Server → Gzip Page Compression → No → Save → Clear Cache. That does not turn off host or CDN compression.
Gzip is not a substitute for a healthy stack
Compression helps text weight. It does not replace image optimisation, a current PHP version, or leaving Joomla 3. If Core Web Vitals stay poor after Gzip and cache, fix the platform. Infyways upgrades start at $149 with a free audit within 12 hours: Joomla Upgrade Services.
What thinner articles leave out
Topic
Typical post
This guide
Scope of the toggle
“Compresses all files”
HTML buffer vs static assets vs CDN
Testing
One online badge
DevTools + curl for HTML and JS/CSS
Double compression
Rarely mentioned
ERR_CONTENT_DECODING_FAILED playbook
htaccess.txt
Random deflate snippet
Official gzip/brotli notes and when to disable
Brotli
Missing or hand-wavy
CDN/server layer, not a Joomla switch
Next bottleneck
Stop at Gzip
Cache and upgrade path
Key takeaways
Turn on Gzip Page Compression for buffered HTML when zlib is present.
Compress CSS/JS at the server or CDN. The Joomla toggle alone is not enough.
Test the document and at least one CSS and one JS request.
Avoid double compression. Decoding errors mean turn a layer off.
Keep .htaccess aligned with current htaccess.txt after upgrades.
Prefer Brotli at the edge when available, with Gzip fallback.
Pair compression with caching. Compression on an uncached PHP hit still costs CPU.
Frequently asked questions
How do I enable Gzip compression in Joomla?
Go to System → Global Configuration → Server, set Gzip Page Compression to Yes, save, and clear cache. Then verify Content-Encoding on the HTML document.
Does Gzip Page Compression compress CSS and JavaScript?
Not reliably. It targets Joomla’s buffered page output. Static files need server, htaccess, or CDN compression.
How do I test Gzip on a Joomla site?
Use DevTools Network headers or curl with Accept-Encoding: gzip and look for Content-Encoding: gzip or br on HTML and assets.
What causes ERR_CONTENT_DECODING_FAILED after enabling Gzip?
Usually two compressors on the same response. Disable Joomla Gzip or the extra server rule, purge caches, and retest.
Should I use Gzip and Brotli together?
Yes at the edge when configured correctly: Brotli for supporting browsers, Gzip as fallback. Do not double-compress the same payload.
Do I need zlib for Joomla Gzip Page Compression?
Yes. Without zlib support in PHP, the Joomla setting cannot compress buffered output.
Is Gzip enough to make Joomla fast?
No. It reduces transfer size for text. You still need caching, modern PHP, lean extensions, and optimised images.
How do I turn Gzip off again?
Set Gzip Page Compression to No, save, clear Joomla cache, and purge CDN cache if you use one.
Where do we start if the site is slow even with Gzip?
Are you an owner of a business that has its own Intranet network? A website of your own where your workers can communicate, learn and get tasks can be very beneficial for your success. So, today we have gathered for you a collection of 20 premium WordPress themes to suit your needs.
Why choose a ready-made template?
The answer is very simple. By getting a pre-designed template, you basically get a website that works pretty much out of the box. These themes boast a wide range of features, which enable you to install and customize them to your liking without ever having to touch a line of code. They are also quite SEO-friendly ensuring that your website gets the visitors it deserves and optimized for performance so that your pages never take too long to load. Getting such a theme is also much faster than creating one from scratch and much cheaper than hiring someone to do it for you! And if you have any questions or need help with your template, you can always ask the support team and get your problems sorted out in the shortest possible time.
What’s WordPress?
All of the themes present in the list below are powered by WordPress, which is one of the most popular content management systems on the market. It is highly flexible, user-friendly, and, most importantly, free to use. Anybody with a computer can download WP and start working with it right away. It is a great CMS to use for your first website because of its combination of simplicity and potential, which is essentially limitless and can be extended even further with thousands of user-created plugins and add-ons.
But enough talk, we all know you came here for the templates and not walls of text. So go ahead, feel free to check out the list of amazing themes we have prepared for you and pick something for yourself!
This is a modern, fresh and clean theme with accents on performance and usability. It’s perfect for improving communication inside of your company, firm or agency and for providing easy, stylish and user-friendly access to corporate data. It also supports awesome dashboards, file sharing, polls, education tools, Booked Appointments and much, much more.
This theme is compatible with WPBakery visual page builder to provide you with awesome customization opportunities that don’t involve any code. It also supports Revolution Slider, Essential Grid, EventON, BuddyPress, Content Timeline, WP Pro Quiz, Responsive Poll and many more amazing plugins. The theme is fully responsive, Retina-ready and optimized for mobile devices.
WotaHub was designed for trendy corporate websites to represent your company in the best way possible. It supports top-rated WP plugins like WPBakery Page Builder, Essential Grid, Revolution Slider, Events Calendar etc. The theme is fully responsive and easily customizable with the user-friendly admin panel and handy page builder.
This is a fully responsive and Retina ready theme with a strong business look that will fit for any market niche. It comes with three homepage layouts, a powerful admin panel, a whole set of shortcodes, a pack of popular plugins and even Parallax animations! It even features one-click demo installation options.
Artrium is a stylish, responsive and easy-to-use template best suited for a contemporary web design studio or creative agency. It is made with Elementor and will let you manage your website’s visual and operational sides within minutes. The theme is optimized to work with such popular plugins as Revolution Slider, Essential Grid, MailChimp for WP, ThemeREX Add-ons and more.
Coworking – Open Office & Creative Space WordPress Theme
Coworking has an intuitive visual interface and informative layout that looks great on any platform since it’s fully responsive and Retina ready. It has everything you need to create a corporate website, including premade amenities blocks along with pricing, an awesome forum, video tour, our team, and products modules, dozens of shortcodes and advanced contact forms. It even comes with full WooCommerce store compatibility.
Consultor was designed as a multipurpose business template, so you can use it to build any corporate website. The theme is supplied with a collection of powerful shortcodes and widgets along with a premium drag & drop page builder for ease and depth of customization. It is SEO friendly and offers Contact Form 7 support, giving your users the ability to sign up.
Revirta is perfect for both small and large-scale businesses and its pure corporate design gives you maximum flexibility. The theme is integrated with the ThemeREX Addos plugin, providing you with 12 new widgets, CV Card functionality, image optimization options and much more. It also supports Visual Composer, Revolution Slider, Booked Appointments, Essential Grid, MailChimp and Contact Form 7.
uReach is a stylish and elegant theme designed for migration bureaus, immigration firms and emigration offices. WPBakery Page Builder, Revolution Slider, Essential Grid along with many other outstanding plugins will help you in creating a respectable online platform for your website. It also comes with full WooCommerce store compatibility, allowing you to use your website as a platform to sell goods.
Woofice is a very powerful and feature-rich multipurpose theme for Intranet sites. It comes with a complete BuddyPress Network, a custom login page, Projects management, Wiki, Chat and messaging, Files Manager, Calendar, Directory Extension, Forum, E-commerce and much more. It is also bundled with 5 premium plugins, saving you a total of $180!
Thrive has been designed as the ultimate foundation for your collaborative online community. It brings together social networking, messaging, forums, events, project and task management, file sharing, e-commerce, and even e-learning. It also offers a private site option with a secure login for your members.
CommunityJunction uses a flexible modular layout and is integrated with a powerful page builder so you have complete freedom in regards to customization. It is highly optimized for performance, ensuring that your workflow won’t be interrupted by slow load times. It is also integrated with bbPress, rtMedia, WooCommerce, WPMU, jQuery Masonry and many more amazing plugins.
This is the ultimate template for an online community. Every single one of its pages and details is polished, the colors are neat-looking, all of its typography is clear and readable and is designed to depict your company in the best possible light. It has been built with a modular design system so you can rearrange design blocks on the front page as you wish.
This is a multipurpose theme fit for any business in any niche. Its 200+ customization options allow you to easily create a good-looking site without ever touching a line of code. It is also integrated with BuddyPress, bbPress, WooCommerce, Paid Membership Pro, Sensei, Event Manager, and many more awesome premium plugins.
OneCommunity comes with 9 different color schemes, 3 blog layouts, full bbPress integration, Visual Composer 5 support, and quick demo content installation. It is packed with $108 worth of premium plugins, a modular layout and all of the BuddyPress features. The theme also features a private messaging system and LearnPress compatibility.
WildCommunity lets you build a social network for your company, school, sports team or niche community. It works with the latest 4.0 version of BuddyPress and is fully integrated with bbPress along with Theme Customization API, Events Manager, rtMedia and others. It also includes over 40 varying inner pages, 4 frontpage designs and a bundle of shortcodes.
Segments is an advanced CRM and project management theme made for WordPress. It is extremely simple to install and then modify with Visual Composer. It is also fully responsive and looks amazing on all screen resolutions.
Details |
Demo
UnitedCommunity – BuddyPress Theme
UnitedCommunity is an awesome theme that combines everything you need to create a website for your community. Its modular layout is highly flexible and is integrated with a page builder so you can customize your pages with no coding skills required. It is compatible with the latest version of BuddyPress, rtMedia, BuddyPress Global Search, Event Manager, WooCommerce, Theme Customization API, Contact Form 7m jQuery Masonry and much more.
With a creative design and a mobile first approach, this is a theme that lets you build a site that stands out from the crowd. It includes Visual Composer, WooCommerce integration, 600+ Google Fonts, Child Theme functionality, unlimited sidebars, and custom post types. It also supports WPML, allowing you to turn your site into a multilingual one in minutes.
This beautiful and clean theme is ideally suitable for coworking spaces, meeting, creative, conference space rental, and other business websites. It’s integrated with the most powerful eCommerce plugin- WooCommerce, allowing you to create an online store on your website. It is also fully responsive and Retina ready, making it look sharp and impressive on all devices.
So, that’s that for today’s showcase! Be sure to tell us your thoughts on the templates we’ve picked in the comments section! Did you find anything that appeals to your taste? If so, awesome! And if not, remember that there are always more themes at ThemeRex! Have a nice day and good luck with your new website!
Disabling cookies for visitors on a Joomla website does not mean deleting the core session cookie. That cookie is strictly necessary for forms, CSRF tokens, and login safety. What site owners usually need is to stop non-essential cookies (analytics, marketing, embeds, preference trackers) until the visitor gives informed consent under GDPR, ePrivacy, and similar laws. On Joomla 4, 5, and 6 the practical path is a consent module such as Easy Cookie Alert by Infyways, not a core hack that turns sessions off.
Thin “7 steps to disable cookies” posts still tell people to kill Global Configuration settings that do not exist, or to patch index.php so guests have no session. That breaks forms and security. This guide is the operator correction: cookie categories, what Joomla core actually sets, how to gate third-party tags, how to configure Easy Cookie Alert, and how to verify the result without inventing a free DIY banner that fights your template.
What you will learn
Necessary vs optional cookies on a real Joomla site
Why you should not disable the guest session cookie
How consent, Reject all, and prior blocking differ from an information-only bar
Step-by-step setup with Easy Cookie Alert on Joomla 4, 5, and 6
Google Consent Mode v2, embed freeze, and consent proof
How to test in DevTools and what still fails if tags stay in the template
What Joomla sets by default
Core Joomla is not an ad network. The Joomla Project’s own cookie policy treats the random session cookie as strictly necessary. It ties the browser to a server-side session so CSRF tokens and forms work. Official core does not ship Google Analytics or marketing pixels. Most compliance risk comes from extensions, template scripts, GTM, and embeds you add later.
Cookie / data
Typical source
Consent needed?
What to do
Session cookie (random name)
Joomla core
No (strictly necessary)
Keep it. Document it in your privacy policy
Session metadata for guests
Global Configuration → Session
No for the cookie itself
You can reduce guest metadata tracking for performance; the session still exists
_ga, _gid, marketing IDs
Analytics / ads / GTM
Yes before set
Load only after Analytics or Marketing consent
Social / chat widgets
Third-party scripts
Usually yes
Gate with Functional or a custom category
YouTube, Maps, Vimeo embeds
Articles and modules
Often yes (third-party cookies)
Freeze embeds until the required category is allowed
Older forum advice suggests editing index.php to start the site application with session => false for guests, or hacking session table inserts. That belongs in the museum next to Joomla 1.5 tips.
Sessions power form tokens. No session means weaker CSRF protection and broken logins.
Bots and humans still hit login URLs even if you hide the menu item.
Security vendors (including Akeeba guidance historically) treat guest session cookies as required for safe forms.
“Disable cookies” in a privacy sense means do not set tracking cookies, not “run a CMS without sessions.”
If your goal is fewer database writes from guests, use Session settings such as limiting session metadata for non-registered users where your Joomla version supports it. That is a performance tweak. It is not a consent solution and it does not remove the cookie.
What “disable cookies for visitors” should mean
Goal
Wrong approach
Correct approach
Stop tracking until opt-in
Information-only bar that never blocks scripts
Prior blocking + Reject all + category prefs
GDPR / ePrivacy readiness
Kill Joomla session
Keep necessary cookies; gate optional ones
CCPA / CPRA “Do Not Sell”
EU-only banner copy
Optional Do Not Sell link and prefs for US traffic
GTM / GA4
Fire tags in the template head always
Consent Mode v2 default denied, then update on choice
Embeds
Paste iframes freely
Freeze until Analytics / Marketing / Functional is allowed
Why lead with Easy Cookie Alert
Infyways builds Easy Cookie Alert for Joomla 4, 5, and 6. It is a module (vanilla JS, no jQuery) with Accept all, Reject all, Cookie settings, layouts (Bar, Floating, Modal, Overlay), category script slots, Google Consent Mode v2, embed blocking, optional consent proof logging, and CCPA Do Not Sell support. Full setup notes: Easy Cookie Alert documentation.
Vendor CMP suites and generic “paste this banner” snippets can work, but on Joomla they often fight template assets or leave tags in index.php. A native module that owns the script slots keeps the consent decision and the tags in one place.
Step 1: Inventory cookies and scripts
Open the site as a guest in a private window.
DevTools → Application → Cookies. Note first-party and third-party names.
Network tab: find analytics, ads, chat, and social hosts.
List every extension or template feature that injects those tags.
Write a short privacy policy section that names necessary cookies and optional categories.
If the inventory is mostly session cookies and nothing else, you may only need a clear policy statement. The moment you add GA4, Meta Pixel, Hotjar, or third-party embeds, you need consent gating.
Step 2: Install and publish Easy Cookie Alert
Download the package from the JED listing and unzip it.
System → Install → Extensions → upload mod_cookiealert_…zip.
Content → Site Modules → Easy Cookie Alert.
Status: Published. Hide Title.
Assign a module position (debug is fine; the banner portals to the document body).
Assign menu items for every public page that needs consent.
System → Clear Cache.
Step 3: Configure content, layout, and categories
Content: message, privacy policy link, Accept / Reject / Settings labels, optional CCPA Do Not Sell copy
Layout: start with Bar Bottom; use Overlay or Modal with Force consent when choice must happen first
Categories: Necessary stays on; enable Analytics, Marketing, Functional, and custom categories you need
Consent days: how long a choice is remembered
Consent version: bump when the policy changes so returning visitors are asked again
Reject all must be as easy as Accept all. A banner that only offers OK is not enough for modern EU expectations.
Step 4: Move tags into category scripts
Remove GA / ads / chat snippets from the template head and from “custom code” plugins that always fire.
Paste each tag into the matching category script slot in Easy Cookie Alert.
If you use Google Tag Manager, enable Consent Mode v2 so defaults are denied in the head before tags run, then update after the visitor chooses.
Turn on embed blocking if articles include YouTube, Vimeo, or Maps.
Optional: enable consent proof logging when you need anonymised receipts.
If tags remain hard-coded in the template, the banner cannot undo them. Consent UI without prior blocking is theatre.
Step 5: Verify as a guest
Private window, no prior consent cookie.
Confirm Reject all leaves analytics and marketing cookies unset.
Confirm Accept all (or category save) loads only what was allowed.
Submit a contact form and confirm it still works (session cookie present).
Reopen Cookie settings from the floating control and change a choice.
Bump consent version on staging and confirm the banner returns after a policy change.
Multilingual, shops, and logged-in users
Site type
Extra care
Multilingual
Separate Easy Cookie Alert modules per language filter, with translated copy and the same category ids
VirtueMart / Hikashop
Keep checkout and cart cookies in the necessary / functional story; never page-cache checkout; gate only marketing tags
Membership
Logged-in users still need session cookies; consent still applies to marketing tags on public pages
Heavy GTM
Consent Mode v2 first; do not duplicate the same tags in both GTM and module slots
What thinner articles get wrong
Claim
Reality
“Turn off cookies in Global Configuration”
There is no master switch that removes the session cookie while keeping a safe dynamic site
“Disable sessions for guests in index.php”
Breaks CSRF and forms; outdated advice
“A notice bar is enough”
Non-essential cookies need prior consent and a real Reject path
“Joomla core tracks users like an ad platform”
Core session is necessary; tracking usually comes from what you installed
“HTTP Headers plugin manages cookies”
System – HTTP Headers is for security headers (CSP, HSTS), not consent UI
When you also need an upgrade
Consent modules expect a current Joomla 4 / 5 / 6 stack and PHP 8. If the site is still on Joomla 3 with abandoned analytics plugins, fix the platform first. Infyways runs migrations from $149 with a free audit within 12 hours: Joomla Upgrade Services.
Key takeaways
Do not disable the Joomla session cookie for visitors. It is strictly necessary.
“Disable cookies for visitors” means block non-essential cookies until consent.
Use Accept all, Reject all, and category preferences with prior blocking.
Move analytics and marketing tags out of the template and into consent-controlled slots.
Easy Cookie Alert covers Joomla 4, 5, and 6 with Consent Mode v2, embed freeze, and optional proof logs.
Verify in a private window. A banner that never changes the Network panel is not compliance.
Frequently asked questions
Can I fully disable cookies for Joomla visitors?
No, not if you want a safe dynamic site. Keep the necessary session cookie. Disable or delay optional tracking cookies until consent.
Does Joomla core require a cookie consent banner by itself?
Often no, if you only use the session cookie and document it. Yes as soon as you add analytics, ads, or many third-party embeds.
Is an information-only cookie bar enough for GDPR?
No. Visitors need a real choice, including Reject all, and non-essential scripts must not run first.
Will Reject all break my contact form?
It should not. Forms rely on the necessary session cookie, which stays available.
What is Google Consent Mode v2 in this context?
It tells Google tags to default to denied until the consent module updates the choice, so tags do not behave as if consent already existed.
A Joomla browser compatibility issue is a page that works in one current browser and fails in another. Joomla 4, 5, and 6 support the current major version and the one before it of Chrome, Edge, Firefox, and Safari (the n-2 policy the project adopted in 2019). Internet Explorer is not supported. Most reports are not browser bugs at all: they are a cached stylesheet, a browser extension, a Joomla 3 template, a cookie scoped to the wrong host, or one of three documented core bugs (Safari 15 and Joomla’s ranged media queries, Firefox 148 and TinyMCE in Joomla 5.4.3 / 6.0.3, and Conservative caching breaking the Web Asset Manager). This guide separates them in order and gives the fix for each.
Generic cross-browser posts tell you to “test on real devices” and “check Can I Use.” That does not help when the administrator dashboard renders as a single column on a client’s Mac or the article editor flickers forever in Firefox. Those are known Joomla issues with issue-tracker numbers, version ranges, and specific fixes. You will find them here, together with a triage that stops you rewriting CSS for a problem the private window would have solved.
What you will learn
Which browsers Joomla 4, 5, and 6 actually support and where that policy is written
How to tell a browser bug from cache, an extension, a responsive bug, or a PHP error
The three documented Joomla core bugs that only show in one browser, with fixes
Which modern CSS features are safe for Joomla templates in 2026 and which still need fallbacks
Safari-specific quirks (100vh, hover, date inputs, backdrop-filter, autoplay) and how to code around them
The Safari login failure that is really the site URL
A tested one-command fix that makes Cassiopeia render on Safari 15 from a child template
Which testing tools are worth using and in what order
Supported browsers by Joomla version
Joomla
Browsers to test
Policy source
Do not spend time on
3.10 (end of life)
Current Chrome, Edge, Firefox, Safari
Old docs list still names IE. Not a 2026 requirement
IE8 to IE11. Joomla 3 itself is unsupported
4.x
Current and previous major of Chrome, Edge, Firefox, Safari
Production motion PROD2019/005: n-2, drop Internet Explorer. Bootstrap 5 UI
IE11. Bootstrap 5 does not support it
5.x and 6.x
Same four, current and previous major
Same policy. Core JavaScript is ES2018, IE11 es5.js builds removed in 5.0
What n-2 means in practice: Safari ships one major per year, so a Mac that cannot go past Safari 15 (macOS Monterey and older) is outside support for every Joomla 4.4.1 or newer release. Chrome, Edge, and Firefox update monthly and auto-update, so “old Chrome” is almost never the cause. Firefox ESR is supported because it tracks a recent major.
Documented one-browser bugs in Joomla core
Check this table before you touch any CSS. If the symptom, browser, and Joomla version match, the fix is known.
Symptom
Browser
Joomla versions
Cause
Fix
Administrator dashboard, sidebars, and Cassiopeia grid collapse to one mobile column on a wide screen
Safari 15 and older (macOS Monterey, Big Sur)
4.4.1 and newer, all 5.x, 6.0.x, 6.1.0 (we checked the shipped files)
Core CSS is compiled with ranged media queries @media (width >= 1200px). Safari added support in 16.4. Older Safari drops the whole rule. Issues #42439 and #45674
Update Safari (16.4 or newer). If the Mac cannot, the browser is outside policy; use Chrome or Firefox on that Mac. For a public site with many legacy Safari visitors, transpile the template CSS to classic min-width syntax and ship it from a child template (tested procedure in Step 9). Do not overwrite core files; the next update reverts them
TinyMCE editor flickers and reloads forever, articles cannot be edited
Firefox 148 and newer
5.4.3 and 6.0.3
Firefox 148 (February 2026) changed behaviour TinyMCE relied on. Listed on the Joomla 6.0.3 known issues page
Install the “Firefox 148 TinyMCE Hotfix” one-time patcher from the Joomla 6.0.3 / 5.4.3 download page (System → Install → Extensions), or update to 5.4.4 / 6.0.4 or newer. Chrome users are unaffected, which is why it looks like “Firefox is broken”
Site error “Unsatisfied dependency … for an asset” or missing scripts on some pages, only after caching is on
All browsers, but appears random per visitor
4.0 to 4.1.0 with Conservative caching; any version with a broken third-party cache plugin
Module caching stored Web Asset Manager dependencies with the wrong owner. Issue #37122, fixed in 4.1.1
Update Joomla. Clear cache. If a page-cache extension reproduces it, exclude the administrator and logged-in users. Details in caching in Joomla
Cassiopeia menus “act strangely” in Safari
Safari 15 and older
5.0.x
Same root cause as the first row. Issue #42713 was closed in favour of #42439
Same fix
Name the failure before you edit CSS
What you see
In which browsers
What it usually is
Layout wrong only on a phone width
All of them
Responsive CSS or a missing viewport tag. Not a browser bug
Site URL, www versus apex, or HTTP versus HTTPS. Cookie scope, not WebKit
Editor will not load or keeps refreshing
Firefox 148+
TinyMCE bug in 5.4.3 / 6.0.3. Install the hotfix or update
A slider or menu dies in one browser
One
An extension script. Read the console
Fonts, icons, or a map missing in Firefox or Brave only
Firefox, Brave
Tracking protection or Shields blocking a third-party host. Self-host the asset
Only the administrator is broken
One or all
Atum, or an admin module. The site template is innocent
Blank page, no layout talk
All
A PHP fatal, not CSS. Read the host log
Step 1: Write down the browser, the version, and the URL
Note the browser name and a major version (Chrome 14x, Safari 18, Firefox ESR). “Doesn’t work on Mac” is not a report. On a Mac, Safari → About Safari shows the version; the macOS version tells you the maximum Safari it can run.
Note the exact URL. Site homepage, one article, and /administrator/ are three different products.
If the browser is Internet Explorer, stop. On Joomla 4, 5, or 6 that is expected. Send the user to current Edge, Chrome, Firefox, or Safari.
If the browser is Safari 15 or older and the layout is the complaint, go to the core bugs table. You are done diagnosing.
If every current browser fails the same way, you are not debugging compatibility. Fix the error, the missing file, or the template, then come back.
Step 2: Rule out cache and extensions
Open a private window with extensions disabled. Retest the same URL.
If the private window is fine, the cause is a cached file or an extension (ad blockers block scripts and fonts, Firefox Enhanced Tracking Protection and Brave Shields block third-party hosts). Clear that browser’s cache for the site. Then clear Joomla’s cache (System → Maintenance → Clear Cache) and any CDN.
If the private window is still broken, the site is serving the failure. Continue.
Joomla appends its media version to core asset URLs, and that version changes when you update Joomla or an extension. A hand-edited user.css does not change it, so browsers can keep the old file for days. Clear Joomla cache after CSS edits, and on a CDN purge the CSS path.
Step 3: Read the console, not the homepage
Open developer tools in the broken browser. Console and Network.
Reload. Copy the first red error. The file name is the extension or the template.
On Network, filter CSS and JS. A red row is a 404 or a blocked request. An unstyled page with a 404 on template.css is a path problem, not a rendering engine.
Mixed content (HTTPS page calling http:// assets) is blocked hardest by Chrome and Safari. Fix the URLs in the template and in article HTML. Do not tell users to allow insecure content.
“Refused to load” or “violates the following Content Security Policy” means the System – HTTP Headers plugin (or the host) set a CSP that the extension does not satisfy. Browsers enforce CSP slightly differently, which is why it can look like a one-browser bug. Fix the policy or the inline script, do not disable CSP site-wide.
Step 4: See if the template is the only broken piece
On a staging copy, set the site template to Cassiopeia (System → Site Templates).
Retest the broken browser.
If Cassiopeia is fine, your template or one of its overrides is the bug. Update it to a build for this Joomla major, or replace it. Joomla 3 templates (Bootstrap 2, IE conditional comments, MooTools menus) will not become compatible by adding a script.
If Cassiopeia fails too, the template is not the cause. Look at modules on that page, then at the core bugs table.
Confirm the template prints a viewport tag. Cassiopeia does. A custom index.php that omits it makes phones look “broken in Safari” while the desktop looks fine:
Step 5: Disable the extension named in the console
The first console line usually names a file under /media/, /templates/, /modules/, or /plugins/. Disable that extension on staging and reload.
A menu or slider that calls MooTools or an ancient jQuery will fail in current browsers even when the rest of the page is fine. Background: remove MooTools from Joomla.
Do not “fix” it by loading jQuery again. Joomla 4, 5, and 6 core UI does not need jQuery. A second copy fights over $ and creates a new one-browser failure.
HTML5 Shiv and Respond.js were IE8 hacks. They do nothing on Joomla 4+ and add a script current browsers do not need. Remove them if a ten-year-old tutorial put them in the template.
Page builders and Helix-style frameworks that still ship -moz-, -ms-, and -webkit- prefixed rules from 2015 produce console warnings but rarely break layout. Update the template; do not hand-edit its compiled CSS.
When the template is yours or a child template, check the newer CSS features it relies on. This is the 2026 state of the features that most often produce “works in Chrome, broken in Safari or Firefox” on Joomla sites. Verify current numbers on Can I Use.
Feature
Safe in all supported browsers since
Watch out for
Ranged media queries (width >= 1200px)
Safari 16.4 (March 2023). Chrome 104, Firefox 63
Safari 15 and older drop the rule entirely. This is the Joomla core bug above
Full-height section overflows behind the iOS toolbar
100vh includes the space under the collapsing browser bar
Use 100dvh with a 100vh fallback
Dropdown menu needs two taps on iPhone
First tap fires :hover, second fires the click
Make the parent item a real link or use the Cassiopeia menu that opens on tap; test with @media (hover: none)
Background video does not play
Autoplay requires muted and playsinline
<video autoplay muted loop playsinline>
Form fields look different, date picker missing on older desktop Safari
Safari styles native controls and added input type="date" on desktop only in 14.1
Set appearance: none where you style controls; provide a text fallback for very old macOS
Fixed header jumps when the keyboard opens
iOS resizes the visual viewport
Prefer position: sticky for headers
Glass effect missing on Safari 16 and 17
Needs the -webkit- prefix before Safari 18
Write both -webkit-backdrop-filter and backdrop-filter
Fonts render heavier or lighter than Chrome
Different text rasterisation per OS, not a CSS error
Accept it. Do not chase pixel identity between operating systems
Step 8: Fix Safari login separately from CSS
If the page looks right in Safari but login or the administrator session dies, stop comparing stylesheets.
Global Configuration → Site → Site URL, and the live host, must be the same scheme and host. https://example.com and https://www.example.com are different cookie hosts. Chrome is more forgiving of the redirect. Safari drops the session.
Force one host in the server redirect, then clear cookies and test again.
Global Configuration → System → Cookie Domain and Cookie Path: leave blank unless you run subdomains that must share the session.
If the Joomla page is inside an iframe on another site, Safari blocks that third-party cookie. Do not embed the login.
Joomla 4.1 and newer support child templates. Every browser fix you write belongs there so updates do not erase it.
System → Site Templates → Cassiopeia (or your template) → Create Child Template.
Add rules to media/templates/site/{child}/css/user.css. Cassiopeia loads user.css automatically after its own CSS.
Need to override a core stylesheet? Joomla resolves a relative asset such as template.min.css by looking in media/templates/site/{child}/css/ first and only then in the parent’s folder (HTMLHelper::includeRelativeFiles). A file with the same name in the child wins. No joomla.asset.json edit is needed.
Never edit media/vendor/bootstrap, media/templates/site/cassiopeia, or media/system. The next Joomla update replaces them and the “fix” disappears in one browser first, which restarts the whole hunt.
Tested: make Cassiopeia render on Safari 15 from a child template
We inspected the files Joomla 6.0.0 and 6.1.0 ship. Cassiopeia’s template.min.css contains 111 media queries, all in range syntax and none in min-width form. Atum has 118, and media/vendor/bootstrap/css/bootstrap.min.css (Bootstrap 5.3.8) has 81. Cassiopeia does not load the vendor Bootstrap file at all; Bootstrap is compiled into template.min.css, so swapping the vendor file does nothing for Cassiopeia. The fix is to transpile the template CSS.
Create the child template (step 1 above). Note its folder name, for example cassiopeia_legacy.
On any machine with Node.js, run Lightning CSS against the shipped file with a Safari 15 target:
Result on Joomla 6.1.0: 111 ranged queries became 111 min-width / max-width queries, file size 247 KB to 251 KB, everything else unchanged. Repeat for template-rtl.min.css if you serve RTL.
Clear Joomla cache. Load the site in Safari 15 (BrowserStack macOS Monterey works) and the grid returns.
After every Joomla update that changes Cassiopeia, rerun the command. Your child file is never touched by the updater, but it also does not receive core CSS fixes until you regenerate it.
For the administrator, the same approach works with an Atum child template and media/templates/administrator/{child}/css/template.min.css. In practice, updating Safari on the one editor’s Mac is the cheaper fix. For third-party templates that load media/vendor/bootstrap/css/bootstrap.min.css, transpile that file into the child’s css/ folder and change the template’s asset URI to point at it.
Step 10: Retest the supported browsers, in this order
Chrome or Edge on desktop (same engine, still check Edge once if the client uses it).
Safari on a real Mac or iPhone. Desktop Chrome does not stand in for iOS Safari; on iOS, Chrome and Firefox are WebKit under the hood, so “works in Chrome on iPhone” tells you nothing about Chrome on desktop.
Firefox, including ESR if the client is a locked office build.
The administrator on each, not only the homepage. Article edit screen included (that is where the Firefox 148 bug shows).
Tools, in order of cost: your own devices and a colleague’s Mac; Safari Technology Preview and Firefox Developer Edition for what is coming next; Playwright (free, runs Chromium, WebKit, and Firefox from one script) for regression screenshots; BrowserStack or LambdaTest when you need a specific old macOS and Safari 15 to confirm the ranged media query case. A paid lab is not the first step, and it will not make Internet Explorer run Joomla 6.
Do not sniff the browser
Joomla’s old browser class, and any template switch based on the user-agent string, will mislabel current Edge, Brave, and in-app webviews. Safari on iPad reports itself as macOS Safari. Serve one template. Fix the CSS with @supports and media features like (hover: none). User-agent hacks are how a site ends up with a broken stylesheet that only one browser ever loads, which then looks exactly like a compatibility bug.
When the honest fix is an upgrade
If the site is Joomla 3 and the goal is “works in current Safari and Chrome”, Protostar and a pile of IE scripts are the wrong project. Move to a Joomla 5 or 6 template built on Bootstrap 5, on staging, then retest. Path notes: Joomla upgrade issues and benefits of Joomla migration. Infyways runs those jumps from $149, with a compatibility audit within 12 hours: Joomla Upgrade Services.
What thinner articles leave out
Topic
Typical post
This guide
Browser support
“Test in all major browsers”
The n-2 policy, where it is recorded, and what it means for Safari 15 Macs
Core bugs
None
Safari ranged media queries (#42439, #45674), Firefox 148 TinyMCE hotfix, Conservative caching and the Web Asset Manager (#37122), with version ranges
Triage
Start editing CSS
Private window, console, Cassiopeia control, then the named extension
Modern CSS
“Check Can I Use”
Safe-since table for the eleven features that actually break Joomla templates, with fallback pattern
Safari
“Safari is buggy”
100vh, two-tap hover, autoplay, date inputs, sticky headers, backdrop-filter prefix
Login in Safari
Not mentioned
Site URL and cookie host, iframe blocking
Where to put the fix
Edit template.css
Child template, user.css, same-name file override; never core files
Safari 15 fix
“Update Safari” or “replace Bootstrap”
Measured: Cassiopeia 6.1.0 ships 111 ranged queries, Bootstrap is compiled in, one Lightning CSS command produces a working child template.min.css
Legacy
Add HTML5 Shiv, Respond.js, jQuery
Remove them. They create the next one-browser bug
Key takeaways
Joomla 4, 5, and 6 support the current and previous major of Chrome, Edge, Firefox, and Safari. Not Internet Explorer, not Safari 15.
A wide screen showing the mobile layout in Safari 15 or older is the ranged media query bug. Update Safari, or transpile template.min.css into a child template. Do not edit core CSS.
Firefox 148 and a flickering TinyMCE on Joomla 5.4.3 or 6.0.3 means install the hotfix or update.
Same failure in every browser is not a browser bug.
Private window first, then the console, then Cassiopeia, then the extension named in the error.
Safari login failures are usually the site URL and cookie host.
Use @supports, 100dvh, and (hover: none) instead of user-agent sniffing.
Put every fix in a child template. Do not add HTML5 Shiv, Respond.js, or a second jQuery.
Frequently asked questions
Which browsers does Joomla support?
For Joomla 4, 5, and 6: the current major version and the one before it of Chrome, Edge, Firefox, and Safari. Internet Explorer is not supported. The old Joomla 3 browser list is not the matrix for current releases.
Why does the Joomla administrator show one column on a Mac in Safari?
Safari 15 and older do not understand the ranged media queries in Joomla 4.4.1 and newer core CSS, so the responsive grid collapses. Update to Safari 16.4 or newer, or use Chrome or Firefox on that Mac.
Why does the article editor keep reloading in Firefox?
Firefox 148 broke TinyMCE in Joomla 5.4.3 and 6.0.3. Install the Firefox 148 TinyMCE hotfix from the Joomla download page or update to 5.4.4 / 6.0.4 or newer.
Why does the site look fine in Chrome and broken in Safari?
Check a private window, then the console. If the layout is the mobile layout on a wide screen, check the Safari version. If only login fails, compare the Global Configuration site URL with the host Safari is using, including www and HTTPS.
Why is the administrator broken in Internet Explorer?
Joomla 4 and newer use Bootstrap 5 and modern JavaScript. IE11 is outside that support. Use Edge or another current browser.
Will HTML5 Shiv or Respond.js fix it?
No. Those scripts patched Internet Explorer 8. They do not fix Joomla 4, 5, or 6, and they should come out of the template.
The layout breaks on phones but not on desktop. Is that a browser bug?
No. If every browser breaks at the same width, it is responsive CSS or a missing viewport tag. If only iOS overflows at the bottom, replace 100vh with 100dvh.
One browser still shows the old design after I changed the template. Why?
That browser cached the CSS. Test in a private window, then clear Joomla cache and the CDN. Editing user.css does not change Joomla’s media version.
Should I load jQuery so older browsers work?
No. Extra jQuery copies cause $ conflicts. Current Joomla does not need jQuery for the core layout.
Can I make Cassiopeia work on Safari 15 without editing core files?
Yes. Transpile media/templates/site/cassiopeia/css/template.min.css with Lightning CSS targeting Safari 15 and save the output as template.min.css inside your child template’s css folder. Joomla loads the child’s copy first. Replacing media/vendor/bootstrap does nothing for Cassiopeia because Bootstrap is compiled into template.min.css.
Does Cassiopeia work in all browsers?
It works in the browsers Joomla supports. Use it as the control. If Cassiopeia is fine and your template is not, fix or replace the template.
Who can fix a template that only fails in one browser?