Joomla SEO Tutorial for Beginners

Blog subscribers

Here’s some tips I collected together over the years working with the Joomla open source content management system for websites. I posted them here in case they help someone:

Joomla Search Engine Friendly URLs (SEF)

Joomla is a fantastic content management system that allows you to do, well, just about anything with your website – that’s why it is one of our CMS of choice for new clients. But when you install Joomla, search engine friendly URLs are not on by default, you need to configure it.

Joomla Search Engine Friendly URLs (URIs) SEF is for Apache server only. It uses mod_rewrite for pointing server to the right file along with PHP. There are only 3 lines in .htaccess for mod_rewrite directions.

Make sure you follow the following to generate google friendly URLs in your Joomla installation.

To turn SEF support ON:

  1. You must run Apache
  2. You must have mod_rewrite enabled
  3. Your server must allow .htaccess override
  4. Set $mosConfig_sef= “1” in configuration.php (if you cannot do it in the global config for any reason. If your file is UNWRITABLE you will need to change the file permissions of the file.
  5. Rename htaccess.txt to .htaccess

You will notice that sections/content/items have nice URLs like:
and components have URLs like:,com_contact/Itemid,3/

Search Engine Friendly URLs (SEF) Troubleshooting:

  1. Check you run Apache
    • To check this go to administration > System > System Info.
    • Server type should be listed next to Web Server. SEF will not run on IIS.
  2. You must have mod_rewrite enabled
    • To check this go to administration > System > System Info. Click on PHP Information tab. Scroll down until you find Loaded Modules row. mod_rewrite should be listed here. If it’s not loaded ask your web host to activate mod_rewrite.
  3. Your server must allow .htaccess override
    • To check this delete everything from your .htaccess file and write a simple command here, for example:
    • Code: “Redirect /google.html”
    • Now point your browser to
      If it redirects you to then you are OK.
  4. Set $mosConfig_sef= “1” in configuration.php
    • You can also activate SEF under Site > Global Configuration.
  5. Rename htaccess.txt to .htaccess
    • Remember! This can be done with a FTP program. Note the dot in the beginning! Also note that you can’t do this on windows, you must rename it directly on server.

Note that SEF is turned OFF by default.

Double check you renamed htaccess.txt to .htaccess and that you turned SEF on in configuration.php.

Still got problems with Joomla SEF? Is your site live, or on a test server (we had problems with this) – try it when you have your domain name pointed at the site. :)

The sh404SEF Component

The sh404SEF Plugin makes Joomla SEO easy.

First up – download and install the Joomla sh404SEF Plugin (or rather ‘Component’) originally by

You can read what others say about this plugin on the Joomla forum, and the instructions to get working are printed below.

Allows Search Engine Friendly URLs for Apache (and possibly but unsupported, IIS). You can also setup your own, custom URLs if you don’t like those automatically built. Builds page title and meta tags, and insert them into page. Title and tags can be manually set as well. Provides security functions, by checking the content of URL and visitor IP against various security check lists, plus an anti-flooding system.

It has a caching system, to reduce database queries and enhance page loading time when using URL rewriting. sh404SEF can operate with or without mod_rewrite (that is with or without .htaccess file). Url are the same, except there is an added /index.php/ bit in them when not using .htaccess.This is now the default setting, as it is much easier to use.

You may want to adjust your ErrorDocument as 404 errors will no longer be processed by Joomla when operating without a .htaccess file.

The integrated tool to manage your META tags, shCustomTags is a module that will rewrite Title, Description, Keywords, Robots and Language meta tags to your liking, on any page of your site. It has a plugin system to accomodate any component, and a Virtuemart and a regular content plugin are provided to automatically generate these tags.

Plus, you’ll be able to manually set any tags you like on a page by page basis (a page is identified by its URL). Plus you’ll be able to set content title within h1 tags, and remove Generator = Joomla tags, plus perform various text replacement operations on your page. There is no hack of Joomla, just a module.

shCustomTags has been installed automatically with sh404SEF, but it not published initially. You must publish it and review instructions in its backend. Both sh404SEF and shCustomTags have been tested only using Joomla 1.012 and VirtueMart 1.0.10 (should work with previous version of Joomla – don’t know about previous versions of VirtueMart). Simple tests ahve been done with Joomla 1.0.13, so sh404SEF should not cause any problem there

sh404SEF Install Documentation & Instructions

