Remove the Joomla Generator Meta Tag

Joomla's generator meta tag names the CMS but not the version. Remove it with setGenerator('') or a plugin on Joomla 3, 4, 5, and 6, including RSS, without editing core.

Abhilash Sahoo
Abhilash Sahoo
9 min read
Remove the Joomla Generator Meta Tag

The Joomla generator meta tag is a single line in the HTML head, <meta name="generator" content="Joomla! - Open Source Content Management">. Joomla adds it in the document class. There is no switch for it in Global Configuration on Joomla 3, 4, 5, or 6. Remove it with setGenerator('') before the head is rendered, or with a system plugin. An empty string omits the tag. null is the wrong value and can fatal on PHP 8.

The tag does not contain your version number. Removing it does not change Google rankings. It only drops one fingerprint. RSS feeds, the administrator login page, and administrator/manifests/files/joomla.xml still identify the CMS unless you handle those separately.

What you will learn

  • The exact tag Joomla prints, and why it is not a version number
  • How to see it in HTML and in RSS
  • The template one-liner, and why it disappears on the next template update
  • Why setGenerator(null) is unsafe
  • What still gives the site away after the tag is gone

What the tag is

HTML's generator meta names the software that built the page. Joomla sets that string when it creates the HTML document. It is not read from a menu item, not stored in the database, and not a language string you can override. The same property is written into RSS and Atom as a <generator> element.

On current Joomla 3.10, 4, 5, and 6 the content is only:

<meta name="generator" content="Joomla! - Open Source Content Management">

Very old releases (Joomla 1.5 and early 2.5) put the version in that string. That stopped years ago. If a scanner claims it learned "Joomla 3.9.28" from this meta tag, it learned it somewhere else.

What removing it does, and what it does not

ClaimReality
Hides the Joomla version from attackersThe version is not in this tag. It is in administrator/manifests/files/joomla.xml and in the administrator's System Information screen
Improves Google rankingsNo. Google does not use meta name="generator" as a ranking signal
Hurts SEONo, as long as you do not also delete the robots meta tag
Makes the site invisible to scannersNo. /media/system/js/core.min.js, /administrator/, and Cassiopeia paths still look like Joomla
Removed by a Joomla or template update if you only edited index.phpYes. A template update replaces that file
Removed from RSS if you only call setGenerator inside <head> after the head includeNo. Feeds never render that head block

Treat this as housekeeping, not as a security patch. An outdated Joomla site with the tag removed is still outdated. Update path: how to update Joomla.

Step 1: See the tag before you change anything

  1. Open the public homepage.
  2. View source (not only the inspector). Search for generator.
  3. You should find the meta line above. Joomla 3 often writes it self-closed (/>). Joomla 4 and newer usually do not.
  4. Open the feed: add ?format=feed&type=rss to the site URL, or use the RSS link in the page. Search for <generator>. The same sentence is there.
  5. Optional: open /administrator/ and view source. The login page carries the tag too.

If the line is missing already, a plugin or the template is stripping it. Do not add a second strip until you know which one.

Step 2: Prefer a plugin over a template edit

A system plugin runs on every HTML and feed response and survives template updates. Infyways publishes Remove Meta Generator for this. Version 1.4 is for Joomla 4, 5, and 6. It clears or replaces the generator on the public site, can clean RSS and Atom, and can drop the X-Powered-By header. It does not touch the administrator. Listing: Joomla Extensions Directory.

  1. Install the zip and enable System - Remove Meta Generator.
  2. Set generator to remove, or replace it with your own brand text if you want a tag with different content.
  3. Leave the robots option alone unless you have a reason to change indexing. Deleting meta name="robots" can drop a noindex you still need, or strip a normal index directive.
  4. Clear Joomla cache and any CDN cache.
  5. View source on the homepage and on one article. Then check the RSS feed.

Joomla 3 is not a target of the 1.4 build. On 3.10 use the template line in the next step, or stay on a plugin build that still lists Joomla 3.

Step 3: Or set an empty generator in the template

This works on Joomla 3, 4, 5, and 6. In templates/YOUR_TEMPLATE/index.php, before <jdoc:include type="head" /> and before <jdoc:include type="metas" />:

<?php
$this->setGenerator('');
?>

Use an empty string. Do not pass null. The document API types setGenerator as a string. On PHP 8 a null argument becomes a fatal once that type is enforced. An empty string is what makes the renderer skip the tag. Joomla only prints the meta when getGenerator() is non-empty.

Put the line at the top of the file if you are unsure. Code after the head include is too late: the meta block has already been built.

A template update overwrites index.php. Put the line in a child template, or use the plugin. Do not edit libraries/src/Document/HtmlDocument.php or libraries/joomla/document/html/html.php. The next Joomla update puts the tag back and can break the core file.

