Joomla 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 (SEO) bliss. One of Joomla’s annoyances is an insistence in spewing out bad meta tags. 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 robots 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 keywords 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
- In the Global settings area of Joomla’s administration panel, insure the fields Global Site Meta Description and Global Site Meta Keywords are empty.
- 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.phpand 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 http://antezeta.com/ 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 http://antezeta.com/ 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 http://antezeta.com/ $strHtml .= $tab.'<meta name="description" content="'.$document->getDescription().'" />'.$lnEnd; } if($document->getGenerator() != '') { // only output tags if they actually have a value - Sean Carlos http://antezeta.com/ $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.
- 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<head> <?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:
- Remove WordPress version information from your blog and feeds
- Now there are 6 ways to keep website content out of search engines
- 9 SEO Security Tips for WordPress
- How to Specify an HTML Web Document Language for good SEO
- Extra long descriptions showing up in Google search results: test in progress?
Registration is now open for the next SEO Course and Google Analytics Course in Milan. Don’t miss the opportunity!

By Eric 2011-06-29 - 23:06:47
To remove the generator tag install the simple ByeByeGenerator plugin, Simple and can just be added to your “base” build
By James Flack 2011-07-01 - 16:44:50
I removed “” and added this php:
<?php
// CUSTOME HEADDATA //
////
// //
$headMetaData = JDocumentHTML::getHeadData();
echo “”.$headMetaData["title"].”".”\n”;
echo ‘ ‘.”\n”;
echo ‘ ‘.”\n”;
echo ‘ ‘.”\n”;
$countLinks = count($headMetaData["links"]);
if ($countLinks > 0){
for($i=0; $i’;
}
}
$headMetaDataScripts = array_keys($headMetaData["scripts"]);
$countScripts = count($headMetaDataScripts);
if ($countScripts > 0){
for($i=0; $i<=$countScripts-1; $i++)
{
$scr = $headMetaDataScripts[$i];
$mime = $headMetaData["scripts"][$headMetaDataScripts[$i]]["mime"];
echo "\n";
echo ' ‘;
}
}
?>
Seems to do work, but my php is not that great!
By jw-extensions.net 2011-07-15 - 8:07:07
When the content must be upgrate continuously, the keyword we seo would be changed quickly. It takes much time if we rewrite the old article. It must be a technique for us to do it quickly. JWseolink is the best solution for you.
This plugin will replace keyword by a link with keyword. IT will search for all keywords in content, and replace it with tag . This is really helpful for your site seo.
Please visit: http://www.jw-extensions.net/jwextensions.html to download this plugin for joomla 1.5 and joomla 1.6
By George Mena/iBaggs 2012-03-21 - 4:08:13
Hello, interesting information you are providing, what would you charge me to optimize my website http://www.ibaggs.com?
Thank you
By ????????? ??????????? - PCNW 2012-03-30 - 2:12:19
I was using Sef patch for all this mess of joomla meta tags but with this info I can uninstall that buggy patch. Thanks!
By cquot 2012-04-29 - 23:28:54
I see this problem on a WP site too. If I do a view source on any page I see this tag. How to get rid if it?
By ????????? ??????????? 2012-09-08 - 22:30:40
I would like to change the author tag
By Patris Kamagra 2013-01-15 - 20:46:20
Never liked the keyword meta tag, now I can finally forget about it completely!
By Leon Dawson 2013-01-22 - 21:30:09
Updating Joomls Meta Tags can be very confusing especially with so many versions of Joomla available. All Joomla variations have a different method of updating them
By Willem van der Marel 2013-01-24 - 1:12:47
Nice article. I like the part about removing the generator tag. No need to let hackers know what CMS you are using.
You might want to review your own tags though. Your WP generator tag is still in your page ()
By CyberLink coupon 2013-01-29 - 15:58:42
I checked that there were many useless meta tags in my joomla. This post helped me in removing those