IMPORTANT : if you plan to use mod_rewrite (.htaccess) rewriting :

  1. BEFORE making any attempt to activate this component and use its URL rewriting functions, your Joomla installation should already be compatible with URL rewriting. This is not required if you select no .htaccess rewrite mode in sh404SEF advanced parameters (but this mode may not always work as well, depending on your server settings).
  2. Remember : if you are having difficulties with this, it is unlikely to be a Joomla problem, but most likely something related to your server setup. For instance, many times, you will be faced with 404 errors or Internal server errors 500 display. This indicates that there is something in your .htacces file that is not compatible with your apache server setup.
  3. If you face this kind of errors, I will suggest you contact your hosting company for assistance.

If your .htaccess is not compatible with your apache server, or hosting company, there is no point in trying to use sh404SEF – or any other similar component like ARTIO Joomsef, OpenSEF or Advanced SEF – as they will simply not work. You will have first to fix your installation, paying particular attention to the existence and the content of your .htaccess file. However, one of the first thing to control : verify that mod_rewrite is loaded by PHP. To do this, in Joomla backend, go to System menu, then System information. On the PHP tab, just run a search for the word ‘rewrite’. If you don’t find anything, then mod_rewrite is not loaded and nothing will work. You need to change your Apache web server httpd.conf file, or contact your system administrator or shared host company to do this for you.

More advice on .htaccess:

  1. Joomla standard .htaccess is very FINE. It will work with most hosting companies. You should use it unmodified, at least to start with. Just remember it comes named as htaccess.txt, so you need to rename it to .htaccess before anything.
  2. Joomla standard .htaccess comes configured for Joomla standard SEF system (which makes sense!). To use it with sh404SEF (or OpenSEF, Artio JoomSEF, SEF Advance), you must open it up in an editor, and make the few changes explained in it:
  3. If you scroll down towards the end of the file, you’ll see two sections, one marked Begin – Joomla! core SEF Section, and just next to it another marked : ########## Begin – 3rd Party SEF Section
  4. Now the tricky part : you should type # at the beginning of each line of the first section, and remove those # in front of those in the second section, so that the whole things looks like :
########## Begin - Joomla! core SEF Section
############# Use this section if using ONLY Joomla! core SEF
## ALL (RewriteCond) lines in this section are only required if you actually
## have directories named 'content' or 'component' on your server
## If you do not have directories with these names, comment them out.
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
#RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
#RewriteRule ^(content/|component/) index.php
########## End - Joomla! core SEF Section
########## Begin - 3rd Party SEF Section
############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc
RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
########## End - 3rd Party SEF Section

Notes : this is from the .htaccess that comes with Joomla 1.0.12. If you are using a more recent version of Joomla, in the 1.0.x series, use the latest version of the file instead of this one.

* If you get 404 errors or Internal error 500, or similar, when clicking on a rewritten URL, then you should try adding another # at the beginning of this line (near the top of the file): Options FollowSymLinksso that it looks like:

#Options FollowSymLinks

* If that does not work, and if your Joomla site is in a sub-directory, you should look for the line that looks like:

#RewriteBase /

and replace it with :

RewriteBase /sub_directory_of_your_joomla_install

* On some servers, even if your site is not in a sub-directory, you may want to try replacing

#RewriteBase /


RewriteBase /

* Try changing only one thing at a time, and check the result before moving to next step

sh404SEF Configuration

  • sh404SEF configuration is generally easy. For more information on each item hover your mouse over the blue (i) images when you are in the configuration screen. When you save the configuration it will remove all your URL’s from the database.
  • If you have a high traffic site it may be wise to put it offline before saving sh404SEF config or purging the database. After doing that, you should use an online tool to build automatically a sitemap or check for broken links. Those spiders will go through all of your site, and therefore all of your links, so they will be all automatically placed in the cache, thus speeding access for your next visitors.
  • The caching system of sh404SEF is transparent,and will be rebuild automatically whenever required. Using the cache will vastly speed up the page load time, by dramatically reducing the number of database queries. Beware that URL caching uses up a lot of memory though. Its size can be limited using the appropriate parameter, and it can also be turned off completely.
  • If you have a multi-lingual site, you can turn on or off URL translation. Normally, URL elements will be translated into the user language. However, it sometimes better not to translate, such as when using non-latin characters based languages. On such occasions, default site language will always be used
    You may want to purge the 404 log before creating fresh URLs.

Modifying URL’s

You can modify Joomla URL’s to your liking and make them SEO friendly.

  • Go into Joomla Admin, then sh404SEF Control Panel and
  • click ‘ View/Edit SEF Urls’.
  • Select the URL you wish to modify.
  • If you click the check box labeled ‘Save as Custom Redirect’ it will place this URL into the ‘Custom Redirect’ area which you can navigate to from the sh404SEF Control Panel.
  • When you click ‘View/Edit Custom Redirects’ you will see your URL in here now instead. These URLs will not be removed when you save the config. You can modify these and save them as you wish.
  • This is particularly useful if you are updating from an old site because any URL’s that are no longer availble will be logged.
  • You can view these URL’s by clicking ‘View/Edit 404 Logs’ in the sh404SEF Control Panel.
  • You can redirect visitors to the new page by selecting the URL you wish to modify and entering the new url.

