Joomla SEO: Removing useless meta tags

is one of the most used content management systems (CMS) on the web, trailing only WordPress in popularity. Like other common web CMSes, Joomla requires a bit of tweaking in order to achieve Search Engine Optimization () bliss. One of Joomla’s annoyances is an insistence in spewing out bad . Fortunately, these problems can be resolved by correctly defining Joomla’s Global settings and by applying a small patch to Joomla’s core code.

Joomla meta tag issues

By default, Joomla outputs a default robots meta tag,

<meta name="robots" content="index, follow" />

which is superfluous extra page weight as index, follow is the default for robots. To a SEO professional, the presence of this useless tag is rather embarrassing. The default robots meta tag exists in Joomla versions 1.5 and 1.6. While you can override the robots value on an article by article basis – and there can be very good reasons to do so – you cannot suppress the default index, follow value.

Joomla meta tag issues

Joomla also insists on including a meta keywords tag in every page. By default in Joomla 1.5, the keywords are Joomla, Joomla. Joomla 1.6 allows a default value to be defined during the Joomla installation or to be set in the Global administration area. There is no valid reason to put the same keywords on every page of a website. Actually, there are very few good reasons to use the keywords meta tag. It isn’t used by Google nor Bing. If a company has invested time and money in serious keyword research, does it really make sense to make this information so readily available to the competition? Let them earn it by having to perform a deeper analysis of a site’s page content. Even if no keywords are specified, Joomla 1.5 & 1.6 will needlessly output an empty keywords meta tag:

<meta name="keywords" content="" />

Joomla meta description tag issues

While the meta description tag is actually useful for search engines, Joomla again offers the possibility to set it to the same value for every page. This is not a good idea: it can impact the depth of search engine crawling as well as search result click-through rates, among other things. As in the case of the meta keywords tag, Joomla 1.5 insists on outputting an empty description meta tag if a page description has not been specified:

<meta name="description" content="" />

This issue was fixed in Joomla 1.6.

Joomla meta generator tag issues

While it might not appear to impact SEO, Google does warn site owners if Google thinks the site software is out of date and/or subject to known vulnerabilities – clearly Google is reading software version numbers during its normal crawling and indexing process. The same can be said of hackers – they may analyze a site’s telltale digital identity to see what vulnerabilities a site is likely to suffer from. There’s no need to help them in this process – consider removing the generator tag.

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

Joomla SEO meta tag recommendations

  1. In the Global settings area of Joomla’s administration panel, insure the fields Global Site Meta Description and Global Site Meta Keywords are empty.
  2. Change Joomla’s meta tag logic so that Joomla won’t needlessly insert empty tags in a page. The file is libraries/joomla/document/html/renderer/head.php and the changes to make are in red. Technical folks may want to download a patch file for version 1.5.
    // Generate META tags (needs to happen as early as possible in the head)
    foreach ($document->_metaTags as $type => $tag)
    	foreach ($tag as $name => $content)
    		if($content != ''){ // only output tags if they actually have a value - Sean Carlos
    			if ($type == 'http-equiv') {
    				$strHtml .= $tab.'<meta http-equiv="'.$name.'" content="'.$content.'"'.$tagEnd.$lnEnd;
    			} elseif ($type == 'standard') {
    				// don't output <meta name="robots" content="index, follow" /> as this is too embarassing: its the default for search engines! - Sean Carlos
    				if($name == 'robots' && $content == 'index, follow' ) {
    					$content = 'index, follow'; // do nothing
    				} else {
    					$strHtml .= $tab.'<meta name="'.$name.'" content="'.str_replace('"',"'",$content).'"'.$tagEnd.$lnEnd;
    $documentDescription = $document->getDescription();
    if ($documentDescription) { 		// only output tags if they actually have a value - Sean Carlos
    	$strHtml .= $tab.'<meta name="description" content="'.$document->getDescription().'" />'.$lnEnd;
    if($document->getGenerator() != '') { // only output tags if they actually have a value - Sean Carlos
    	$strHtml .= $tab.'<meta name="generator" content="'.$document->getGenerator().'" />'.$lnEnd;

    In version 1.6, it isn’t necessary to change the logic which sets the meta description which has already been fixed.

  3. To remove the meta generator tag, it is necessary to add a line of code to the main template file, such as templates/rhuk_milkyway/index.php
    <?php $this->setMetaData('generator',''); ?>
    <jdoc:include type="head" />

Unfortunately these changes need to be reapplied should the Joomla software and/or theme be updated.

Similar Posts:

Registration is now open for the next SEO Course and Google Analytics Course in Milan. Don’t miss the opportunity!

About Sean Carlos

Sean Carlos is a digital marketing consultant & teacher, assisting companies with their Search (SEO + SEA = SEM), Social Media & Digital Media Analytics strategies. Sean first worked with text indexing in 1990 in a project for the Los Angeles County Museum of Art. Since then he worked for Hewlett-Packard Consulting and later as IT Manager of a real estate website before founding Antezeta in 2006. Sean is an official instructor of the Digital Analytics Association and collaborates with the Bocconi University. He is Chairman of the SMX Search and Social Media Conference, 12 & 13 November in Milan. He is also a co-author of the Treccani encyclopedic dictionary of computer science, ICT & digital media. Born in Providence, RI, USA, Sean received Honors in Physics from Bates College, Maine. He speaks English, Italian and German.

12 Responses to "Joomla SEO: Removing useless meta tags"