Icons stripped out of Joomla articles

If you've ever dropped a Font Awesome icon into a Joomla article — something like — only to find it silently vanished after saving, you're not alone. In 2026, with Joomla 5.x now the stable release branch and Joomla 4.x in extended support, this behaviour still catches people out. The tags are being stripped by a combination of TinyMCE's own filtering and Joomla's text filter system — but the fix is straightforward once you know where to look.

Rather than spending an afternoon chasing the problem, a couple of configuration changes in the administrator panel will sort it out for good.

TL:DR – 

Two settings control whether Joomla strips icon markup from your articles. Adjust the TinyMCE plugin to use Joomla's own text filter, then make sure your user group's filter level allows the tags through. Done.

Why Joomla strips icon tags in the first place

Joomla's default content pipeline runs your article HTML through two layers of filtering before it reaches the database. The first is TinyMCE itself, which has its own set of rules about which HTML elements and attributes are "safe" to keep. The second is Joomla's global text filter, which applies per user group. An <i> or <span> tag carrying only a class attribute — exactly what Font Awesome and Joomla's own icon set rely on — can fall foul of either layer.

Since Joomla 4.0, the CMS ships with its own Font Awesome icon set built in, available by default in both the Cassiopeia frontend template and the Atum administrator template. Joomla 5.x continues this approach, bundling an updated Font Awesome release and extending icon support across the core UI. The irony is that Joomla actively encourages you to use these icons in content — and then quietly removes them unless you tell it not to.

Fix 1 — Configure the TinyMCE editor plugin

The quickest change to make is in the TinyMCE editor plugin. This tells TinyMCE to defer to Joomla's own text filter rules rather than applying its own, more aggressive, stripping logic.

  • In the administrator, go to System and find Plugins in the Manage section.
  • Type editor into the search box.
  • Open Editor — TinyMCE.
  • Scroll down to find Use Joomla Text Filter and switch it on.
  • Save and close.
Joomla Administrator — System: Plugins
Joomla Administrator — System: Plugins
Joomla Administrator — System: Plugins: Editor - TinyMCE
Joomla Administrator — System: Plugins: Editor — TinyMCE

With this setting enabled, TinyMCE hands responsibility for HTML filtering back to Joomla, which means the rules you configure at the global level (covered below) actually take effect. Without it, TinyMCE can strip tags before Joomla's filter even sees them.

Fix 2 — Set the correct text filter for your user group

Joomla's global text filter settings determine what HTML each user group is allowed to save. Super Users have no filtering applied by default, which is why the problem is often invisible when you're developing a site as a Super User and only surfaces when editors or registered users try to add icons.

  • Go to System > Global Configuration.
  • Click the Text Filters tab.
  • Find the user group you want to adjust and set the filter type to No Filtering.
  • Save.
Joomla Administrator — System: Global Configuration
Joomla Administrator — System: Global Configuration
Joomla Administrator — System: Global Configuration: Text Filters
System: Global Configuration — Text Filters
Joomla Administrator — Text Filters: No Filtering
Text Filters — No Filtering selected

A word of caution: setting a group to No Filtering means every member of that group can save arbitrary HTML, including inline scripts if they were ever to appear in pasted content. Apply it to trusted editorial groups only — not to Registered users or public-facing roles. For sites running Joomla 5.x with a mixed editorial team, consider using the Custom filter type instead, which lets you whitelist specific tags and attributes (such as class on i and span) without opening the door entirely.

Using the Joomla icon set directly

If your goal is simply to use icons in articles without pulling in an external library, it's worth leaning on what Joomla already ships. Both Cassiopeia and Atum load the bundled icon font automatically, so any icon class from that set will render without additional stylesheet includes. In Joomla 5.x the bundled Font Awesome version has been updated, and the icon reference in the Joomla documentation lists the full set available in core.

For templates that extend or replace Cassiopeia — increasingly common as the Joomla 5 template ecosystem has matured — check your template's documentation to confirm which icon library it loads and at what version. Some commercial templates bundle a newer Font Awesome release independently, which can mean class name differences between what Joomla core expects and what your template renders.

TinyMCE stripped span tags without a class or id because its default schema treats classless inline elements as redundant markup. Once you route filtering through Joomla, the CMS schema — which is aware of icon classes — takes over.

Quick checklist

  • Editor — TinyMCE plugin: Use Joomla Text Filter → On
  • Global Configuration → Text Filters: Set the relevant user group to No Filtering or a custom allowlist that includes class attributes on inline elements
  • Template compatibility: Confirm your template loads the icon library your markup references
  • Joomla 5.x users: The path and UI labels are the same as Joomla 4 — no new location to learn

Once both settings are in place, icon tags survive the save cycle intact. It's one of those Joomla configuration details that isn't obvious from the interface, but once you've set it you rarely need to revisit it.