Backing up data

  • You can import and export your URL to a text file, using the corresponding button on Joomla sh404SEF control panel.
  • You can also import and export Joomla URL’s from the Custom Redirect area. In this case, only the manually defined URL will stored in the export file.
  • The import file is a simple text file, where URL are listed in rows. This is well suited to be imported into a spreadsheet software if some heavy text processing is to be done on redirections for instance
  • If you want to import back your URLs, go to the same screen, browse to the file and click the ‘Import Custom URLs’ button.
  • Manually defined meta tags in Joomla can be exported/imported in very much the same way. The export/import link is located at the top of the Meta Tags screen, accessed from the main control panel.

Personal Experience

As a Joomla development company, we always aim to make Joomla sites SEO friendly. sh404SEF is one of the best Joomla SEO plugins I have used. It’s an easy to install and use plugin, simple to setup if you are familiar with Joomla, htaccess, and have a basic knowledge of SEO.

SEO Friendly URLs

With this component, it’s easy to activate SEF URLs, although you do need to get Joomla ready for activation. Out of the box, Joomla does not output clean URLs, they are usually long and messy.

Joomla sites without this activated can still be indexed OK by Google, Yahoo and MSN, but most agree making intelligent URLs is better for usability and for search engines.

A search engine friendly url is another chance at getting your keywords in the actual file name, and while the actual benefit in Google, for instance, is minimal, it’s another piece of the SEO jigsaw.

This component more importantly issues a 301 Redirect to Google for old Joomla URLs, a search engine friendly permanent redirect, meaning you can keep your rankings in Google if you have any – directions :)

Tip – Set Your Home Page Title Tag

Your home page title tag is one of the most important title tags on your site. By default, Joomla displays the site name you specify in the config which isn’t that Google friendly, because it’s good to get your important keywords in your home page title.

How To Create A Home Page Title Tag For Joomla Sites

Using the sh404SEF SEO plugin by siliana, a free Joomla SEF and URL rewriting component that creates search engine friendly URLs, you can also specify a unique title for your Joomla home page.

  1. Select sh404SEF admin in your Joomla Components menu
  2. In sh404SEF admin, select ‘Meta Tags’
  3. At the top right, select ‘Home Page Meta’
  4. Create a title of your choice, about 10 words
  5. Create a unique description of the site, about 20 words

Save & hey presto a unique, hopefully keyword rich home page title for your your joomla install.


Note that in the more recent versions of sh404SEF there is a separate configuration for the home page meta tag. It is in the sh404SEF admin panel but there is a separate button called Meta Tags. Click on that button and you will see Meta Tag Management.

On the Meta Tag Management Page you will see two green buttons near the top. One says Home Page Meta.

Click on that and THAT is where you will enter the Title tag, description, etc.

Good Page Titles & Clean Search Engine Friendly URLs in Joomla SEO

OK so you have a Joomla site, your server has got .htaccess support, you have turned on Search Engine Friendly URLs (SEF) and you’ve successfully installed and activated sh404sef so you can start automatically converting dynamically generated URLs into something that is more ‘readable’.

Now your Joomla site produces nice clean url names that humans and Google can make a bit more sense of. But sometimes your URLs can still get a bit long, and still get a bit messy, because Joomla will automatically use the all the words your page title to create a URL for the page.

A tip I use is to take out ‘Stop Words’, common words that Google encounters everywhere, and that can be of limited use. For instance, see the example below.

In Joomla you have two options immediately when creating a new page in the CMS.

  • Title – The actual title of your new page ie “Website Design in Glasgow” with the important keywords being “website”, “design” and “Glasgow”, not “in”. See here for how many words in the title tag for Google.
  • Title Alias – This is the actual URL you will create, otherwise Joomla will use the Title of your page as the url (much the same as WordPress does in “Permalinks”, too)

….so as you can see, in the file name, I often remove the stop words in my title if it suits my purposes, and leave only my keywords in the URL.

Of course, on many pages, this is all you need to do to ensure a good page title and a clean, Google friendly URL, but of course, on some pages, you’ll want to over-ride these basic options using sh404sef and create titles for your page that don’t exactly match the article headline in the “Title” field.

It’s not as complicated as it sounds to create clean URLs you have full control of in Joomla.

How To Prevent Duplicate Content Issues

Joomla Duplicate Content Issue

Joomla, like most if not all content management systems, creates duplicate content management issues. The sh404sef plugin alleviates some of these issues, but not all.