Step 4: Cover feeds, not only the homepage

The template line never runs for format=feed. A plugin event does. This is the body of a system plugin method. On Joomla 3.8 and newer, and on 4, 5, and 6, Joomla\CMS\Factory is available without the compatibility plugin:

public function onBeforeRender()
{
    $app = Factory::getApplication();

    if (!$app->isClient('site')) {
        return;
    }

    $doc = $app->getDocument();
    $type = $doc->getType();

    if ($type !== 'html' && $type !== 'feed') {
        return;
    }

    $doc->setGenerator('');
}

onBeforeRender is early enough for HTML and for RSS. onBeforeCompileHead is HTML-only, so a head-only hook leaves the feed element in place. Skip non-HTML types such as JSON and raw so you do not touch component output that is not a document head.

On Joomla 3.7 and older, swap Factory::getApplication() for JFactory::getApplication() and isClient('site') for isSite().

Step 5: Confirm it is gone, including cache

  • View source on the homepage, an article, and a category blog.
  • Search for name="generator". No match means the Joomla tag is gone. A match with different content means a template or extension hardcoded its own tag. setGenerator will not delete a string that was echoed by hand. Search the template for generator and remove that line.
  • Open the RSS URL and confirm there is no <generator>Joomla! element, if you used the plugin or onBeforeRender.
  • Clear System → Maintenance → Clear Cache, then the host cache or Cloudflare, or you will keep seeing the old HTML.
  • Check /administrator/ only if you intended to change it. The JoomlaX plugin leaves admin pages alone on purpose.

Other fingerprints people confuse with this tag

SignalWhat it isRemoved by setGenerator?
meta name="generator"HTML fingerprint, no versionYes, if you set an empty string in time
RSS <generator>Same property, feed rendererOnly if the call runs for feed documents
X-Powered-By: PHP/x.yServer header, not Joomla's meta tagNo. Turn it off in PHP or in the plugin's header option
administrator/manifests/files/joomla.xmlCore manifest, includes the versionNo. This file is the real version leak
/media/system/js/core.min.js and /administrator/Paths and the login screenNo
meta name="robots"Indexing instructionsShould stay. Unrelated to the generator

Blocking the manifest is a hosting or Admin Tools job, not a meta-tag job. Hiding files is still weaker than installing updates. If the site is on Joomla 3, plan the move instead of collecting hide-the-CMS tricks: Joomla upgrade services.

SEO

Removing the generator tag does not move rankings. Google indexes the visible page, links, and a handful of meta tags it actually reads (description, robots). generator is not one of them. More on what does matter: Joomla SEO.

The change that does hurt SEO is a plugin option that deletes every robots meta. Leave that control on "leave" unless you are setting a specific policy, such as index, follow on purpose.

Key takeaways

  1. The tag says Joomla. It does not say which version.
  2. There is no Global Configuration checkbox. Use setGenerator('') or a plugin.
  3. Never pass null. Never edit files under libraries/.
  4. A template edit dies on the next template update and never touches RSS.
  5. Removing the tag does not change SEO. Do not remove the robots meta while you are there.
  6. Update Joomla. Hiding the tag is not a substitute.

Frequently asked questions

View source on the homepage and search for generator. The default content is Joomla! - Open Source Content Management. The same text is in the RSS <generator> element.

Call $this->setGenerator('') in the template before the head include, or enable a system plugin that does it on onBeforeRender. Empty string, not null.

No. Google does not use that meta tag for ranking. Leave meta name="robots" in place.

Not on Joomla 3.10, 4, 5, or 6. The version is in administrator/manifests/files/joomla.xml, not in the generator meta.

Yes. There is still no core switch. The same setGenerator('') call works, or use Remove Meta Generator 1.4.

A core update does not restore a plugin setting. A template update does restore index.php if you edited the parent template. Core file hacks under libraries/ are overwritten.

No. Feeds do not load index.php. Use onBeforeRender or a plugin that cleans feed output.

No. Pass an empty string. Null does not match the string argument and can fatal.

Yes. Install Remove Meta Generator, enable it, clear cache, and view source.

Share this article
Abhilash Sahoo

Written by

Abhilash Sahoo

Abhilash Sahoo, with over 16 years of experience, is Founder & CEO of Infyways Solutions. He builds web platforms and eCommerce on Joomla, WordPress, Shopify, Magento, and OpenCart, plus modern stacks like Next.js, React, Node.js, and Python, with AI agents, automation, and headless CMS when products need to scale.

Keep reading

Related articles

Start a project

Have something
to build?

Tell us what you are building. You will hear back from an engineer within one business day.

hello@infyways.com · Remote, working across time zones

Tell us about your project

Fill out the quick form and we'll reach out.