A primary source of duplicate content woe in Joomla is when you publish the PDF and Print icons on pages. You see Google will index the page the PDF and Printer icons link to as well, and what you don’t want happening is your pdfs ranking above your page content, which can happen with sites with little authority in Google.

Your best option is to un-publish the print and pdf options in Joomla, and just prevent this happening. You want all your Google juice circulating around your website pages, not PDFs that are just mirrors of a page anyway. It’s 2008 – let people print and make their own PDFs from their browsers.

Installing Extra Components

I have seen a 50 page website have over 4000 pages indexed by Google, all caused by a calendar component a client installed in the site. This can’t be doing the site any good, and Google won’t thank you for it.

A website top heavy with duplicate content isn’t going to do a new site any favours.

Ensure you’ve researched the Joomla components which make their own pages, like calendars – try and pick an extension that has been built with Google in mind, with nofollow, no index options on blank pages, or robot.txt this component out alltogether so Google leaves these pages alone.

You should also consider specifying your canonical domain in your htaccess file or deploying a canonical meta tag if you know what you are doing….

How To Insert H1 Header Tags Tags In Joomla 

Insert H1 Tags In Joomla

There’s no factual based evidence that I know of (that springs to mind) that conclusively proves H1 headings on pages, or even H1-H6 headings have any benefits to high ranking in Google.

However, it is semantically correct to have one H1 on your page, the W3C says so. That’s why I like them, and I surmise that if your page doesn’t upset other Google filters first, H1 tags are useful and may well carry some positive weight in terms of page relevance;

  • You can achieve this by installing sh404SEF
  • Once installed, Go to Components >
  • sh404SEF >
  • sh404SEF Configuration >
  • Meta / SEO >
  • Insert H1 tags? >
  • Select Yes

Note; It’s almost defacto standard now to have your home page linked via an image wrapped in a H1 tag. I don’t like this method, as it’s so generic and machine generated, and not really the way H1 is supposed to be used. This used to be an old school SEO trick, but I’d wager as it’s so prevalent, Google will not thank you for it in 2008.

An H1 should accurately portray what’s on the page, and in my view, shouldn’t be exactly the same as your joomla page title tag. If you are going to use this method, remove the H1 in your image link back to your home page, as if you are following W3C recommendations, you should have only 1 H1 on any page.

Is there any benefit to creating H1 tags for page titles? I think yes, it’s worth it, but it depends on the site. If you’re already tripping Google filters because your site is spammy, then don’t bother :)

A Specialist Joomla Website Design Company

Joomla is the perfect website choice for small businesses and SME in Scotland, and Hobo specialises in professional Joomla website design, hosting, installation, development and management. Joomla is an open source content management system (a CMS) that you build a website “on” which then makes editing a website very simple indeed – with very little training anybody can learn Joomla in a matter of hours and days, and Joomla enables an administrator the options of changing text, images and website navigation & structure, all at the touch of a button.

We love Joomla! It’s actually suitable for any organisation that has a lot of content to organise online. Hobo have had the pleasure of designing Joomla websites for national companies, brand names, colleges, the NHS, charities, corporates and many small businesses throughout Scotland, and indeed the wider UK.

There’s a reason it was voted “best open source content management system”, you know.

Joomla is a fantastic product on its own, because it has an active community supporting it, but there are many plug-ins and extensions to expand on what this cms can do. You can make Joomla CMS into a simple 5 page website, you can turn it into a forum or a blog, you can add a gallery, calendars or booking system. You can use Joomla to manage client contacts, to manage an online library of documents, podcasts and videos. You can set different levels of access, so some users can edit some sections of the site, while others cannot. You can almost do anything with it.

We’re a Scottish web design company that’s passionate about Joomla website design. We build modern looking Joomla websites to industry standards, that are highly tuned (optimized) to work in Google. Our stylish Joomla websites download fast, are easy to edit and are easy for visitors to use.

There are no licenses with Joomla. Once you have a website, you own it. You can do what you want with it, and Hobo will support you with a professional Joomla design and integration service for your business – small, SME or corporate. Joomla is a CMS that can effectively power your website for years to come.

If you are looking to invest in a new website, make sure you can edit it yourself. Why not call us and have a chat about what Joomla can do for your business apart from saving it thousands of pounds

Hobo is a Joomla Website Design Company based in Greenock, near Glasgow, Scotland, in the UK. Contact us about Joomla website design services. We also offer Joomla Training in Scotland as well as telephone support. Call us to find out if Joomla is for your business.


You can give your site a quick technical SEO audit yourself with our free SEO tool. Our free tool will check your site for any obvious technical problems on your site and offer some advice on how to deal with any problems it finds.

Test Your Site